diff --git a/.checkstyle b/.checkstyle
new file mode 100644
index 0000000000000000000000000000000000000000..2b336c93eaf863ccfa4e9422414393677dd88e38
--- /dev/null
+++ b/.checkstyle
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="false" sync-formatter="false">
+  <local-check-config name="rugged-checkstyle" location="checkstyle.xml" type="project" description="">
+    <property name="checkstyle.header.file" value="${basedir}/license-header.txt"/>
+    <additional-data name="protect-config-file" value="true"/>
+  </local-check-config>
+  <fileset name="src/main/java/.*\.java" enabled="true" check-config-name="rugged-checkstyle" local="true">
+    <file-match-pattern match-pattern="src/main/java/.*\.java" include-pattern="true"/>
+  </fileset>
+</fileset-config>
diff --git a/geotiff/pom.xml b/geotiff/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..68c92cefae08ca3adf3ca15a3bd25cabcdb8d041
--- /dev/null
+++ b/geotiff/pom.xml
@@ -0,0 +1,306 @@
+<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/rugged-geotiff/src/main/assembly/binary-assembly.xml b/geotiff/src/main/assembly/binary-assembly.xml
similarity index 100%
rename from rugged-geotiff/src/main/assembly/binary-assembly.xml
rename to geotiff/src/main/assembly/binary-assembly.xml
diff --git a/rugged-geotiff/src/main/assembly/building-files.xml b/geotiff/src/main/assembly/building-files.xml
similarity index 100%
rename from rugged-geotiff/src/main/assembly/building-files.xml
rename to geotiff/src/main/assembly/building-files.xml
diff --git a/rugged-geotiff/src/main/assembly/jar-files.xml b/geotiff/src/main/assembly/jar-files.xml
similarity index 100%
rename from rugged-geotiff/src/main/assembly/jar-files.xml
rename to geotiff/src/main/assembly/jar-files.xml
diff --git a/rugged-geotiff/src/main/assembly/misc-files.xml b/geotiff/src/main/assembly/misc-files.xml
similarity index 100%
rename from rugged-geotiff/src/main/assembly/misc-files.xml
rename to geotiff/src/main/assembly/misc-files.xml
diff --git a/rugged-geotiff/src/main/assembly/source-assembly.xml b/geotiff/src/main/assembly/source-assembly.xml
similarity index 100%
rename from rugged-geotiff/src/main/assembly/source-assembly.xml
rename to geotiff/src/main/assembly/source-assembly.xml
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/AngulerUnits.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/GeoKey.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeoTiffDEM.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/GeoTiffDEM.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeoTiffDEM.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/GeoTiffDEM.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/GeographicCoordinateSystemType.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/LinearUnits.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/ModelType.java
diff --git a/rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java b/geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java
similarity index 100%
rename from rugged-geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java
rename to geotiff/src/main/java/org/orekit/rugged/geotiff/RasterType.java
diff --git a/rugged-geotiff/src/test/java/org/orekit/rugged/geotiff/GeoTiffDEMTest.java b/geotiff/src/test/java/org/orekit/rugged/geotiff/GeoTiffDEMTest.java
similarity index 100%
rename from rugged-geotiff/src/test/java/org/orekit/rugged/geotiff/GeoTiffDEMTest.java
rename to geotiff/src/test/java/org/orekit/rugged/geotiff/GeoTiffDEMTest.java
diff --git a/pom.xml b/pom.xml
index 02bbf2ad9158359899ea45d50d6055ffb11588cc..0e3c3fbd037823eacad4ccc99d491b703b1e1e7a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,8 +5,8 @@
   <groupId>org.orekit</groupId>
   <artifactId>rugged</artifactId>
   <version>1.0-SNAPSHOT</version>
-  <packaging>pom</packaging>
-  <name>Rugged</name>
+  <packaging>jar</packaging>
+  <name>Rugged Core</name>
 
   <inceptionYear>2014</inceptionYear>
   <description>
@@ -36,11 +36,30 @@
     <url>http://www.c-s.fr/</url>
   </organization>
 
-  <modules>
-    <module>rugged-api</module>
-    <module>rugged-core</module>
-    <module>rugged-geotiff</module>
-  </modules>
+  <dependencies>
+    <dependency>
+        <groupId>org.orekit</groupId>
+        <artifactId>orekit</artifactId>
+        <version>6.1</version>
+        <type>jar</type>
+        <optional>false</optional>
+    </dependency>
+    <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-math3</artifactId>
+        <version>3.2</version>
+        <type>jar</type>
+        <optional>false</optional>
+    </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>
@@ -53,6 +72,38 @@
           <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.4</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>
@@ -157,23 +208,12 @@
     </plugins>
   </build>
 
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>4.8.2</version>
-      <type>jar</type>
-      <scope>test</scope>
-      <optional>false</optional>
-    </dependency>
-  </dependencies>
-
   <reporting>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
-        <version>2.3</version>
+        <version>3.3</version>
         <configuration>
           <inputEncoding>UTF-8</inputEncoding>
           <outputEncoding>UTF-8</outputEncoding>
@@ -187,7 +227,7 @@
       <plugin>
         <groupId>org.codehaus.mojo</groupId>
         <artifactId>findbugs-maven-plugin</artifactId>
-        <version>2.3.2</version>
+        <version>2.5.3</version>
         <configuration>
           <threshold>Normal</threshold>
           <effort>Default</effort>
@@ -197,22 +237,30 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.9</version>
+        <version>2.16</version>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-checkstyle-plugin</artifactId>
-        <version>2.6</version>
+        <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.6</version>
+        <version>2.9</version>
         <configuration>
           <xmlPath>${basedir}/src/site/xdoc/changes.xml</xmlPath>
         </configuration>
@@ -227,7 +275,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-jxr-plugin</artifactId>
-        <version>2.2</version>
+        <version>2.3</version>
         <configuration>
           <outputEncoding>UTF-8</outputEncoding>
           <linkJavadoc>false</linkJavadoc>
@@ -236,7 +284,7 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-javadoc-plugin</artifactId>
-        <version>2.8</version>
+        <version>2.9.1</version>
         <configuration>
           <overview>${basedir}/src/main/java/org/orekit/rugged/overview.html</overview>
           <links>
