diff --git a/design/direct-localization-class-diagram.puml b/design/direct-localization-class-diagram.puml
index ee2306942c76adbfaff86b5f14d2721e868a4124..8d90bc51fb368f66fe48f1cfc9594643658dacb3 100644
--- a/design/direct-localization-class-diagram.puml
+++ b/design/direct-localization-class-diagram.puml
@@ -39,7 +39,7 @@
         +intersection(ellipsoid, position, los)
         +refineIntersection(ellipsoid, position, los, closeGuess)
       }
-      Tile <-- IntersectionAlgorithm : compute elevation
+      Tile <-- IntersectionAlgorithm : evaluate DEM
     }
 
     package utils #DDEBD8 {
@@ -51,7 +51,7 @@
         +pointOnGround(position, los)
       }
       class SpacecraftToObservedBody
-      IntersectionAlgorithm --> ExtendedEllipsoid : find DEM tiles boundaries
+      IntersectionAlgorithm --> ExtendedEllipsoid : compute grid points crossings
     }
 
     package api #DDEBD8 {
diff --git a/design/direct-localization-sequence-diagram.puml b/design/direct-localization-sequence-diagram.puml
index f0475efd97116f5a8960793b4c95af728f0dcf05..f4eb1ba3bd2c83ccebafd943cfaf163571457315 100644
--- a/design/direct-localization-sequence-diagram.puml
+++ b/design/direct-localization-sequence-diagram.puml
@@ -31,53 +31,61 @@
 
   hide footbox
 
-  participant "Application" as A
-  participant "Interface" as I
+  participant "UserMain" as A
   participant "Rugged" as R
-  participant "Algorithm" as G
-  participant "Orekit" as O
+  participant "LineSensor" as LS
+  participant "SpacecraftToObservedBody" as S
+  participant "ExtendedEllipsoid" as E
+  participant "IntersectionAlgorithm" as G
+  participant "Tile" as T
 
   activate A
-  A  -> I : directLocalization(name, number)
-     activate I
-       I  -> R : directLocalization(name, number)
+     A  -> R : directLocalization(name, number)
+     activate R
+       R -> LS : apply time stamping model
+       R -> S : get transforms at line date
+       R -> R : loop over line pixels pâ‚–
        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 : intersection(ellipsoid, line-of-sight)
-           R -> R : fix speed of light delay in transforms
-           activate R
-           deactivate R
-           R -> G : intersection(ellipsoid, line-of-sight)
-           activate G
-             G -> O  : conversions
-             G -> R : elevation(φₖ, λₖ)
-             activate R
-               R -> I : DEM callback
-               I --> R : DEM raw data cell
-               R --> G : h(φₖ, λₖ)
-             deactivate R
-             G -> O  : conversions
-             G -> R : elevation(φₖ, λₖ)
-             activate R
-               R --> G : h(φₖ, λₖ)
-             deactivate R
-             G -> O  : conversions
-             G -> R : elevation(φₖ, λₖ)
-             activate R
-               R --> G : h(φₖ, λₖ)
-             deactivate R
-             G -> O  : conversions
-             G --> R : φₖ, λₖ, hₖ
-           deactivate G
-           R --> R : list(φₖ, λₖ, hₖ)
-         deactivate R
-         R --> I : list(φₖ, λₖ, hₖ)
+         R -> R : fix aberration of light
+         R -> E : approximate point on ground
+         R -> R : fix speed of light delay in transforms
+         R -> G : intersection(ellipsoid, line-of-sight)
+         activate G
+           G -> E  : grid points crossings
+           G -> T : elevation(φₖ, λₖ)
+           activate T
+             T -> A : DEM callback
+             A --> T : DEM raw data cell
+             T --> G : h(φₖ, λₖ)
+           deactivate T
+           G -> E  : grid points crossings
+           G -> T : elevation(φₖ, λₖ)
+           activate T
+             T --> G : h(φₖ, λₖ)
+           deactivate T
+           G -> E  : grid points crossings
+           G -> T : elevation(φₖ, λₖ)
+           activate T
+             T --> G : h(φₖ, λₖ)
+           deactivate T
+           G -> T  : pixel intersection(los)
+           activate T
+             T --> G : φₖ, λₖ, hₖ
+           deactivate T
+           G --> R : φₖ, λₖ, hₖ
+         deactivate G
+         R -> R : refine speed of light delay in transforms
+         R -> G : refine intersection(ellipsoid, line-of-sight)
+         activate G
+           G -> T  : refine pixel intersection(los)
+           activate T
+             T --> G : φₖ, λₖ, hₖ
+           deactivate T
+         deactivate G
+         R --> R : array(φₖ, λₖ, hₖ)
        deactivate R
-       I  --> A : list(φₖ, λₖ, hₖ)
-     deactivate I
+       R --> A : array(φₖ, λₖ, hₖ)
+     deactivate R
   deactivate A
 
 @enduml