diff --git a/BUILDING.txt b/BUILDING.txt
new file mode 100644
index 0000000000000000000000000000000000000000..0b6934e5ef9256c574a9c412ac73077618a669d1
--- /dev/null
+++ b/BUILDING.txt
@@ -0,0 +1,37 @@
+Rugged can be built from source either using maven 3 or eclipse.
+
+Building with Maven 3:
+ - Maven 3 can be downloaded here:
+       http://maven.apache.org/download.html
+ - If you are behind a proxy (which is a traditional
+   setting in a corporate environment), then you need
+   to configure maven to use it. This is explained
+   in the maven documentation here:
+   http://maven.apache.org/guides/mini/guide-proxies.html
+ - run "mvn package" to automatically download all
+   the required dependencies listed in the pom.xml file
+   and create a file named target/rugged-x.y.jar where
+   x.y is the version number
+
+Building with Eclipse:
+ - Eclipse can be downloaded here:
+       http://www.eclipse.org/downloads/
+ - extract the rugged source jar in your eclipse workspace
+ - create a new java project from existing sources and direct
+   Eclipse to the directory where you unpacked Rugged
+ - set the source folders to rugged/src/main/java,
+   rugged/src/main/resources, rugged/src/test/java,
+   rugged/src/test/resources in
+   the source tab of the Configure Build Path dialog
+ - set the external libraries to JRE system library (provided by Eclipse),
+   Junit 4.x (provided by Eclipse) orekit (available at Orekit website
+   https://www.orekit.org/) and Apache Commons Math (available at
+   Apache Software Foundation commons-math
+   http://commons.apache.org/proper/commons-math/download_math.cgi
+   in the libraries tab of the Configure Build Path dialog
+ - if you want to also build the optional geotiff module, you should
+   add rugged/geotiff/src/main/java, rugged/geotiff/src/main/resources,
+   rugged/geotiff/src/test/java, rugged/geotiff/src/test/resources in
+   the source tab of the Configure Build Path dialog and add the
+   Apache Commons Imaging library to the external libraries
+
diff --git a/aster/pom.xml b/aster/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c7b509936b9488f2af11136264cc22743120ce10
--- /dev/null
+++ b/aster/pom.xml
@@ -0,0 +1,88 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.orekit</groupId>
+    <artifactId>rugged-parent</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>rugged-aster</artifactId>
+  <packaging>bundle</packaging>
+  <name>Rugged Aster support</name>
+
+  <inceptionYear>2014</inceptionYear>
+  <description>
+    This module provides support for ASTER Digital Elevation Models.
+  </description>
+
+  <developers>
+    <developer>
+      <name>Luc Maisonobe</name>
+      <id>luc</id>
+      <roles>
+        <role>architect</role>
+        <role>developer</role>
+      </roles>
+    </developer>
+  </developers>
+
+  <contributors>
+    <contributor>
+      <name>Aude Espesset</name>
+    </contributor>
+  </contributors>
+
+  <organization>
+    <name>CS Syst&#232;mes d&#039;Information</name>
+    <url>http://www.c-s.fr/</url>
+  </organization>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.orekit</groupId>
+      <artifactId>rugged-core</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.commons</groupId>
+      <artifactId>commons-imaging</artifactId>
+      <version>1.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>4.11</version>
+      <type>jar</type>
+      <scope>test</scope>
+      <optional>false</optional>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.felix</groupId>
+        <artifactId>maven-bundle-plugin</artifactId>
+        <version>${rugged.maven-bundle-plugin.version}</version>
+        <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Export-Package>org.orekit.rugged.aster.*;version=${project.version};-noimport:=true</Export-Package>
+            <Bundle-DocURL>${project.url}</Bundle-DocURL>
+          </instructions>
+        </configuration>
+        <executions>
+          <execution>
+            <id>bundle-manifest</id>
+            <phase>process-classes</phase>
+            <goals>
+              <goal>manifest</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
diff --git a/geotiff/src/main/assembly/binary-assembly.xml b/aster/src/main/assembly/binary-assembly.xml
similarity index 100%
rename from geotiff/src/main/assembly/binary-assembly.xml
rename to aster/src/main/assembly/binary-assembly.xml
diff --git a/geotiff/src/main/assembly/building-files.xml b/aster/src/main/assembly/building-files.xml
similarity index 100%
rename from geotiff/src/main/assembly/building-files.xml
rename to aster/src/main/assembly/building-files.xml
diff --git a/geotiff/src/main/assembly/jar-files.xml b/aster/src/main/assembly/jar-files.xml
similarity index 100%
rename from geotiff/src/main/assembly/jar-files.xml
rename to aster/src/main/assembly/jar-files.xml
diff --git a/geotiff/src/main/assembly/misc-files.xml b/aster/src/main/assembly/misc-files.xml
similarity index 100%
rename from geotiff/src/main/assembly/misc-files.xml
rename to aster/src/main/assembly/misc-files.xml
diff --git a/geotiff/src/main/assembly/source-assembly.xml b/aster/src/main/assembly/source-assembly.xml
similarity index 100%
rename from geotiff/src/main/assembly/source-assembly.xml
rename to aster/src/main/assembly/source-assembly.xml
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java b/aster/src/main/java/org/orekit/rugged/aster/AngulerUnits.java
similarity index 99%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java
rename to aster/src/main/java/org/orekit/rugged/aster/AngulerUnits.java
index cca133b0a613126bea75c09ecc4ec80a4313fcf3..e94b35b239e6b4ff2b4c61dd3c54f97f032c41c8 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/AngulerUnits.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 import org.apache.commons.math3.util.FastMath;
 
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/AsterMessages.java b/aster/src/main/java/org/orekit/rugged/aster/AsterMessages.java
similarity index 99%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/AsterMessages.java
rename to aster/src/main/java/org/orekit/rugged/aster/AsterMessages.java
index aac358bd622793eff3a156f9e3f51ff7c6d19504..f358fd93f73e0e1624ce654ca19f7d5d8a7c4931 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/AsterMessages.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/AsterMessages.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 import java.io.IOException;
 import java.io.InputStream;
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/AsterTileUpdater.java b/aster/src/main/java/org/orekit/rugged/aster/AsterTileUpdater.java
similarity index 99%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/AsterTileUpdater.java
rename to aster/src/main/java/org/orekit/rugged/aster/AsterTileUpdater.java
index 93e2c83e166224d399787989a0cd6b49447ddace..07c58bc664420b09ad1b5a2eb5c8945affe58c9e 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/AsterTileUpdater.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/AsterTileUpdater.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java b/aster/src/main/java/org/orekit/rugged/aster/GeoKey.java
similarity index 98%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java
rename to aster/src/main/java/org/orekit/rugged/aster/GeoKey.java
index c1a3b7bf67b18d7295416e9b4f41bc7cbdfadaf5..0263bfd4197b945e75462c6020f4c46fc4e63cc7 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/GeoKey.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 /** Enumerate for GeoTIFF keys.
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java b/aster/src/main/java/org/orekit/rugged/aster/GeographicCoordinateSystemType.java
similarity index 99%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java
rename to aster/src/main/java/org/orekit/rugged/aster/GeographicCoordinateSystemType.java
index ada43c73d9e3589a5d1b3d33972b3281a7e81c18..0a4a73e4a57ec5755e7696d5268d805f7358e3e8 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/GeographicCoordinateSystemType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 /** Enumerate for geographic coordinate system type.
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java b/aster/src/main/java/org/orekit/rugged/aster/LinearUnits.java
similarity index 98%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java
rename to aster/src/main/java/org/orekit/rugged/aster/LinearUnits.java
index af1bba34e7fad53e75cacaaf91278b8dfbaecf5a..3212bf2c3c0831afbfc54a34d0b4f4a20160bde1 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/LinearUnits.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 /** Enumerate for linear units.
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java b/aster/src/main/java/org/orekit/rugged/aster/ModelType.java
similarity index 98%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java
rename to aster/src/main/java/org/orekit/rugged/aster/ModelType.java
index 7f472cc6f5c956d53d8ba330f031fc2d3d224cae..e7c34a033c55117b53c4aaa21f2f89803871696e 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/ModelType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 /** Enumerate for model type.
diff --git a/geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java b/aster/src/main/java/org/orekit/rugged/aster/RasterType.java
similarity index 98%
rename from geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java
rename to aster/src/main/java/org/orekit/rugged/aster/RasterType.java
index 619f3c660927f5595baf3d07e0a0288b5377fd36..85968e38e57cdd90e4080214260f89f9c324438c 100644
--- a/geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java
+++ b/aster/src/main/java/org/orekit/rugged/aster/RasterType.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 /** Enumerate for raster types.
diff --git a/geotiff/src/main/resources/assets/org/orekit/rugged/AsterMessages_en.utf8 b/aster/src/main/resources/assets/org/orekit/rugged/AsterMessages_en.utf8
similarity index 100%
rename from geotiff/src/main/resources/assets/org/orekit/rugged/AsterMessages_en.utf8
rename to aster/src/main/resources/assets/org/orekit/rugged/AsterMessages_en.utf8
diff --git a/geotiff/src/main/resources/assets/org/orekit/rugged/AsterMessages_fr.utf8 b/aster/src/main/resources/assets/org/orekit/rugged/AsterMessages_fr.utf8
similarity index 100%
rename from geotiff/src/main/resources/assets/org/orekit/rugged/AsterMessages_fr.utf8
rename to aster/src/main/resources/assets/org/orekit/rugged/AsterMessages_fr.utf8
diff --git a/geotiff/src/test/java/org/orekit/rugged/geotiff/AsterMessagesTest.java b/aster/src/test/java/org/orekit/rugged/aster/AsterMessagesTest.java
similarity index 99%
rename from geotiff/src/test/java/org/orekit/rugged/geotiff/AsterMessagesTest.java
rename to aster/src/test/java/org/orekit/rugged/aster/AsterMessagesTest.java
index ba19843fb2ea32890fbd9a3ef78105b36a19a439..d4aa930b34d4ba0740bbf6f16f3c6357f679baad 100644
--- a/geotiff/src/test/java/org/orekit/rugged/geotiff/AsterMessagesTest.java
+++ b/aster/src/test/java/org/orekit/rugged/aster/AsterMessagesTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 
 import java.text.MessageFormat;
diff --git a/geotiff/src/test/java/org/orekit/rugged/geotiff/AsterTileUpdaterTest.java b/aster/src/test/java/org/orekit/rugged/aster/AsterTileUpdaterTest.java
similarity index 99%
rename from geotiff/src/test/java/org/orekit/rugged/geotiff/AsterTileUpdaterTest.java
rename to aster/src/test/java/org/orekit/rugged/aster/AsterTileUpdaterTest.java
index a17ba47df9fc0c32760d00fb8ef9325c1865bc12..b27c311ce08f82ba55297018459c33d0c7ef0e61 100644
--- a/geotiff/src/test/java/org/orekit/rugged/geotiff/AsterTileUpdaterTest.java
+++ b/aster/src/test/java/org/orekit/rugged/aster/AsterTileUpdaterTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.geotiff;
+package org.orekit.rugged.aster;
 
 import java.io.BufferedReader;
 import java.io.File;
diff --git a/geotiff/src/test/resources/org/orekit/rugged/geotiff/ASTER-files-warning.txt b/aster/src/test/resources/org/orekit/rugged/geotiff/ASTER-files-warning.txt
similarity index 100%
rename from geotiff/src/test/resources/org/orekit/rugged/geotiff/ASTER-files-warning.txt
rename to aster/src/test/resources/org/orekit/rugged/geotiff/ASTER-files-warning.txt
diff --git a/src/main/java/org/orekit/rugged/api/AlgorithmId.java b/core/src/main/java/org/orekit/rugged/api/AlgorithmId.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/AlgorithmId.java
rename to core/src/main/java/org/orekit/rugged/api/AlgorithmId.java
diff --git a/src/main/java/org/orekit/rugged/api/BodyRotatingFrameId.java b/core/src/main/java/org/orekit/rugged/api/BodyRotatingFrameId.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/BodyRotatingFrameId.java
rename to core/src/main/java/org/orekit/rugged/api/BodyRotatingFrameId.java
diff --git a/src/main/java/org/orekit/rugged/api/EllipsoidId.java b/core/src/main/java/org/orekit/rugged/api/EllipsoidId.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/EllipsoidId.java
rename to core/src/main/java/org/orekit/rugged/api/EllipsoidId.java
diff --git a/src/main/java/org/orekit/rugged/api/InertialFrameId.java b/core/src/main/java/org/orekit/rugged/api/InertialFrameId.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/InertialFrameId.java
rename to core/src/main/java/org/orekit/rugged/api/InertialFrameId.java
diff --git a/src/main/java/org/orekit/rugged/api/LineDatation.java b/core/src/main/java/org/orekit/rugged/api/LineDatation.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/LineDatation.java
rename to core/src/main/java/org/orekit/rugged/api/LineDatation.java
diff --git a/src/main/java/org/orekit/rugged/api/LineSensor.java b/core/src/main/java/org/orekit/rugged/api/LineSensor.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/LineSensor.java
rename to core/src/main/java/org/orekit/rugged/api/LineSensor.java
diff --git a/src/main/java/org/orekit/rugged/api/LinearLineDatation.java b/core/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/LinearLineDatation.java
rename to core/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/core/src/main/java/org/orekit/rugged/api/Rugged.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/Rugged.java
rename to core/src/main/java/org/orekit/rugged/api/Rugged.java
diff --git a/src/main/java/org/orekit/rugged/api/RuggedException.java b/core/src/main/java/org/orekit/rugged/api/RuggedException.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/RuggedException.java
rename to core/src/main/java/org/orekit/rugged/api/RuggedException.java
diff --git a/src/main/java/org/orekit/rugged/api/RuggedMessages.java b/core/src/main/java/org/orekit/rugged/api/RuggedMessages.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/RuggedMessages.java
rename to core/src/main/java/org/orekit/rugged/api/RuggedMessages.java
diff --git a/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java b/core/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
rename to core/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
diff --git a/src/main/java/org/orekit/rugged/api/SensorPixel.java b/core/src/main/java/org/orekit/rugged/api/SensorPixel.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/SensorPixel.java
rename to core/src/main/java/org/orekit/rugged/api/SensorPixel.java
diff --git a/src/main/java/org/orekit/rugged/api/SensorPixelCrossing.java b/core/src/main/java/org/orekit/rugged/api/SensorPixelCrossing.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/api/SensorPixelCrossing.java
rename to core/src/main/java/org/orekit/rugged/api/SensorPixelCrossing.java
diff --git a/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
rename to core/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
diff --git a/src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
rename to core/src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
diff --git a/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
rename to core/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
diff --git a/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
rename to core/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
diff --git a/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
rename to core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
diff --git a/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java b/core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
rename to core/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
diff --git a/src/main/java/org/orekit/rugged/raster/SimpleTile.java b/core/src/main/java/org/orekit/rugged/raster/SimpleTile.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/SimpleTile.java
rename to core/src/main/java/org/orekit/rugged/raster/SimpleTile.java
diff --git a/src/main/java/org/orekit/rugged/raster/SimpleTileFactory.java b/core/src/main/java/org/orekit/rugged/raster/SimpleTileFactory.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/SimpleTileFactory.java
rename to core/src/main/java/org/orekit/rugged/raster/SimpleTileFactory.java
diff --git a/src/main/java/org/orekit/rugged/raster/Tile.java b/core/src/main/java/org/orekit/rugged/raster/Tile.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/Tile.java
rename to core/src/main/java/org/orekit/rugged/raster/Tile.java
diff --git a/src/main/java/org/orekit/rugged/raster/TileFactory.java b/core/src/main/java/org/orekit/rugged/raster/TileFactory.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/TileFactory.java
rename to core/src/main/java/org/orekit/rugged/raster/TileFactory.java
diff --git a/src/main/java/org/orekit/rugged/raster/TileUpdater.java b/core/src/main/java/org/orekit/rugged/raster/TileUpdater.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/TileUpdater.java
rename to core/src/main/java/org/orekit/rugged/raster/TileUpdater.java
diff --git a/src/main/java/org/orekit/rugged/raster/TilesCache.java b/core/src/main/java/org/orekit/rugged/raster/TilesCache.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/TilesCache.java
rename to core/src/main/java/org/orekit/rugged/raster/TilesCache.java
diff --git a/src/main/java/org/orekit/rugged/raster/UpdatableTile.java b/core/src/main/java/org/orekit/rugged/raster/UpdatableTile.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/raster/UpdatableTile.java
rename to core/src/main/java/org/orekit/rugged/raster/UpdatableTile.java
diff --git a/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java b/core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java
rename to core/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java
diff --git a/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java b/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
similarity index 100%
rename from src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
rename to core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
diff --git a/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8 b/core/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
similarity index 100%
rename from src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
rename to core/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
diff --git a/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8 b/core/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
similarity index 100%
rename from src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
rename to core/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
diff --git a/src/test/java/org/orekit/rugged/api/LineSensorTest.java b/core/src/test/java/org/orekit/rugged/api/LineSensorTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/api/LineSensorTest.java
rename to core/src/test/java/org/orekit/rugged/api/LineSensorTest.java
diff --git a/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java b/core/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
rename to core/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
diff --git a/src/test/java/org/orekit/rugged/api/RuggedTest.java b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/api/RuggedTest.java
rename to core/src/test/java/org/orekit/rugged/api/RuggedTest.java
diff --git a/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java b/core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
rename to core/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
diff --git a/src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java b/core/src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
rename to core/src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
diff --git a/src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java b/core/src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
rename to core/src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
diff --git a/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java b/core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
rename to core/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
diff --git a/src/test/java/org/orekit/rugged/raster/CheckedPatternElevationUpdater.java b/core/src/test/java/org/orekit/rugged/raster/CheckedPatternElevationUpdater.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/CheckedPatternElevationUpdater.java
rename to core/src/test/java/org/orekit/rugged/raster/CheckedPatternElevationUpdater.java
diff --git a/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java b/core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java
rename to core/src/test/java/org/orekit/rugged/raster/CliffsElevationUpdater.java
diff --git a/src/test/java/org/orekit/rugged/raster/CountingFactory.java b/core/src/test/java/org/orekit/rugged/raster/CountingFactory.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/CountingFactory.java
rename to core/src/test/java/org/orekit/rugged/raster/CountingFactory.java
diff --git a/src/test/java/org/orekit/rugged/raster/RandomLandscapeUpdater.java b/core/src/test/java/org/orekit/rugged/raster/RandomLandscapeUpdater.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/RandomLandscapeUpdater.java
rename to core/src/test/java/org/orekit/rugged/raster/RandomLandscapeUpdater.java
diff --git a/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java b/core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/SimpleTileTest.java
rename to core/src/test/java/org/orekit/rugged/raster/SimpleTileTest.java
diff --git a/src/test/java/org/orekit/rugged/raster/TilesCacheTest.java b/core/src/test/java/org/orekit/rugged/raster/TilesCacheTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/TilesCacheTest.java
rename to core/src/test/java/org/orekit/rugged/raster/TilesCacheTest.java
diff --git a/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java b/core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java
rename to core/src/test/java/org/orekit/rugged/raster/VolcanicConeElevationUpdater.java
diff --git a/src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java b/core/src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java
similarity index 100%
rename from src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java
rename to core/src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java
diff --git a/src/test/resources/orekit-data/UTC-TAI.history b/core/src/test/resources/orekit-data/UTC-TAI.history
similarity index 100%
rename from src/test/resources/orekit-data/UTC-TAI.history
rename to core/src/test/resources/orekit-data/UTC-TAI.history
diff --git a/src/test/resources/orekit-data/eigen-6s-truncated.gfc b/core/src/test/resources/orekit-data/eigen-6s-truncated.gfc
similarity index 100%
rename from src/test/resources/orekit-data/eigen-6s-truncated.gfc
rename to core/src/test/resources/orekit-data/eigen-6s-truncated.gfc
diff --git a/src/test/resources/orekit-data/eopc04_08.12 b/core/src/test/resources/orekit-data/eopc04_08.12
similarity index 100%
rename from src/test/resources/orekit-data/eopc04_08.12
rename to core/src/test/resources/orekit-data/eopc04_08.12
diff --git a/src/test/resources/orekit-data/eopc04_08_IAU2000.12 b/core/src/test/resources/orekit-data/eopc04_08_IAU2000.12
similarity index 100%
rename from src/test/resources/orekit-data/eopc04_08_IAU2000.12
rename to core/src/test/resources/orekit-data/eopc04_08_IAU2000.12
diff --git a/src/test/resources/orekit-data/unxp2012.406 b/core/src/test/resources/orekit-data/unxp2012.406
similarity index 100%
rename from src/test/resources/orekit-data/unxp2012.406
rename to core/src/test/resources/orekit-data/unxp2012.406
diff --git a/geotiff/pom.xml b/geotiff/pom.xml
deleted file mode 100644
index 68c92cefae08ca3adf3ca15a3bd25cabcdb8d041..0000000000000000000000000000000000000000
--- a/geotiff/pom.xml
+++ /dev/null
@@ -1,306 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.orekit</groupId>
-  <artifactId>rugged-geotiff</artifactId>
-  <version>1.0-SNAPSHOT</version>
-  <packaging>jar</packaging>
-  <name>Rugged GeoTIFF</name>
-
-  <inceptionYear>2014</inceptionYear>
-  <description>
-    Rugged is an Orekit add-on handling Digital Elevation Models
-    contribution to line of sight computation
-  </description>
-
-  <developers>
-    <developer>
-      <name>Luc Maisonobe</name>
-      <id>luc</id>
-      <roles>
-        <role>architect</role>
-        <role>developer</role>
-      </roles>
-    </developer>
-  </developers>
-
-  <contributors>
-    <contributor>
-      <name>Aude Espesset</name>
-    </contributor>
-  </contributors>
-
-  <organization>
-    <name>CS Syst&#232;mes d&#039;Information</name>
-    <url>http://www.c-s.fr/</url>
-  </organization>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.orekit</groupId>
-      <artifactId>rugged</artifactId>
-      <version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-imaging</artifactId>
-      <version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.8.2</version>
-      <type>jar</type>
-      <scope>test</scope>
-      <optional>false</optional>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.3.2</version>
-        <configuration>
-          <source>1.6</source>
-          <target>1.6</target>
-          <encoding>UTF-8</encoding>
-        </configuration>
-      </plugin>
-	<plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-        <version>2.4</version>
-      <configuration>
-        <archive>
-          <manifest>
-            <addClasspath>true</addClasspath>
-            <classpathPrefix>lib/</classpathPrefix>
-          </manifest>
-        </archive>
-      </configuration>
-    </plugin>
-	<plugin>
-		<artifactId>maven-assembly-plugin</artifactId>
-		<version>2.2.1</version>
-		<configuration>
-          <descriptors>
-            <descriptor>src/main/assembly/source-assembly.xml</descriptor>
-            <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
-          </descriptors>
-        </configuration>
-        <executions>
-          <execution>
-            <id>make-assembly</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.jacoco</groupId>
-        <artifactId>jacoco-maven-plugin</artifactId>
-        <version>0.6.3.201306030806</version>
-        <executions>
-          <execution>
-            <id>prepare-agent</id>
-            <phase>process-test-classes</phase>
-            <goals>
-              <goal>prepare-agent</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>report</id>
-            <phase>site</phase>
-            <goals>
-              <goal>report</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>check</id>
-            <goals>
-              <goal>check</goal>
-            </goals>
-            <configuration>
-              <rules>
-                <rule>
-                  <element>BUNDLE</element>
-                  <limits>
-                    <limit>
-                      <counter>CLASS</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>1.00</minimum>
-                    </limit>
-                    <limit>
-                      <counter>INSTRUCTION</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>0.90</minimum>
-                    </limit>
-                    <limit>
-                      <counter>METHOD</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>0.95</minimum>
-                    </limit>
-                    <limit>
-                      <counter>BRANCH</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>0.85</minimum>
-                    </limit>
-                    <limit>
-                      <counter>COMPLEXITY</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>0.85</minimum>
-                    </limit>
-                    <limit>
-                      <counter>LINE</counter>
-                      <value>COVEREDRATIO</value>
-                      <minimum>0.90</minimum>
-                    </limit>
-                  </limits>
-                </rule>
-              </rules>
-              <haltOnFailure>false</haltOnFailure>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>com.github.jeluard</groupId>
-        <artifactId>maven-plantuml-plugin</artifactId>
-        <version>7940</version>
-        <configuration>
-          <sourceFiles>
-            <directory>${basedir}</directory>
-            <includes>
-              <include>
-                design/**/*.puml
-              </include>
-            </includes>
-          </sourceFiles>
-          <outputDirectory>
-            ${basedir}/target/site/images/design
-          </outputDirectory>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>pre-site</phase>
-            <goals>
-              <goal>generate</goal>
-            </goals>
-          </execution>
-        </executions>
-        <dependencies>
-          <dependency>
-            <groupId>net.sourceforge.plantuml</groupId>
-            <artifactId>plantuml</artifactId>
-            <version>7986</version>
-          </dependency>
-        </dependencies>
-      </plugin>
-    </plugins>
-  </build>
-
-  <reporting>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>3.3</version>
-        <configuration>
-          <inputEncoding>UTF-8</inputEncoding>
-          <outputEncoding>UTF-8</outputEncoding>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.jacoco</groupId>
-        <artifactId>jacoco-maven-plugin</artifactId>
-        <version>0.6.3.201306030806</version>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>findbugs-maven-plugin</artifactId>
-        <version>2.5.3</version>
-        <configuration>
-          <threshold>Normal</threshold>
-          <effort>Default</effort>
-          <excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile>
-       </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.16</version>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>2.11</version>
-        <configuration>
-          <encoding>UTF-8</encoding>
-          <configLocation>${basedir}/checkstyle.xml</configLocation>
-          <enableRulesSummary>false</enableRulesSummary>
-          <headerLocation>${basedir}/license-header.txt</headerLocation>
-        </configuration>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>checkstyle</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-changes-plugin</artifactId>
-        <version>2.9</version>
-        <configuration>
-          <xmlPath>${basedir}/src/site/xdoc/changes.xml</xmlPath>
-        </configuration>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>changes-report</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.3</version>
-        <configuration>
-          <outputEncoding>UTF-8</outputEncoding>
-          <linkJavadoc>false</linkJavadoc>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.9.1</version>
-        <configuration>
-          <overview>${basedir}/src/main/java/org/orekit/rugged/overview.html</overview>
-          <links>
-            <link>http://download.oracle.com/javase/1.6.0/docs/api/</link>
-            <link>http://commons.apache.org/math/apidocs/</link>
-            <link>https://www.orekit.org/static/apidocs/index.html</link>
-          </links>
-          <charset>UTF-8</charset>
-          <docencoding>UTF-8</docencoding>
-          <encoding>UTF-8</encoding>
-        </configuration>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>javadoc</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-    </plugins>
-  </reporting>
-
-</project>
diff --git a/pom.xml b/pom.xml
index d8b6c54f4eda4c3a2a849c05d98a55c1a665b144..47a438c70dc9250491f1e7bf1a75cba4735d6af2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,10 +3,10 @@
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.orekit</groupId>
-  <artifactId>rugged</artifactId>
+  <artifactId>rugged-parent</artifactId>
   <version>1.0-SNAPSHOT</version>
-  <packaging>bundle</packaging>
-  <name>Rugged Core</name>
+  <packaging>pom</packaging>
+  <name>Rugged Parent</name>
 
   <inceptionYear>2014</inceptionYear>
   <description>
@@ -63,171 +63,144 @@
     <url>http://www.c-s.fr/</url>
   </organization>
 
-  <dependencies>
-    <dependency>
-        <groupId>org.orekit</groupId>
-        <artifactId>orekit</artifactId>
-        <version>7.0-SNAPSHOT</version>
-        <type>jar</type>
-        <optional>false</optional>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-math3</artifactId>
-        <version>3.3</version>
-        <type>jar</type>
-        <optional>false</optional>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.11</version>
-      <type>jar</type>
-      <scope>test</scope>
-      <optional>false</optional>
-    </dependency>
-  </dependencies>
+  <licenses>
+    <license>
+      <name>The Apache Software License, Version 2.0</name>
+      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+    </license>
+  </licenses>
+
+  <scm>
+    <connection>scm:git:http://www.orekit.org/git/rugged</connection>
+    <developerConnection>scm:git:ssh://git@www.orekit.org/rugged.git</developerConnection>
+    <url>https://www.orekit.org/forge/projects/rugged/repository</url>
+  </scm>
+
+  <modules>
+    <module>core</module>
+    <module>aster</module>
+  </modules>
 
   <build>
-    <plugins>
+    <pluginManagement>
+      <plugins>
+        <plugin>
+          <groupId>org.apache.maven.plugins</groupId>
+          <artifactId>maven-compiler-plugin</artifactId>
+          <version>${rugged.maven-compiler-plugin.version}</version>
+        </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+          <version>${rugged.maven-jar-plugin.version}</version>
+        <configuration>
+          <archive>
+            <manifest>
+              <addClasspath>true</addClasspath>
+              <classpathPrefix>lib/</classpathPrefix>
+            </manifest>
+          </archive>
+        </configuration>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-assembly-plugin</artifactId>
+        <version>${rugged.maven-assembly-plugin.version}</version>
+        <configuration>
+          <descriptors>
+            <descriptor>src/main/assembly/source-assembly.xml</descriptor>
+            <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
+          </descriptors>
+        </configuration>
+        <executions>
+          <execution>
+            <id>make-assembly</id>
+            <phase>package</phase>
+            <goals>
+              <goal>single</goal>
+            </goals>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-resources-plugin</artifactId>
+        <version>${rugged.maven-resources-plugin.version}</version>
+      </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>${rugged.maven-compiler-plugin.version}</version>
+        <artifactId>maven-clean-plugin</artifactId>
+        <version>${rugged.maven-clean-plugin.version}</version>
       </plugin>
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-jar-plugin</artifactId>
-        <version>${rugged.maven-jar-plugin.version}</version>
-      <configuration>
-        <archive>
-          <manifest>
-            <addClasspath>true</addClasspath>
-            <classpathPrefix>lib/</classpathPrefix>
-          </manifest>
-        </archive>
-      </configuration>
-    </plugin>
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-assembly-plugin</artifactId>
-      <version>${rugged.maven-assembly-plugin.version}</version>
-      <configuration>
-        <descriptors>
-          <descriptor>src/main/assembly/source-assembly.xml</descriptor>
-          <descriptor>src/main/assembly/binary-assembly.xml</descriptor>
-        </descriptors>
-      </configuration>
-      <executions>
-        <execution>
-          <id>make-assembly</id>
-          <phase>package</phase>
-          <goals>
-            <goal>single</goal>
-          </goals>
-        </execution>
-      </executions>
-    </plugin>
-    <plugin>
-      <groupId>org.apache.felix</groupId>
-      <artifactId>maven-bundle-plugin</artifactId>
-      <version>${rugged.maven-bundle-plugin.version}</version>
-      <extensions>true</extensions>
-      <configuration>
-        <instructions>
-          <Export-Package>org.orekit.rugged.api.*;version=${project.version};-noimport:=true</Export-Package>
-          <Bundle-DocURL>${project.url}</Bundle-DocURL>
-        </instructions>
-      </configuration>
-      <executions>
-        <execution>
-          <id>bundle-manifest</id>
-          <phase>process-classes</phase>
-          <goals>
-            <goal>manifest</goal>
-          </goals>
-        </execution>
-      </executions>
-    </plugin>
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-resources-plugin</artifactId>
-      <version>${rugged.maven-resources-plugin.version}</version>
-    </plugin>
-    <plugin>
-      <groupId>org.apache.maven.plugins</groupId>
-      <artifactId>maven-clean-plugin</artifactId>
-      <version>${rugged.maven-clean-plugin.version}</version>
-    </plugin>
-    <plugin>
-      <groupId>org.jacoco</groupId>
-      <artifactId>jacoco-maven-plugin</artifactId>
-      <version>${rugged.jacoco-maven-plugin.version}</version>
-      <executions>
-        <execution>
-          <id>prepare-agent</id>
-          <phase>process-test-classes</phase>
-          <goals>
-            <goal>prepare-agent</goal>
-          </goals>
-        </execution>
-        <execution>
-          <id>report</id>
-          <phase>site</phase>
-          <goals>
-            <goal>report</goal>
-          </goals>
-        </execution>
-        <execution>
-          <id>check</id>
-          <goals>
-            <goal>check</goal>
-          </goals>
-          <configuration>
-            <rules>
-              <rule>
-                <element>BUNDLE</element>
-                <limits>
-                  <limit>
-                    <counter>CLASS</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>1.00</minimum>
-                  </limit>
-                  <limit>
-                    <counter>INSTRUCTION</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>0.90</minimum>
-                  </limit>
-                  <limit>
-                    <counter>METHOD</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>0.95</minimum>
-                  </limit>
-                  <limit>
-                    <counter>BRANCH</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>0.85</minimum>
-                  </limit>
-                  <limit>
-                    <counter>COMPLEXITY</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>0.85</minimum>
-                  </limit>
-                  <limit>
-                    <counter>LINE</counter>
-                    <value>COVEREDRATIO</value>
-                    <minimum>0.90</minimum>
-                  </limit>
-                </limits>
-              </rule>
-            </rules>
-            <haltOnFailure>false</haltOnFailure>
-          </configuration>
-        </execution>
-      </executions>
-    </plugin>
-    <plugin>
-      <groupId>com.github.jeluard</groupId>
+      <plugin>
+        <groupId>org.jacoco</groupId>
+        <artifactId>jacoco-maven-plugin</artifactId>
+        <version>${rugged.jacoco-maven-plugin.version}</version>
+        <executions>
+          <execution>
+            <id>prepare-agent</id>
+            <phase>process-test-classes</phase>
+            <goals>
+              <goal>prepare-agent</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>report</id>
+            <phase>site</phase>
+            <goals>
+              <goal>report</goal>
+            </goals>
+          </execution>
+          <execution>
+            <id>check</id>
+            <goals>
+              <goal>check</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <rule>
+                  <element>BUNDLE</element>
+                  <limits>
+                    <limit>
+                      <counter>CLASS</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>1.00</minimum>
+                    </limit>
+                    <limit>
+                      <counter>INSTRUCTION</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>0.90</minimum>
+                    </limit>
+                    <limit>
+                      <counter>METHOD</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>0.95</minimum>
+                    </limit>
+                    <limit>
+                      <counter>BRANCH</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>0.85</minimum>
+                    </limit>
+                    <limit>
+                      <counter>COMPLEXITY</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>0.85</minimum>
+                    </limit>
+                    <limit>
+                      <counter>LINE</counter>
+                      <value>COVEREDRATIO</value>
+                      <minimum>0.90</minimum>
+                    </limit>
+                  </limits>
+                </rule>
+              </rules>
+              <haltOnFailure>false</haltOnFailure>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+      <plugin>
+        <groupId>com.github.jeluard</groupId>
         <artifactId>maven-plantuml-plugin</artifactId>
         <version>${rugged.maven-plantuml-plugin.version}</version>
         <configuration>
@@ -259,7 +232,13 @@
           </dependency>
         </dependencies>
       </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-site-plugin</artifactId>
+        <version>${rugged.maven-site-plugin.version}</version>
+      </plugin>
     </plugins>
+  </pluginManagement>
   </build>
 
   <reporting>
@@ -286,7 +265,7 @@
         <configuration>
           <threshold>Normal</threshold>
           <effort>Default</effort>
-          <excludeFilterFile>${basedir}/findbugs-exclude-filter.xml</excludeFilterFile>
+          <excludeFilterFile>${project.parent.basedir}/findbugs-exclude-filter.xml</excludeFilterFile>
        </configuration>
       </plugin>
       <plugin>
@@ -304,9 +283,9 @@
         <artifactId>maven-checkstyle-plugin</artifactId>
         <version>${rugged.maven-checkstyle-plugin.version}</version>
         <configuration>
-          <configLocation>${basedir}/checkstyle.xml</configLocation>
+          <configLocation>${project.parent.basedir}/checkstyle.xml</configLocation>
           <enableRulesSummary>false</enableRulesSummary>
-          <headerLocation>${basedir}/license-header.txt</headerLocation>
+          <headerLocation>${project.parent.basedir}/license-header.txt</headerLocation>
         </configuration>
         <reportSets>
           <reportSet>
@@ -344,7 +323,7 @@
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>${rugged.maven-javadoc-plugin.version}</version>
         <configuration>
-          <overview>${basedir}/src/main/java/org/orekit/rugged/overview.html</overview>
+          <overview>${basedir}/core/src/main/java/org/orekit/rugged/overview.html</overview>
           <links>
             <link>http://download.oracle.com/javase/1.6.0/docs/api/</link>
             <link>http://commons.apache.org/math/apidocs/</link>
diff --git a/src/main/assembly/binary-assembly.xml b/src/main/assembly/binary-assembly.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a18df15b0ebdc094dff9886a4067cc9dbb87be0e
--- /dev/null
+++ b/src/main/assembly/binary-assembly.xml
@@ -0,0 +1,10 @@
+<assembly>
+  <id>bin</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <componentDescriptors>
+    <componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
+    <componentDescriptor>src/main/assembly/jar-files.xml</componentDescriptor>
+  </componentDescriptors>
+</assembly>
\ No newline at end of file
diff --git a/src/main/assembly/building-files.xml b/src/main/assembly/building-files.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9c3f9cbf56b3008b5f69dd8497fbe72286f98a5b
--- /dev/null
+++ b/src/main/assembly/building-files.xml
@@ -0,0 +1,19 @@
+<component>
+  <fileSets>
+    <fileSet>
+      <includes>
+        <include>BUILDING.txt</include>
+        <include>pom.xml</include>
+        <include>build.xml</include>
+        <include>checkstyle.xml</include>
+        <include>findbugs-exclude-filter.xml</include>
+        <include>license-header.txt</include>
+      </includes>
+      <useDefaultExcludes>true</useDefaultExcludes>
+    </fileSet>
+    <fileSet>
+      <directory>src</directory>
+      <useDefaultExcludes>true</useDefaultExcludes>
+    </fileSet>
+  </fileSets>
+</component>
\ No newline at end of file
diff --git a/src/main/assembly/jar-files.xml b/src/main/assembly/jar-files.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e89c65b097dd78d33278f95331d4781b238c5b19
--- /dev/null
+++ b/src/main/assembly/jar-files.xml
@@ -0,0 +1,11 @@
+<component>
+  <fileSets>
+    <fileSet>
+      <directory>target</directory>
+      <outputDirectory></outputDirectory>
+      <includes>
+        <include>*.jar</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</component>
\ No newline at end of file
diff --git a/src/main/assembly/misc-files.xml b/src/main/assembly/misc-files.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8e5657554a6cf2f3bd391d5f4d4005cd09eba70f
--- /dev/null
+++ b/src/main/assembly/misc-files.xml
@@ -0,0 +1,11 @@
+<component>
+  <fileSets>
+    <fileSet>
+      <includes>
+       <include>README.txt</include>
+       <include>LICENSE.txt</include>
+       <include>NOTICE.txt</include>
+      </includes>
+    </fileSet>
+  </fileSets>
+</component>
diff --git a/src/main/assembly/source-assembly.xml b/src/main/assembly/source-assembly.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d68ffcb21a892551c5042ba2fa9bb67fcc4c3f8f
--- /dev/null
+++ b/src/main/assembly/source-assembly.xml
@@ -0,0 +1,10 @@
+<assembly>
+  <id>sources</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <componentDescriptors>
+    <componentDescriptor>src/main/assembly/misc-files.xml</componentDescriptor>
+    <componentDescriptor>src/main/assembly/building-files.xml</componentDescriptor>
+  </componentDescriptors>
+</assembly>
\ No newline at end of file