diff --git a/rugged-api/pom.xml b/rugged-api/pom.xml
deleted file mode 100644
index f70d50cdbdf9e03867f7f526add98288e051c3fa..0000000000000000000000000000000000000000
--- a/rugged-api/pom.xml
+++ /dev/null
@@ -1,89 +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>
-  <parent>
-    <groupId>org.orekit</groupId>
-    <artifactId>rugged</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>rugged-api</artifactId>
-  <packaging>jar</packaging>
-  <name>Rugged API</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>
-
-  <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>
-    </plugins>
-  </build>
-
-</project>
diff --git a/rugged-core/pom.xml b/rugged-core/pom.xml
deleted file mode 100644
index 93231e582f298b4c6cadc78ef5bde98b69140a09..0000000000000000000000000000000000000000
--- a/rugged-core/pom.xml
+++ /dev/null
@@ -1,113 +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>
-  <parent>
-    <groupId>org.orekit</groupId>
-    <artifactId>rugged</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>rugged-core</artifactId>
-  <packaging>jar</packaging>
-  <name>Rugged Core</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-api</artifactId>
-        <version>1.0-SNAPSHOT</version>
-        <type>jar</type>
-        <optional>false</optional>
-    </dependency>
-    <dependency>
-        <groupId>org.orekit</groupId>
-        <artifactId>orekit</artifactId>
-        <version>6.1</version>
-        <type>jar</type>
-        <optional>false</optional>
-    </dependency>
-    <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-math3</artifactId>
-        <version>3.2</version>
-        <type>jar</type>
-        <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>
-    </plugins>
-  </build>
-
-</project>
diff --git a/rugged-geotiff/pom.xml b/rugged-geotiff/pom.xml
deleted file mode 100644
index 846c793dada29e67c0fcfdcf1e42a9a5d2684dfd..0000000000000000000000000000000000000000
--- a/rugged-geotiff/pom.xml
+++ /dev/null
@@ -1,102 +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>
-  <parent>
-    <groupId>org.orekit</groupId>
-    <artifactId>rugged</artifactId>
-    <version>1.0-SNAPSHOT</version>
-  </parent>
-  <artifactId>rugged-geotiff</artifactId>
-  <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-api</artifactId>
-      <version>1.0-SNAPSHOT</version>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-imaging</artifactId>
-      <version>1.0-SNAPSHOT</version>
-    </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>
-    </plugins>
-  </build>
-
-</project>
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/GroundPoint.java b/src/main/java/org/orekit/rugged/api/GroundPoint.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/GroundPoint.java
rename to src/main/java/org/orekit/rugged/api/GroundPoint.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/LineDatation.java b/src/main/java/org/orekit/rugged/api/LineDatation.java
similarity index 92%
rename from rugged-api/src/main/java/org/orekit/rugged/api/LineDatation.java
rename to src/main/java/org/orekit/rugged/api/LineDatation.java
index 716ff2aec30f07624e3df9830b266cdee900ddfc..ba032920e110dd5fbb49de6241092d8249c55489 100644
--- a/rugged-api/src/main/java/org/orekit/rugged/api/LineDatation.java
+++ b/src/main/java/org/orekit/rugged/api/LineDatation.java
@@ -23,13 +23,13 @@ package org.orekit.rugged.api;
 public interface LineDatation {
 
     /** Get the date for a given line.
-     * @param param lineNumber line number
+     * @param lineNumber line number
      * @return date, as an offset in seconds from reference date
      */
     double getDate(double lineNumber);
 
     /** Get the line for a given date.
-     * @param date, as an offset in seconds from reference date
+     * @param date date, as an offset in seconds from reference date
      * @return line number
      */
     double getLine(double date);
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/LinearLineDatation.java b/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
similarity index 92%
rename from rugged-api/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
rename to src/main/java/org/orekit/rugged/api/LinearLineDatation.java
index 9ce4684fd5bfcda45be5322ccf7669f8a4562a39..def52ccc56067a50ecb15ec8ccfb593a27d88a90 100644
--- a/rugged-api/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
+++ b/src/main/java/org/orekit/rugged/api/LinearLineDatation.java
@@ -31,7 +31,7 @@ public class LinearLineDatation implements LineDatation {
     /** Rate of lines scanning (lines / seconds). */
     private final double rate;
 
-    /** Simple constructor
+    /** Simple constructor.
      * @param line0 line number at reference date
      * @param rate rate of lines scanning (lines / seconds)
      */
@@ -42,13 +42,13 @@ public class LinearLineDatation implements LineDatation {
 
     /** {@inheritDoc} */
     @Override
-    public double getDate(double lineNumber) {
+    public double getDate(final double lineNumber) {
         return (lineNumber - line0) / rate;
     }
 
     /** {@inheritDoc} */
     @Override
-    public double getLine(double date) {
+    public double getLine(final double date) {
         return line0 + rate * date;
     }
 
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/PixelLOS.java b/src/main/java/org/orekit/rugged/api/PixelLOS.java
similarity index 95%
rename from rugged-api/src/main/java/org/orekit/rugged/api/PixelLOS.java
rename to src/main/java/org/orekit/rugged/api/PixelLOS.java
index 9d638491bfcc5aefde897e2314c88510eeed95bc..e84c535b4e829dec4b061c08f6487995caf2f8e6 100644
--- a/rugged-api/src/main/java/org/orekit/rugged/api/PixelLOS.java
+++ b/src/main/java/org/orekit/rugged/api/PixelLOS.java
@@ -57,8 +57,8 @@ public class PixelLOS implements Serializable {
      * @param dy line of sight direction along y axis
      * @param dz line of sight direction along z axis
      */
-    public PixelLOS(final double px, double py, double pz,
-                    final double dx, double dy, double dz) {
+    public PixelLOS(final double px, final double py, final double pz,
+                    final double dx, final double dy, final double dz) {
         this.px   = px;
         this.py   = py;
         this.pz   = pz;
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java
similarity index 78%
rename from rugged-api/src/main/java/org/orekit/rugged/api/Rugged.java
rename to src/main/java/org/orekit/rugged/api/Rugged.java
index 38a6ebe094dac4b81c281429194175dcef61947a..cfbf31b90bb3b968675c9419479cac1a1e5c0475 100644
--- a/rugged-api/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -26,17 +26,50 @@ public interface Rugged {
 
     /** Enumerate for ellipsoid. */
     enum Ellipsoid {
-        GRS80, WGS84, IERS96, IERS2003
+
+        /** Constant for GRS 80 ellipsoid. */
+        GRS80,
+
+        /** Constant for WGS 84 ellipsoid. */
+        WGS84,
+
+        /** Constant for IERS 96 ellipsoid. */
+        IERS96,
+
+        /** Constant for IERS 2003 ellipsoid. */
+        IERS2003
+
     }
 
     /** Enumerate for inertial frames. */
     enum InertialFrame {
-        GCRF, EME2000, MOD, TOD, VEIS1950
+
+        /** Constant for Geocentric Celestial Reference Frame. */
+        GCRF,
+
+        /** Constant for Earth Mean Equator 2000 frame (aka J2000). */
+        EME2000,
+
+        /** Constant for Mean Of Date frame, with IERS 96 conventions (Lieske precession). */
+        MOD,
+
+        /** Constant for True Of Date frame, with IERS 96 conventions (Wahr nutation). */
+        TOD,
+
+        /** Constant for Veis 1950 frame. */
+        VEIS1950
+
     }
 
     /** Enumerate for body rotating frames. */
     enum BodyRotatingFrame {
-        ITRF, GTOD
+
+        /** Constant for International Terrestrial Reference Frame. */
+        ITRF,
+
+        /** Constant for Geocentric True Of Date frame. */
+        GTOD
+
     }
 
     /** Enumerate for Digital Elevation Model intersection. */
@@ -99,15 +132,15 @@ public interface Rugged {
      */
     void setUpTilesManagement(TileUpdater updater, int maxCachedTiles);
 
-    /** Set up sensor model.
-     * @param sensorName name of the sensor.
-     * @param linesOfSigth lines of sight for each pixels
+    /** Set up line sensor model.
+     * @param name name of the line sensor.
+     * @param pixels lines of sight for each pixels
      * @param datationModel model to use for dating sensor lines
      */
-    void setSensor(String sensorName, List<PixelLOS> linesOfSigth, LineDatation datationModel);
+    void setLineSensor(String name, List<PixelLOS> pixels, LineDatation datationModel);
 
     /** Direct localization of a sensor line.
-     * @param sensorName name of the sensor
+     * @param name name of the line sensor
      * @param lineNumber number of the line to localize on ground
      * @return ground position of all pixels of the specified sensor line
      * @exception RuggedException if line cannot be localized,
@@ -115,19 +148,19 @@ public interface Rugged {
      * not been called beforehand, or if {@link #setOrbitAndAttitude(List, List)} has not
      * been called beforehand, or sensor is unknown
      */
-    GroundPoint[] directLocalization(String sensorName, double lineNumber)
+    GroundPoint[] directLocalization(String name, double lineNumber)
         throws RuggedException;
 
     /** Inverse localization of a ground point.
-     * @param sensorName name of the sensor
-     * @param ground point to localize
+     * @param name name of the line  sensor
+     * @param groundPoint ground point to localize
      * @return sensor pixel seeing ground point
      * @exception RuggedException if line cannot be localized,
      * if {@link #setGeneralContext(File, InertialFrame, BodyRotatingFrame, Ellipsoid)} has
      * not been called beforehand, or if {@link #setOrbitAndAttitude(List, List)} has not
      * been called beforehand, or sensor is unknown
      */
-    SensorPixel inverseLocalization(String sensorName, GroundPoint groundPoint)
+    SensorPixel inverseLocalization(String name, GroundPoint groundPoint)
         throws RuggedException;
 
 }
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/RuggedException.java b/src/main/java/org/orekit/rugged/api/RuggedException.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/RuggedException.java
rename to src/main/java/org/orekit/rugged/api/RuggedException.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java b/src/main/java/org/orekit/rugged/api/RuggedMessages.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/RuggedMessages.java
rename to src/main/java/org/orekit/rugged/api/RuggedMessages.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/SatellitePV.java b/src/main/java/org/orekit/rugged/api/SatellitePV.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/SatellitePV.java
rename to src/main/java/org/orekit/rugged/api/SatellitePV.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/SatelliteQ.java b/src/main/java/org/orekit/rugged/api/SatelliteQ.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/SatelliteQ.java
rename to src/main/java/org/orekit/rugged/api/SatelliteQ.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/SensorPixel.java b/src/main/java/org/orekit/rugged/api/SensorPixel.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/SensorPixel.java
rename to src/main/java/org/orekit/rugged/api/SensorPixel.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/TileUpdater.java b/src/main/java/org/orekit/rugged/api/TileUpdater.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/TileUpdater.java
rename to src/main/java/org/orekit/rugged/api/TileUpdater.java
diff --git a/rugged-api/src/main/java/org/orekit/rugged/api/UpdatableTile.java b/src/main/java/org/orekit/rugged/api/UpdatableTile.java
similarity index 100%
rename from rugged-api/src/main/java/org/orekit/rugged/api/UpdatableTile.java
rename to src/main/java/org/orekit/rugged/api/UpdatableTile.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java b/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
similarity index 98%
rename from rugged-core/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
rename to src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
index 5b9af1b17fbf0c096bc6e31f6322cc8a08bcb2f1..ea8c0f78b08cc5db5515132e0eecbf32189a4a06 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
@@ -76,7 +76,7 @@ public class BasicScanAlgorithm implements IntersectionAlgorithm {
             double maxLatitude  = Double.NaN;
             double minLongitude = Double.NaN;
             double maxLongitude = Double.NaN;
-            List<SimpleTile> scannedTiles = new ArrayList<SimpleTile>();
+            final List<SimpleTile> scannedTiles = new ArrayList<SimpleTile>();
             for (boolean changedMinMax = true; changedMinMax; changedMinMax = checkMinMax(scannedTiles)) {
 
                 scannedTiles.clear();
@@ -136,7 +136,7 @@ public class BasicScanAlgorithm implements IntersectionAlgorithm {
                             }
 
                         }
-                    }                    
+                    }
                 }
             }
 
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java b/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
similarity index 97%
rename from rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
rename to src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
index 118446a406147f53cfb33187c403d1a81e27818a..bb267bd3766eaabd62e479955361824ed982f89b 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
+++ b/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
@@ -82,13 +82,13 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid {
         final double   c     = zz2 * delta.getNormSq()               - delta.getZ() * delta.getZ();
 
         // find the two intersections along the line
-        final double   b2    = b * b;
+        final double   bb    = b * b;
         final double   ac    = a * c;
-        if (b2 < ac) {
+        if (bb < ac) {
             throw new RuggedException(RuggedMessages.LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE,
                                       FastMath.toDegrees(latitude));
         }
-        final double s  = FastMath.sqrt(b2 - ac);
+        final double s  = FastMath.sqrt(bb - ac);
         final double k1 = (b > 0) ? -(s + b) / a : c / (s - b);
         final double k2 = c / (a * k1);
 
@@ -105,7 +105,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid {
                 // only k1 is in the good nappe
                 selectedK = k1;
             }
-        } else {  
+        } else {
             if (k2IsOK) {
                 // only k2 is in the good nappe
                 selectedK = k2;
@@ -141,7 +141,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid {
         }
 
         // compute point
-       return new Vector3D(1, position, -Vector3D.dotProduct(position, normal) / d, los);
+        return new Vector3D(1, position, -Vector3D.dotProduct(position, normal) / d, los);
 
     }
 
@@ -205,8 +205,7 @@ public class ExtendedEllipsoid extends OneAxisEllipsoid {
      * @return line-of-sight in topocentric frame (East, North, Zenith) of the point,
      * scaled to match radians in the horizontal plane and meters along the vertical axis
      */
-    public Vector3D convertLos(final GeodeticPoint point, final Vector3D los)
-        throws OrekitException {
+    public Vector3D convertLos(final GeodeticPoint point, final Vector3D los) {
 
         // Cartesian coordinates of the topocentric frame origin
         final Vector3D p3D = transform(point);
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java b/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
similarity index 100%
rename from rugged-core/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
rename to src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/RuggedImpl.java b/src/main/java/org/orekit/rugged/core/RuggedImpl.java
similarity index 79%
rename from rugged-core/src/main/java/org/orekit/rugged/core/RuggedImpl.java
rename to src/main/java/org/orekit/rugged/core/RuggedImpl.java
index 83d2b27d381d68176703b414e724ed38108a5b54..7f52151d085aa98c3fd9a028d42b6e7cd67ccae6 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/RuggedImpl.java
+++ b/src/main/java/org/orekit/rugged/core/RuggedImpl.java
@@ -92,7 +92,7 @@ public class RuggedImpl implements Rugged {
 
     /** {@inheritDoc} */
     @Override
-    public  void setGeneralContext(final File orekitDataDir, final String referenceDate,
+    public  void setGeneralContext(final File orekitDataDir, final String newReferenceDate,
                                    final Algorithm algorithmID, final Ellipsoid ellipsoidID,
                                    final InertialFrame inertialFrameID,
                                    final BodyRotatingFrame bodyRotatingFrameID,
@@ -103,7 +103,7 @@ public class RuggedImpl implements Rugged {
 
             // time reference
             utc                = selectTimeScale(orekitDataDir);
-            this.referenceDate = new AbsoluteDate(referenceDate, utc);
+            this.referenceDate = new AbsoluteDate(newReferenceDate, utc);
 
             // space reference
             frame = selectInertialFrame(inertialFrameID);
@@ -128,7 +128,7 @@ public class RuggedImpl implements Rugged {
      * other methods will fail due to uninitialized context.
      * </p>
      * @param orekitDataDir top directory for Orekit data
-     * @param referenceDate reference date from which all other dates are computed
+     * @param newReferenceDate reference date from which all other dates are computed
      * @param algorithmID identifier of algorithm to use for Digital Elevation Model intersection
      * @param ellipsoidID identifier of reference ellipsoid
      * @param inertialFrameID identifier of inertial frame
@@ -136,7 +136,7 @@ public class RuggedImpl implements Rugged {
      * @param propagator global propagator
      * @exception RuggedException if data needed for some frame cannot be loaded
      */
-    public void setGeneralContext(final File orekitDataDir, final AbsoluteDate referenceDate,
+    public void setGeneralContext(final File orekitDataDir, final AbsoluteDate newReferenceDate,
                                   final Algorithm algorithmID, final Ellipsoid ellipsoidID,
                                   final InertialFrame inertialFrameID,
                                   final BodyRotatingFrame bodyRotatingFrameID,
@@ -146,7 +146,7 @@ public class RuggedImpl implements Rugged {
 
             // time reference
             utc                = selectTimeScale(orekitDataDir);
-            this.referenceDate = referenceDate;
+            this.referenceDate = newReferenceDate;
 
             // space reference
             frame = selectInertialFrame(inertialFrameID);
@@ -173,13 +173,13 @@ public class RuggedImpl implements Rugged {
 
     /** {@inheritDoc} */
     @Override
-    public void setUpTilesManagement(TileUpdater updater, int maxCachedTiles) {
+    public void setUpTilesManagement(final TileUpdater updater, final int maxCachedTiles) {
         algorithm.setUpTilesManagement(updater, maxCachedTiles);
     }
 
     /** {@inheritDoc} */
     @Override
-    public void setSensor(final String sensorName, final List<PixelLOS> linesOfSigth, final LineDatation datationModel) {
+    public void setLineSensor(final String sensorName, final List<PixelLOS> linesOfSigth, final LineDatation datationModel) {
         final List<Vector3D> positions = new ArrayList<Vector3D>(linesOfSigth.size());
         final List<Vector3D> los       = new ArrayList<Vector3D>(linesOfSigth.size());
         for (final PixelLOS plos : linesOfSigth) {
@@ -208,7 +208,7 @@ public class RuggedImpl implements Rugged {
     }
 
     /** Select inertial frame.
-     * @param inertialFrameName inertial frame identifier
+     * @param inertialFrame inertial frame identifier
      * @return inertial frame
      * @exception OrekitException if data needed for some frame cannot be loaded
      */
@@ -217,19 +217,19 @@ public class RuggedImpl implements Rugged {
 
         // set up the inertial frame
         switch (inertialFrame) {
-            case GCRF :
-                return FramesFactory.getGCRF();
-            case EME2000 :
-                return FramesFactory.getEME2000();
-            case MOD :
-                return FramesFactory.getMOD(IERSConventions.IERS_1996);
-            case TOD :
-                return FramesFactory.getTOD(IERSConventions.IERS_1996, true);
-            case VEIS1950 :
-                return FramesFactory.getVeis1950();
-            default :
-                // this should never happen
-                throw RuggedException.createInternalError(null);
+        case GCRF :
+            return FramesFactory.getGCRF();
+        case EME2000 :
+            return FramesFactory.getEME2000();
+        case MOD :
+            return FramesFactory.getMOD(IERSConventions.IERS_1996);
+        case TOD :
+            return FramesFactory.getTOD(IERSConventions.IERS_1996, true);
+        case VEIS1950 :
+            return FramesFactory.getVeis1950();
+        default :
+            // this should never happen
+            throw RuggedException.createInternalError(null);
         }
 
     }
@@ -241,43 +241,44 @@ public class RuggedImpl implements Rugged {
      */
     private Frame selectBodyRotatingFrame(final BodyRotatingFrame bodyRotatingFrame)
         throws OrekitException {
-        
+
         // set up the rotating frame
         switch (bodyRotatingFrame) {
-            case ITRF :
-                return FramesFactory.getITRF(IERSConventions.IERS_2010, true);
-            case GTOD :
-                return FramesFactory.getGTOD(IERSConventions.IERS_1996, true);
-            default :
-                // this should never happen
-                throw RuggedException.createInternalError(null);
+        case ITRF :
+            return FramesFactory.getITRF(IERSConventions.IERS_2010, true);
+        case GTOD :
+            return FramesFactory.getGTOD(IERSConventions.IERS_1996, true);
+        default :
+            // this should never happen
+            throw RuggedException.createInternalError(null);
         }
 
     }
 
     /** Select ellipsoid.
-     * @param ellipsoid reference ellipsoid identifier
+     * @param ellipsoidID reference ellipsoid identifier
      * @param bodyFrame body rotating frame
+     * @return selected ellipsoid
      * @exception OrekitException if data needed for some frame cannot be loaded
      */
-    private ExtendedEllipsoid selectEllipsoid(final Ellipsoid ellipsoid, final Frame bodyFrame)
+    private ExtendedEllipsoid selectEllipsoid(final Ellipsoid ellipsoidID, final Frame bodyFrame)
         throws OrekitException {
-        
+
         // set up the ellipsoid
-        switch (ellipsoid) {
-            case GRS80 :
-                return new ExtendedEllipsoid(6378137.0, 1.0 / 298.257222101, bodyFrame);
-            case WGS84 :
-                return new ExtendedEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
-                                             Constants.WGS84_EARTH_FLATTENING,
-                                             bodyFrame);
-            case IERS96 :
-                return new ExtendedEllipsoid(6378136.49, 1.0 / 298.25645, bodyFrame);
-            case IERS2003 :
-                return new ExtendedEllipsoid(6378136.6, 1.0 / 298.25642, bodyFrame);
-            default :
-                // this should never happen
-                throw RuggedException.createInternalError(null);
+        switch (ellipsoidID) {
+        case GRS80 :
+            return new ExtendedEllipsoid(6378137.0, 1.0 / 298.257222101, bodyFrame);
+        case WGS84 :
+            return new ExtendedEllipsoid(Constants.WGS84_EARTH_EQUATORIAL_RADIUS,
+                                         Constants.WGS84_EARTH_FLATTENING,
+                                         bodyFrame);
+        case IERS96 :
+            return new ExtendedEllipsoid(6378136.49, 1.0 / 298.25645, bodyFrame);
+        case IERS2003 :
+            return new ExtendedEllipsoid(6378136.6, 1.0 / 298.25642, bodyFrame);
+        default :
+            // this should never happen
+            throw RuggedException.createInternalError(null);
         }
 
     }
@@ -285,6 +286,7 @@ public class RuggedImpl implements Rugged {
     /** Select attitude provider.
      * @param quaternions satellite quaternions
      * @param interpolationOrder order to use for interpolation
+     * @return selected attitude provider
      * @exception OrekitException if data needed for some frame cannot be loaded
      */
     private AttitudeProvider selectAttitudeProvider(final List<SatelliteQ> quaternions,
@@ -305,6 +307,7 @@ public class RuggedImpl implements Rugged {
     /** Select position/velocity provider.
      * @param positionsVelocities satellite position and velocity
      * @param interpolationOrder order to use for interpolation
+     * @return selected position/velocity provider
      * @exception OrekitException if data needed for some frame cannot be loaded
      */
     private PVCoordinatesProvider selectPVCoordinatesProvider(final List<SatellitePV> positionsVelocities,
@@ -328,11 +331,11 @@ public class RuggedImpl implements Rugged {
 
             /** {@inhritDoc} */
             @Override
-            public PVCoordinates getPVCoordinates(final AbsoluteDate date, final Frame frame)
+            public PVCoordinates getPVCoordinates(final AbsoluteDate date, final Frame f)
                 throws OrekitException {
                 final List<Orbit> sample = cache.getNeighbors(date);
                 final Orbit interpolated = sample.get(0).interpolate(date, sample);
-                return interpolated.getPVCoordinates(date, frame);
+                return interpolated.getPVCoordinates(date, f);
             }
 
         };
@@ -340,29 +343,29 @@ public class RuggedImpl implements Rugged {
     }
 
     /** Select DEM intersection algorithm.
-     * @param algorithm intersection algorithm identifier
+     * @param algorithmID intersection algorithm identifier
      * @return selected algorithm
      */
-    private IntersectionAlgorithm selectAlgorithm(final Algorithm algorithm) {
-        
+    private IntersectionAlgorithm selectAlgorithm(final Algorithm algorithmID) {
+
         // set up the algorithm
-        switch (algorithm) {
-            case DUVENHAGE :
-                return new DuvenhageAlgorithm();
-            case BASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY :
-                return new BasicScanAlgorithm();
-            case IGNORE_DEM_USE_ELLIPSOID :
-                return new IgnoreDEMAlgorithm();
-            default :
-                // this should never happen
-                throw RuggedException.createInternalError(null);
+        switch (algorithmID) {
+        case DUVENHAGE :
+            return new DuvenhageAlgorithm();
+        case BASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY :
+            return new BasicScanAlgorithm();
+        case IGNORE_DEM_USE_ELLIPSOID :
+            return new IgnoreDEMAlgorithm();
+        default :
+            // this should never happen
+            throw RuggedException.createInternalError(null);
         }
 
     }
 
     /** {@inheritDoc} */
     @Override
-    public GroundPoint[] directLocalization(String sensorName, double lineNumber)
+    public GroundPoint[] directLocalization(final String sensorName, final double lineNumber)
         throws RuggedException {
         try {
 
@@ -378,13 +381,13 @@ public class RuggedImpl implements Rugged {
             // compute localization of each pixel
             final GroundPoint[] gp = new GroundPoint[sensor.getNbPixels()];
             for (int i = 0; i < gp.length; ++i) {
-               final GeodeticPoint geodetic =
-                       algorithm.intersection(ellipsoid,
-                                              t.transformPosition(sensor.getPosition(i)),
-                                              t.transformVector(sensor.getLos(i)));
-               gp[i] = new GroundPoint(geodetic.getLatitude(),
-                                       geodetic.getLongitude(),
-                                       geodetic.getAltitude());
+                final GeodeticPoint geodetic =
+                        algorithm.intersection(ellipsoid,
+                                               t.transformPosition(sensor.getPosition(i)),
+                                               t.transformVector(sensor.getLos(i)));
+                gp[i] = new GroundPoint(geodetic.getLatitude(),
+                                        geodetic.getLongitude(),
+                                        geodetic.getAltitude());
             }
 
             return gp;
@@ -396,7 +399,7 @@ public class RuggedImpl implements Rugged {
 
     /** {@inheritDoc} */
     @Override
-    public SensorPixel inverseLocalization(String sensorName, GroundPoint groundPoint)
+    public SensorPixel inverseLocalization(final String sensorName, final GroundPoint groundPoint)
         throws RuggedException {
 
         checkContext();
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/Sensor.java b/src/main/java/org/orekit/rugged/core/Sensor.java
similarity index 98%
rename from rugged-core/src/main/java/org/orekit/rugged/core/Sensor.java
rename to src/main/java/org/orekit/rugged/core/Sensor.java
index 2591634a659046bb3a4dedd3bdd7a56679a17c71..9758afc8a3ee95dd598fd8b8fb35556a409905b3 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/Sensor.java
+++ b/src/main/java/org/orekit/rugged/core/Sensor.java
@@ -63,7 +63,7 @@ class Sensor {
     }
 
     /** Get the name of the sensor.
-     * @preturn name of the sensor
+     * @return name of the sensor
      */
     public String getName() {
         return name;
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java b/src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java
similarity index 100%
rename from rugged-core/src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java
rename to src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java b/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
similarity index 83%
rename from rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
rename to src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
index 36ede8e7045ff356483495718050233e631a6f14..dca151846c64cbb2c04c32d5605b8d62f62fe563 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
@@ -86,7 +86,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
                     tile    = cache.getTile(current.getLatitude(), current.getLongitude());
                     hMax    = FastMath.max(hMax, tile.getMaxElevation());
                     current = null;
-                } 
+                }
 
             }
 
@@ -126,7 +126,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
                 } else {
                     // this should never happen
                     // we should have left the loop with an intersection point
-                    throw RuggedException.createInternalError(null);                    
+                    throw RuggedException.createInternalError(null);
                 }
 
 
@@ -195,7 +195,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
         if (tile.isColumnMerging(level + 1)) {
             // recurse through longitude crossings
 
-            int[] crossings = tile.getCrossedBoundaryColumns(previousLon, exitLon, level + 1);
+            final int[] crossings = tile.getCrossedBoundaryColumns(previousLon, exitLon, level + 1);
             for (final int crossingLon : crossings) {
 
                 // compute segment endpoints
@@ -229,7 +229,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
             }
         } else {
             // recurse through latitude crossings
-            int[] crossings = tile.getCrossedBoundaryRows(previousLat, exitLat, level + 1);
+            final int[] crossings = tile.getCrossedBoundaryRows(previousLat, exitLat, level + 1);
             for (final int crossingLat : crossings) {
 
                 // compute segment endpoints
@@ -285,57 +285,59 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
         throws RuggedException, OrekitException {
 
         // look for an exit at bottom
-        Vector3D exitP = ellipsoid.pointAtAltitude(position, los, tile.getMinElevation() - STEP);
-        GeodeticPoint exitGP = ellipsoid.transform(exitP, ellipsoid.getBodyFrame(), null);
+        final Vector3D exitP = ellipsoid.pointAtAltitude(position, los, tile.getMinElevation() - STEP);
+        final GeodeticPoint exitGP = ellipsoid.transform(exitP, ellipsoid.getBodyFrame(), null);
 
         switch (tile.getLocation(exitGP.getLatitude(), exitGP.getLongitude())) {
-            case SOUTH_WEST :
-                return new LimitPoint(ellipsoid,
-                                      selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMinimumLatitude()),
-                                                    ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
-                                                    position),
-                                      true);
-            case WEST :
-                return new LimitPoint(ellipsoid,
-                                      ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
-                                      true);
-            case NORTH_WEST:
-                return new LimitPoint(ellipsoid,
-                                      selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMaximumLatitude()),
-                                                    ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
-                                                    position),
-                                      true);
-            case NORTH :
-                return new LimitPoint(ellipsoid,
-                                      ellipsoid.pointAtLatitude(position, los, tile.getMaximumLatitude()),
-                                      true);
-            case NORTH_EAST :
-                return new LimitPoint(ellipsoid,
-                                      selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMaximumLatitude()),
-                                                    ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
-                                                    position),
-                                      true);
-            case EAST :
-                return new LimitPoint(ellipsoid,
-                                      ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
-                                      true);
-            case SOUTH_EAST :
-                return new LimitPoint(ellipsoid,
-                                      selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMinimumLatitude()),
-                                                    ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
-                                                    position),
-                                      true);
-            case SOUTH :
-                return new LimitPoint(ellipsoid,
-                                      ellipsoid.pointAtLatitude(position, los, tile.getMinimumLatitude()),
-                                      true);
-            case IN_TILE :
-                return new LimitPoint(exitGP, false);
-            default :
-                // this should never happen
-                throw RuggedException.createInternalError(null);
+        case SOUTH_WEST :
+            return new LimitPoint(ellipsoid,
+                                  selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMinimumLatitude()),
+                                                ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
+                                                position),
+                                                true);
+        case WEST :
+            return new LimitPoint(ellipsoid,
+                                  ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
+                                  true);
+        case NORTH_WEST:
+            return new LimitPoint(ellipsoid,
+                                  selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMaximumLatitude()),
+                                                ellipsoid.pointAtLongitude(position, los, tile.getMinimumLongitude()),
+                                                position),
+                                                true);
+        case NORTH :
+            return new LimitPoint(ellipsoid,
+                                  ellipsoid.pointAtLatitude(position, los, tile.getMaximumLatitude()),
+                                  true);
+        case NORTH_EAST :
+            return new LimitPoint(ellipsoid,
+                                  selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMaximumLatitude()),
+                                                ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
+                                                position),
+                                                true);
+        case EAST :
+            return new LimitPoint(ellipsoid,
+                                  ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
+                                  true);
+        case SOUTH_EAST :
+            return new LimitPoint(ellipsoid,
+                                  selectClosest(ellipsoid.pointAtLatitude(position,  los, tile.getMinimumLatitude()),
+                                                ellipsoid.pointAtLongitude(position, los, tile.getMaximumLongitude()),
+                                                position),
+                                                true);
+        case SOUTH :
+            return new LimitPoint(ellipsoid,
+                                  ellipsoid.pointAtLatitude(position, los, tile.getMinimumLatitude()),
+                                  true);
+        case IN_TILE :
+            return new LimitPoint(exitGP, false);
+
+        default :
+            // this should never happen
+            throw RuggedException.createInternalError(null);
+
         }
-        
+
     }
 
     /** Select point closest to line-of-sight start.
@@ -344,7 +346,7 @@ public class DuvenhageAlgorithm implements IntersectionAlgorithm {
      * @param position pixel position in ellipsoid frame
      * @return either p1 or p2, depending on which is closest to position
      */
-    private Vector3D selectClosest(Vector3D p1, Vector3D p2, Vector3D position) {
+    private Vector3D selectClosest(final Vector3D p1, final Vector3D p2, final Vector3D position) {
         return Vector3D.distance(p1, position) <= Vector3D.distance(p2, position) ? p1 : p2;
     }
 
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java b/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
similarity index 98%
rename from rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
rename to src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
index 75ac00fc34c97536673b5b2c89f67f427ad77486..53d3243fd39eb280fc02a9f39a2421fa197d0bef 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
+++ b/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
@@ -21,9 +21,9 @@ import org.apache.commons.math3.analysis.function.Max;
 import org.apache.commons.math3.analysis.function.Min;
 import org.apache.commons.math3.util.FastMath;
 import org.orekit.rugged.core.raster.SimpleTile;
-import org.orekit.rugged.core.raster.Tile;
 
-/** Simple implementation of a {@link Tile} with a min/max kd tree.
+/** Simple implementation of a {@link org.orekit.rugged.core.raster.Tile}
+ * with a min/max kd tree.
  * <p>
  * A n level min/max kd-tree contains sub-tiles merging individual pixels
  * together from coarse-grained (at level 0) to fine-grained (at level n-1).
@@ -57,8 +57,8 @@ import org.orekit.rugged.core.raster.Tile;
  * <table border="0">
  * <tr BGCOLOR="#EEEEFF"><font size="+1">
  *             <td>Level</td>         <td>Number of sub-tiles</td>    <td>Regular sub-tiles dimension</td></font></tr>
- * <tr>  <td align="center">8</td>  <td align="center">107 ⨉ 10</td>       <td align="center"> 1 ⨉   2</td> 
- * <tr>  <td align="center">7</td>  <td align="center"> 54 ⨉ 10</td>       <td align="center"> 2 ⨉   2</td> 
+ * <tr>  <td align="center">8</td>  <td align="center">107 ⨉ 10</td>       <td align="center"> 1 ⨉   2</td>
+ * <tr>  <td align="center">7</td>  <td align="center"> 54 ⨉ 10</td>       <td align="center"> 2 ⨉   2</td>
  * <tr>  <td align="center">6</td>  <td align="center"> 54 ⨉  5</td>        <td align="center"> 2 ⨉  4</td>
  * <tr>  <td align="center">5</td>  <td align="center"> 27 ⨉  5</td>        <td align="center"> 4 ⨉  4</td>
  * <tr>  <td align="center">4</td>  <td align="center"> 27 ⨉  3</td>        <td align="center"> 4 ⨉  8</td>
@@ -69,7 +69,6 @@ import org.orekit.rugged.core.raster.Tile;
  * </table>
  * </p>
 
- * </p>
  * @see MinMaxTreeTileFactory
  * @author Luc Maisonobe
  */
@@ -424,7 +423,7 @@ public class MinMaxTreeTile extends SimpleTile {
             int           iBase       = first;
             final int     nextColumns = (levelColumns + 1) / 2;
             final boolean odd         = (levelColumns & 0x1) != 0;
-            int           jEnd        = odd ? nextColumns - 1 : nextColumns;
+            final int     jEnd        = odd ? nextColumns - 1 : nextColumns;
             for (int i = 0; i < levelRows; ++i) {
 
                 // regular pairs
@@ -452,7 +451,7 @@ public class MinMaxTreeTile extends SimpleTile {
             int           iBase    = first;
             final int     nextRows = (levelRows + 1) / 2;
             final boolean odd      = (levelRows & 0x1) != 0;
-            int           iEnd     = odd ? nextRows - 1 : nextRows;
+            final int     iEnd     = odd ? nextRows - 1 : nextRows;
 
             // regular pairs
             for (int i = 0; i < iEnd; ++i) {
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java b/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java
similarity index 100%
rename from rugged-core/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java
rename to src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/IntersectionAlgorithm.java b/src/main/java/org/orekit/rugged/core/raster/IntersectionAlgorithm.java
similarity index 100%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/IntersectionAlgorithm.java
rename to src/main/java/org/orekit/rugged/core/raster/IntersectionAlgorithm.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/SimpleTile.java b/src/main/java/org/orekit/rugged/core/raster/SimpleTile.java
similarity index 92%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/SimpleTile.java
rename to src/main/java/org/orekit/rugged/core/raster/SimpleTile.java
index a05223264e5f8cc068041a11408be1f3fa70334e..c5bfb4730235447b0c6e327b78e88793868cddb9 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/raster/SimpleTile.java
+++ b/src/main/java/org/orekit/rugged/core/raster/SimpleTile.java
@@ -70,23 +70,23 @@ public class SimpleTile implements Tile {
 
     /** {@inheritDoc} */
     @Override
-    public void setGeometry(final double minLatitude, final double minLongitude,
-                            final double latitudeStep, final double longitudeStep,
-                            final int latitudeRows, final int longitudeColumns)
+    public void setGeometry(final double newMinLatitude, final double newMinLongitude,
+                            final double newLatitudeStep, final double newLongitudeStep,
+                            final int newLatitudeRows, final int newLongitudeColumns)
         throws RuggedException {
-        this.minLatitude      = minLatitude;
-        this.minLongitude     = minLongitude;
-        this.latitudeStep     = latitudeStep;
-        this.longitudeStep    = longitudeStep;
-        this.latitudeRows     = latitudeRows;
-        this.longitudeColumns = longitudeColumns;
+        this.minLatitude      = newMinLatitude;
+        this.minLongitude     = newMinLongitude;
+        this.latitudeStep     = newLatitudeStep;
+        this.longitudeStep    = newLongitudeStep;
+        this.latitudeRows     = newLatitudeRows;
+        this.longitudeColumns = newLongitudeColumns;
         this.minElevation     = Double.POSITIVE_INFINITY;
         this.maxElevation     = Double.NEGATIVE_INFINITY;
 
-        if (latitudeRows < 1 || longitudeColumns < 1) {
-            throw new RuggedException(RuggedMessages.EMPTY_TILE, latitudeRows, longitudeColumns);
+        if (newLatitudeRows < 1 || newLongitudeColumns < 1) {
+            throw new RuggedException(RuggedMessages.EMPTY_TILE, newLatitudeRows, newLongitudeColumns);
         }
-        this.elevations = new double[latitudeRows * longitudeColumns];
+        this.elevations = new double[newLatitudeRows * newLongitudeColumns];
 
     }
 
@@ -97,14 +97,14 @@ public class SimpleTile implements Tile {
     }
 
     /** Process elevation array at completion.
-     * </p>
+     * <p>
      * This method is called at tile update completion, it is
      * expected to be overridden by subclasses. The default
      * implementation does nothing.
      * </p>
-     * @param elevations elevations array
+     * @param elevationsArray elevations array
      */
-    protected void processUpdatedElevation(final double[] elevations) {
+    protected void processUpdatedElevation(final double[] elevationsArray) {
         // do nothing by default
     }
 
@@ -189,7 +189,7 @@ public class SimpleTile implements Tile {
             throw new RuggedException(RuggedMessages.OUT_OF_TILE_INDICES,
                                       latitudeIndex, longitudeIndex,
                                       latitudeRows - 1, longitudeColumns - 1);
-        }        
+        }
         minElevation = FastMath.min(minElevation, elevation);
         maxElevation = FastMath.max(maxElevation, elevation);
         elevations[latitudeIndex * getLongitudeColumns() + longitudeIndex] = elevation;
@@ -197,7 +197,7 @@ public class SimpleTile implements Tile {
 
     /** {@inheritDoc} */
     @Override
-    public double getElevationAtIndices(int latitudeIndex, int longitudeIndex) {
+    public double getElevationAtIndices(final int latitudeIndex, final int longitudeIndex) {
         return elevations[latitudeIndex * getLongitudeColumns() + longitudeIndex];
     }
 
@@ -264,7 +264,7 @@ public class SimpleTile implements Tile {
         final double dxB = dxA + los.getX() / longitudeStep;
         final double dyB = dyA + los.getY() / latitudeStep;
         final double dzB = dzA + los.getZ();
-        
+
         // points along line-of-sight can be defined as a linear progression
         // along the line depending on free variable t: p(t) = p + t * los.
         // As the point latitude and longitude are linear with respect to t,
@@ -291,7 +291,7 @@ public class SimpleTile implements Tile {
         final double t2;
         if (FastMath.abs(a) <= Precision.EPSILON * FastMath.abs(c)) {
             // the equation degenerates to a linear (or constant) equation
-            double t = -c / b;
+            final double t = -c / b;
             t1 = Double.isNaN(t) ? 0.0 : t;
             t2 = Double.POSITIVE_INFINITY;
         } else {
@@ -348,17 +348,17 @@ public class SimpleTile implements Tile {
             return null;
         }
 
-    }                              
+    }
 
     /** {@inheritDoc} */
     @Override
-    public int getLatitudeIndex(double latitude) {
+    public int getLatitudeIndex(final double latitude) {
         return (int) FastMath.floor(getDoubleLatitudeIndex(latitude));
     }
 
     /** {@inheritDoc} */
     @Override
-    public int getLongitudeIndex(double longitude) {
+    public int getLongitudeIndex(final double longitude) {
         return (int) FastMath.floor(getDoubleLontitudeIndex(longitude));
     }
 
@@ -366,7 +366,7 @@ public class SimpleTile implements Tile {
      * @param latitude geodetic latitude
      * @return latitute index (it may lie outside of the tile!)
      */
-    private double getDoubleLatitudeIndex(double latitude) {
+    private double getDoubleLatitudeIndex(final double latitude) {
         return (latitude  - minLatitude)  / latitudeStep;
     }
 
@@ -374,7 +374,7 @@ public class SimpleTile implements Tile {
      * @param longitude geodetic latitude
      * @return longitude index (it may lie outside of the tile!)
      */
-    private double getDoubleLontitudeIndex(double longitude) {
+    private double getDoubleLontitudeIndex(final double longitude) {
         return (longitude - minLongitude) / longitudeStep;
     }
 
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/SimpleTileFactory.java b/src/main/java/org/orekit/rugged/core/raster/SimpleTileFactory.java
similarity index 100%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/SimpleTileFactory.java
rename to src/main/java/org/orekit/rugged/core/raster/SimpleTileFactory.java
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/Tile.java b/src/main/java/org/orekit/rugged/core/raster/Tile.java
similarity index 87%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/Tile.java
rename to src/main/java/org/orekit/rugged/core/raster/Tile.java
index 72ae22c33b0566fb6abf770a20ea73bffa949855..4de36d2a5a1b642f2027a0210c3b8e3e31ac7ca8 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/raster/Tile.java
+++ b/src/main/java/org/orekit/rugged/core/raster/Tile.java
@@ -28,15 +28,34 @@ public interface Tile extends UpdatableTile {
 
     /** Enumerate for point location with respect to tile. */
     enum Location {
+
+        /** Location for points out of tile, past the South-West corner. */
         SOUTH_WEST,
+
+        /** Location for points out of tile, past the West edge. */
         WEST,
+
+        /** Location for points out of tile, past the North-West corner. */
         NORTH_WEST,
+
+        /** Location for points out of tile, past the North edge. */
         NORTH,
+
+        /** Location for points out of tile, past the North-East corner. */
         NORTH_EAST,
+
+        /** Location for points out of tile, past the East edge. */
         EAST,
+
+        /** Location for points out of tile, past the South-East corner. */
         SOUTH_EAST,
+
+        /** Location for points out of tile, past the South edge. */
         SOUTH,
+
+        /** Location for points within tile. */
         IN_TILE
+
     }
 
     /** Hook called at the end of tile update completion.
@@ -120,9 +139,9 @@ public interface Tile extends UpdatableTile {
     double getMaxElevation();
 
     /** Get the elevation of an exact grid point.
-     * @param latitudeIndex
-     * @param longitudeIndex
-     * @return elevation
+     * @param latitudeIndex grid point index along latitude
+     * @param longitudeIndex grid point index along longitude
+     * @return elevation at grid point
      * @exception RuggedException if indices are out of bound
      */
     double getElevationAtIndices(int latitudeIndex, int longitudeIndex)
@@ -154,7 +173,6 @@ public interface Tile extends UpdatableTile {
      * @return point corresponding to line-of-sight crossing the Digital Elevation Model surface
      * if it lies within the pixel, null otherwise
      * @exception RuggedException if intersection point cannot be computed
-     * @exception OrekitException if intersection point cannot be converted to geodetic coordinates
      */
     GeodeticPoint pixelIntersection(GeodeticPoint p, Vector3D los,
                                     int latitudeIndex, int longitudeIndex)
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/TileFactory.java b/src/main/java/org/orekit/rugged/core/raster/TileFactory.java
similarity index 97%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/TileFactory.java
rename to src/main/java/org/orekit/rugged/core/raster/TileFactory.java
index 2e5c7d1fec9a416c194af17eccece1d8bd760e34..abb629ae0f0b57623bbbba9db9488dec1e537a5f 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/raster/TileFactory.java
+++ b/src/main/java/org/orekit/rugged/core/raster/TileFactory.java
@@ -24,6 +24,7 @@ package org.orekit.rugged.core.raster;
 public interface TileFactory<T extends Tile> {
 
     /** Create an empty tile.
+     * @return e new empty tile
      */
     T createTile();
 
diff --git a/rugged-core/src/main/java/org/orekit/rugged/core/raster/TilesCache.java b/src/main/java/org/orekit/rugged/core/raster/TilesCache.java
similarity index 99%
rename from rugged-core/src/main/java/org/orekit/rugged/core/raster/TilesCache.java
rename to src/main/java/org/orekit/rugged/core/raster/TilesCache.java
index 4fe48a9d6c055ae4ce0b71cc2b39d36706ccf488..877f5c0a8ed210c25ebcfc6418882d1ca06dbf16 100644
--- a/rugged-core/src/main/java/org/orekit/rugged/core/raster/TilesCache.java
+++ b/src/main/java/org/orekit/rugged/core/raster/TilesCache.java
@@ -340,7 +340,7 @@ public class TilesCache<T extends Tile> {
         public int compare(final LatitudeProvider o1, final LatitudeProvider o2) {
             return Double.compare(o1.getLatitude(), o2.getLatitude());
         }
-        
+
     }
 
     /** Comparator for sorting with respect to longitude. */
@@ -351,7 +351,7 @@ public class TilesCache<T extends Tile> {
         public int compare(final LongitudeProvider o1, final LongitudeProvider o2) {
             return Double.compare(o1.getLongitude(), o2.getLongitude());
         }
-        
+
     }
 
 }
diff --git a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8 b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
similarity index 100%
rename from rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
rename to src/main/resources/assets/org/orekit/rugged/RuggedMessages_en.utf8
diff --git a/rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8 b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
similarity index 100%
rename from rugged-api/src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
rename to src/main/resources/assets/org/orekit/rugged/RuggedMessages_fr.utf8
diff --git a/rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java b/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
similarity index 100%
rename from rugged-api/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
rename to src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java b/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java b/src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java b/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
rename to src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/RuggedImplTest.java b/src/test/java/org/orekit/rugged/core/RuggedImplTest.java
similarity index 99%
rename from rugged-core/src/test/java/org/orekit/rugged/core/RuggedImplTest.java
rename to src/test/java/org/orekit/rugged/core/RuggedImplTest.java
index c131c1cf816efd1ac836b1b1385640b08127bb04..d9ed4c8106d7eeeb01ac8f502dd1ecda3edbe4d9 100644
--- a/rugged-core/src/test/java/org/orekit/rugged/core/RuggedImplTest.java
+++ b/src/test/java/org/orekit/rugged/core/RuggedImplTest.java
@@ -205,7 +205,7 @@ public class RuggedImplTest {
                                  ephemeris);
         rugged.setUpTilesManagement(updater, 8);
 
-        rugged.setSensor("line", los, lineDatation);
+        rugged.setLineSensor("line", los, lineDatation);
 
         try {
             PrintStream out = new PrintStream(new File(new File(System.getProperty("user.home")), "x.dat"));
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java b/src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java b/src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java
rename to src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/CheckedPatternElevationUpdater.java b/src/test/java/org/orekit/rugged/core/raster/CheckedPatternElevationUpdater.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/CheckedPatternElevationUpdater.java
rename to src/test/java/org/orekit/rugged/core/raster/CheckedPatternElevationUpdater.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/CliffsElevationUpdater.java b/src/test/java/org/orekit/rugged/core/raster/CliffsElevationUpdater.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/CliffsElevationUpdater.java
rename to src/test/java/org/orekit/rugged/core/raster/CliffsElevationUpdater.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/CountingFactory.java b/src/test/java/org/orekit/rugged/core/raster/CountingFactory.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/CountingFactory.java
rename to src/test/java/org/orekit/rugged/core/raster/CountingFactory.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/SimpleTileTest.java b/src/test/java/org/orekit/rugged/core/raster/SimpleTileTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/SimpleTileTest.java
rename to src/test/java/org/orekit/rugged/core/raster/SimpleTileTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/TilesCacheTest.java b/src/test/java/org/orekit/rugged/core/raster/TilesCacheTest.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/TilesCacheTest.java
rename to src/test/java/org/orekit/rugged/core/raster/TilesCacheTest.java
diff --git a/rugged-core/src/test/java/org/orekit/rugged/core/raster/VolcanicConeElevationUpdater.java b/src/test/java/org/orekit/rugged/core/raster/VolcanicConeElevationUpdater.java
similarity index 100%
rename from rugged-core/src/test/java/org/orekit/rugged/core/raster/VolcanicConeElevationUpdater.java
rename to src/test/java/org/orekit/rugged/core/raster/VolcanicConeElevationUpdater.java
diff --git a/rugged-core/src/test/resources/orekit-data/UTC-TAI.history b/src/test/resources/orekit-data/UTC-TAI.history
similarity index 100%
rename from rugged-core/src/test/resources/orekit-data/UTC-TAI.history
rename to src/test/resources/orekit-data/UTC-TAI.history
diff --git a/rugged-core/src/test/resources/orekit-data/eigen-6s-truncated.gfc b/src/test/resources/orekit-data/eigen-6s-truncated.gfc
similarity index 100%
rename from rugged-core/src/test/resources/orekit-data/eigen-6s-truncated.gfc
rename to src/test/resources/orekit-data/eigen-6s-truncated.gfc
diff --git a/rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12 b/src/test/resources/orekit-data/eopc04_08_IAU2000.12
similarity index 100%
rename from rugged-core/src/test/resources/orekit-data/eopc04_08_IAU2000.12
rename to src/test/resources/orekit-data/eopc04_08_IAU2000.12
diff --git a/rugged-core/src/test/resources/orekit-data/unxp2012.406 b/src/test/resources/orekit-data/unxp2012.406
similarity index 100%
rename from rugged-core/src/test/resources/orekit-data/unxp2012.406
rename to src/test/resources/orekit-data/unxp2012.406