diff --git a/.gitignore b/.gitignore
index 27d78901fa76701d9b603985f3e2fca7ac4533ef..4ec3c9ac29b8bd724c795947511a89492fdf84cc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,7 @@ bin
 .classpath
 .project
 .settings
+target
 rugged-api/target
 rugged-core/target
 rugged-geotiff/target
diff --git a/design/dem-loading-class-diagram.puml b/design/dem-loading-class-diagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..3e0001c5620452d5505e4f8463c1557784332abb
--- /dev/null
+++ b/design/dem-loading-class-diagram.puml
@@ -0,0 +1,64 @@
+' Copyright 2013-2014 CS Systèmes d'Information
+' Licensed to CS Systèmes d'Information (CS) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' CS licenses this file to You under the Apache License, Version 2.0
+' (the "License"); you may not use this file except in compliance with
+' the License.  You may obtain a copy of the License at
+'
+'   http://www.apache.org/licenses/LICENSE-2.0
+'
+' Unless required by applicable law or agreed to in writing, software
+' distributed under the License is distributed on an "AS IS" BASIS,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the License for the specific language governing permissions and
+' limitations under the License.
+
+@startuml
+
+  skinparam svek                  true
+  skinparam ClassBackgroundColor  #F3EFEB/CCC9C5
+  skinparam ClassArrowColor       #691616
+  skinparam ClassBorderColor      #691616
+  skinparam NoteBackgroundColor   #F3EFEB
+  skinparam NoteBorderColor       #691616
+  skinparam NoteFontColor         #691616
+  skinparam ClassFontSize         11
+
+  package fr.cs.rugged #ECEBD8
+
+    package api #DDEBD8
+      interface UpdatableTile {
+        +setGeometry(φref, λref, δφ, δλ, rows, columns)
+        +setElevation(i, j, h)
+      }
+      interface TileUpdater {
+        +updateTile(φ, λ, UpdatableTile)
+      }
+      UpdatableTile <-- TileUpdater : updates
+    end package
+
+    package dem #DDEBD8
+     interface Tile
+     class SpecializedTile
+      interface "TileFactory<T extends Tile>" as TileFactory_T_ {
+        +T createTile()
+      }
+      class "TilesCache<T extends Tile>" as TilesCache_T_ {
+        + T getTile(φ, λ)
+      }
+      Tile --|> UpdatableTile
+      Tile <|-- SpecializedTile
+      SpecializedTile "*" <--o "1" TilesCache_T_
+     TileUpdater  "1" <--o "1" TilesCache_T_ : triggers
+     TileFactory_T_  "1" <--o "1" TilesCache_T_ : triggers
+     TileFactory_T_  --> SpecializedTile : creates
+    end package
+
+  end package
+
+  package specific.interface #ECEBD8
+    TileUpdater <|-- MissionSpecificDEM
+  end package
+
+@enduml
diff --git a/design/direct-localization-sequence-diagram.puml b/design/direct-localization-sequence-diagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..1cfc5b36562214aa413044da0cab5e6e5a3d0a25
--- /dev/null
+++ b/design/direct-localization-sequence-diagram.puml
@@ -0,0 +1,70 @@
+' Copyright 2013-2014 CS Systèmes d'Information
+' Licensed to CS Systèmes d'Information (CS) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' CS licenses this file to You under the Apache License, Version 2.0
+' (the "License"); you may not use this file except in compliance with
+' the License.  You may obtain a copy of the License at
+'
+'   http://www.apache.org/licenses/LICENSE-2.0
+'
+' Unless required by applicable law or agreed to in writing, software
+' distributed under the License is distributed on an "AS IS" BASIS,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the License for the specific language governing permissions and
+' limitations under the License.
+
+@startuml
+
+  skinparam svek                                true
+  skinparam NoteBackgroundColor                 #F3EFEB
+  skinparam NoteBorderColor                     #691616
+  skinparam NoteFontColor                       #691616
+  skinparam SequenceActorBorderColor            #6A584B
+  skinparam SequenceParticipantBackgroundColor  #F3EFEB/CCC9C5
+  skinparam SequenceParticipantBorderColor      #6A584B
+  skinparam SequenceLifeLineBackgroundColor     #CCC9C5/F3EFEB
+  skinparam SequenceLifeLineBorderColor         #6A584B
+  skinparam SequenceArrowColor                  #6A584B
+  skinparam SequenceBorderColor                 #6A584B
+  skinparam SequenceFontSize                    11
+
+  hide footbox
+
+  participant "Application" as A
+  participant "Interface" as I
+  participant "Rugged" as R
+  participant "Orekit" as O
+
+  activate A
+  A  -> I : directLocalization(line)
+     activate I
+       I  -> R : directLocalization(line)
+       activate R
+         R -> R : apply time stamping model
+         R -> R : apply combined transform provider at date
+         R -> R : loop over line pixels pâ‚–
+         activate R
+           R -> O : convert(line-of-sight)
+           activate O
+             O --> R : line-of-sight in Earth frame
+           deactivate O
+           R -> O : intersection(ellipsoid, line-of-sight)
+           activate O
+             O --> R : geodetic point
+           deactivate O
+           R -> R : DEM intersection
+           activate R
+              R -> I : DEM callback
+              I --> R : DEM raw data cell
+              R --> R : φₖ, λₖ, hₖ
+           deactivate R
+            R --> R : list(φₖ, λₖ, hₖ)
+         deactivate R
+         R --> I : list(φₖ, λₖ, hₖ)
+       deactivate R
+       I  --> A : list(φₖ, λₖ, hₖ)
+     deactivate I
+  deactivate A
+
+@enduml
diff --git a/design/geometry-at-date-sequence-diagram.puml b/design/geometry-at-date-sequence-diagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..b63cf471f49697dc855a9cd167d9a1586c2ee232
--- /dev/null
+++ b/design/geometry-at-date-sequence-diagram.puml
@@ -0,0 +1,57 @@
+' Copyright 2013-2014 CS Systèmes d'Information
+' Licensed to CS Systèmes d'Information (CS) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' CS licenses this file to You under the Apache License, Version 2.0
+' (the "License"); you may not use this file except in compliance with
+' the License.  You may obtain a copy of the License at
+'
+'   http://www.apache.org/licenses/LICENSE-2.0
+'
+' Unless required by applicable law or agreed to in writing, software
+' distributed under the License is distributed on an "AS IS" BASIS,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the License for the specific language governing permissions and
+' limitations under the License.
+
+@startuml
+
+  skinparam svek                                true
+  skinparam NoteBackgroundColor                 #F3EFEB
+  skinparam NoteBorderColor                     #691616
+  skinparam NoteFontColor                       #691616
+  skinparam SequenceActorBorderColor            #6A584B
+  skinparam SequenceParticipantBackgroundColor  #F3EFEB/CCC9C5
+  skinparam SequenceParticipantBorderColor      #6A584B
+  skinparam SequenceLifeLineBackgroundColor     #CCC9C5/F3EFEB
+  skinparam SequenceLifeLineBorderColor         #6A584B
+  skinparam SequenceArrowColor                  #6A584B
+  skinparam SequenceBorderColor                 #6A584B
+  skinparam SequenceFontSize                    11
+
+  hide footbox
+
+  participant "Caller" as C
+  participant "Rugged" as R
+  participant "Orekit" as O
+
+  activate C
+  C -> R : compute geometry at date
+    activate R
+    R -> O : interpolate(date)
+      activate O
+      O --> R : orbite/attitude
+      deactivate O
+    R -> O : getTransform(date)
+      activate O
+      O --> R : Earth to inertial transform
+      deactivate O
+    R -> O : compose transforms
+      activate O
+      O --> R : spacecraft to Earth transform
+      deactivate O
+      R --> C : spacecraft to Earth transform
+    deactivate R
+  deactivate C
+
+@enduml
diff --git a/design/initialization-sequence-diagram.puml b/design/initialization-sequence-diagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..60b238bad97fb3720e7dd1695f266881f76d07d4
--- /dev/null
+++ b/design/initialization-sequence-diagram.puml
@@ -0,0 +1,70 @@
+' Copyright 2013-2014 CS Systèmes d'Information
+' Licensed to CS Systèmes d'Information (CS) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' CS licenses this file to You under the Apache License, Version 2.0
+' (the "License"); you may not use this file except in compliance with
+' the License.  You may obtain a copy of the License at
+'
+'   http://www.apache.org/licenses/LICENSE-2.0
+'
+' Unless required by applicable law or agreed to in writing, software
+' distributed under the License is distributed on an "AS IS" BASIS,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the License for the specific language governing permissions and
+' limitations under the License.
+
+@startuml
+
+  skinparam svek                                true
+  skinparam NoteBackgroundColor                 #F3EFEB
+  skinparam NoteBorderColor                     #691616
+  skinparam NoteFontColor                       #691616
+  skinparam SequenceActorBorderColor            #6A584B
+  skinparam SequenceParticipantBackgroundColor  #F3EFEB/CCC9C5
+  skinparam SequenceParticipantBorderColor      #6A584B
+  skinparam SequenceLifeLineBackgroundColor     #CCC9C5/F3EFEB
+  skinparam SequenceLifeLineBorderColor         #6A584B
+  skinparam SequenceArrowColor                  #6A584B
+  skinparam SequenceBorderColor                 #6A584B
+  skinparam SequenceFontSize                    11
+
+  hide footbox
+
+  participant "Application" as A
+  participant "Interface" as I
+  participant "Rugged" as R
+  participant "Orekit" as O
+
+  activate A
+    A -> I : init
+    activate I
+      I -> I : loadModels
+      I -> R : initiliaze(sensors, ephemeris)
+      activate R
+        R -> R : unfoldOpticalPath(sensors)
+        activate R
+          R -> O : composeTransforms
+          activate O
+            O --> R : sensors transforms
+          deactivate O
+        deactivate R
+       R -> O : createPropagator(ephemeris)
+         activate O
+           O --> R : interpolating propagator
+          deactivate O
+       R -> O : createTransformProvider(sensors transforms, propagator)
+         activate O
+           O --> R : combined TransformProvider with caching feature
+         deactivate O
+      deactivate R
+      I -> R : registerLineTimeStampingModel
+      activate R
+      deactivate R
+      I -> R : registerDEMCallback
+      activate R
+      deactivate R
+    deactivate I
+  deactivate A
+
+@enduml
diff --git a/design/inverse-localization-sequence-diagram.puml b/design/inverse-localization-sequence-diagram.puml
new file mode 100644
index 0000000000000000000000000000000000000000..c068f9961beb28e72b99649a982b31708d71d905
--- /dev/null
+++ b/design/inverse-localization-sequence-diagram.puml
@@ -0,0 +1,87 @@
+' Copyright 2013-2014 CS Systèmes d'Information
+' Licensed to CS Systèmes d'Information (CS) under one or more
+' contributor license agreements.  See the NOTICE file distributed with
+' this work for additional information regarding copyright ownership.
+' CS licenses this file to You under the Apache License, Version 2.0
+' (the "License"); you may not use this file except in compliance with
+' the License.  You may obtain a copy of the License at
+'
+'   http://www.apache.org/licenses/LICENSE-2.0
+'
+' Unless required by applicable law or agreed to in writing, software
+' distributed under the License is distributed on an "AS IS" BASIS,
+' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+' See the License for the specific language governing permissions and
+' limitations under the License.
+
+@startuml
+
+  skinparam svek                                true
+  skinparam NoteBackgroundColor                 #F3EFEB
+  skinparam NoteBorderColor                     #691616
+  skinparam NoteFontColor                       #691616
+  skinparam SequenceActorBorderColor            #6A584B
+  skinparam SequenceParticipantBackgroundColor  #F3EFEB/CCC9C5
+  skinparam SequenceParticipantBorderColor      #6A584B
+  skinparam SequenceLifeLineBackgroundColor     #CCC9C5/F3EFEB
+  skinparam SequenceLifeLineBorderColor         #6A584B
+  skinparam SequenceArrowColor                  #6A584B
+  skinparam SequenceBorderColor                 #6A584B
+  skinparam SequenceFontSize                    11
+
+  hide footbox
+
+  participant "Application" as A
+  participant "Interface" as I
+  participant "Rugged" as R
+  participant "Orekit" as O
+  participant "Math" as M
+
+  activate A
+  A  -> I : inverseLocalization(φ, λ)
+     activate I
+       I  -> R : inverseLocalization(φ, λ)
+       activate R
+         R  -> R : elevation(φ, λ)
+         activate R
+            R -> I : DEM callback
+            I --> R : DEM raw data cell
+            R --> R : h(φ, λ)
+         deactivate R
+         R -> O : convert(ellipsoid, φ, λ, h)
+         activate O
+           O --> R : P(φ, λ, h) in Earth frame
+         deactivate O
+         R -> R : createSwathOffset(P, interpolator)
+         activate R
+           R --> R : function f(t)
+         deactivate R
+         R -> M : solve f(tâ‚€) = 0
+         activate M
+           M --> R : evaluate f(t)
+           activate R
+             R -> R : apply combined transform provider at date
+             R --> M : f(t)
+           deactivate R
+           M --> R : evaluate f(t)
+           activate R
+             R -> R : apply combined transform provider at date
+             R --> M : f(t)
+           deactivate R
+           M --> R : evaluate f(t)
+           activate R
+             R -> R : apply combined transform provider at date
+             R --> M : f(t)
+           deactivate R
+           M --> R : tâ‚€
+         deactivate M
+         R -> R : apply combined transform provider at date
+          R -> R : apply inverse time stamping model
+          R -> R : locate pixel in line for solved geometry
+          R --> I : pixel coordinates
+       deactivate R
+        I --> A : pixel coordinates
+    deactivate I         
+  deactivate A
+
+@enduml
diff --git a/design/rugged-design.odt b/design/rugged-design.odt
new file mode 100644
index 0000000000000000000000000000000000000000..5eb86e94c5bcc23ce0151eab286a49f4b946a8ef
Binary files /dev/null and b/design/rugged-design.odt differ
diff --git a/pom.xml b/pom.xml
index b08887e7a7b41e22d2c1718dceeea7583dbcea3f..02bbf2ad9158359899ea45d50d6055ffb11588cc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,39 @@
           </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>
 
@@ -205,7 +238,7 @@
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>2.8</version>
         <configuration>
-          <overview>${basedir}/src/main/java/org/orekit/strata/overview.html</overview>
+          <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>