diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java
index 9c4c5d83c36d1fcd93fbf4262eb5eeacf2b6fb09..86b9a2a1743d8c9a41edf5efe2d81fcb30dd96ad 100644
--- a/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -39,10 +39,10 @@ import org.orekit.frames.Transform;
 import org.orekit.orbits.CartesianOrbit;
 import org.orekit.orbits.Orbit;
 import org.orekit.propagation.Propagator;
-import org.orekit.rugged.core.BasicScanAlgorithm;
-import org.orekit.rugged.core.IgnoreDEMAlgorithm;
-import org.orekit.rugged.core.duvenhage.DuvenhageAlgorithm;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.BasicScanAlgorithm;
+import org.orekit.rugged.intersection.IgnoreDEMAlgorithm;
+import org.orekit.rugged.intersection.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.duvenhage.DuvenhageAlgorithm;
 import org.orekit.rugged.utils.ExtendedEllipsoid;
 import org.orekit.rugged.utils.SpacecraftToObservedBody;
 import org.orekit.time.AbsoluteDate;
diff --git a/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java b/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
similarity index 99%
rename from src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
rename to src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
index 94acd062a37b03e1ed7cad33d955390a71db5ffb..dd6b6a765625534b47029d9fce0a7fcb5c64c791 100644
--- a/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/intersection/BasicScanAlgorithm.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core;
+package org.orekit.rugged.intersection;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -25,7 +25,6 @@ import org.orekit.bodies.GeodeticPoint;
 import org.orekit.errors.OrekitException;
 import org.orekit.rugged.api.RuggedException;
 import org.orekit.rugged.api.TileUpdater;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
 import org.orekit.rugged.raster.SimpleTile;
 import org.orekit.rugged.raster.SimpleTileFactory;
 import org.orekit.rugged.raster.Tile;
diff --git a/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java b/src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
similarity index 96%
rename from src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
rename to src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
index 2c4a564dd62d0a2154000bc96524e580ab7f72c8..06a6d3b3d596bdd3df054cc1d4bf1fa47d89dcbf 100644
--- a/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/intersection/IgnoreDEMAlgorithm.java
@@ -14,13 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core;
+package org.orekit.rugged.intersection;
 
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.orekit.bodies.GeodeticPoint;
 import org.orekit.errors.OrekitException;
 import org.orekit.rugged.api.RuggedException;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
 import org.orekit.rugged.utils.ExtendedEllipsoid;
 
 /** Intersection ignoring Digital Elevation Model.
diff --git a/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java b/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
similarity index 97%
rename from src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java
rename to src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
index 9b22bb24f412b91c3f43c0b8f123f61fa953c7d9..6a4b4db672bf8e081ad9d73b727875f30b445259 100644
--- a/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/intersection/IntersectionAlgorithm.java
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.raster;
+package org.orekit.rugged.intersection;
 
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.orekit.bodies.GeodeticPoint;
 import org.orekit.rugged.api.RuggedException;
+import org.orekit.rugged.raster.Tile;
 import org.orekit.rugged.utils.ExtendedEllipsoid;
 
 /** Interface for Digital Elevation Model intersection algorithm.
diff --git a/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java b/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
similarity index 99%
rename from src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
rename to src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
index 4df38def412832c61ee0bfe3c59c57085be23b8d..f406aef4c5b0ac45e896ad784c8e4baf83286fdf 100644
--- a/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithm.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core.duvenhage;
+package org.orekit.rugged.intersection.duvenhage;
 
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.apache.commons.math3.util.FastMath;
@@ -23,7 +23,7 @@ import org.orekit.errors.OrekitException;
 import org.orekit.rugged.api.RuggedException;
 import org.orekit.rugged.api.RuggedMessages;
 import org.orekit.rugged.api.TileUpdater;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.IntersectionAlgorithm;
 import org.orekit.rugged.raster.Tile;
 import org.orekit.rugged.raster.TilesCache;
 import org.orekit.rugged.utils.ExtendedEllipsoid;
diff --git a/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java b/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
similarity index 99%
rename from src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
rename to src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
index f5e7c81d07d1fa313c81e15a0a123a4d794eaba7..5c2ea740d9e553ad9abf551e43dbc467a21fdb1c 100644
--- a/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTile.java
+++ b/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTile.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core.duvenhage;
+package org.orekit.rugged.intersection.duvenhage;
 
 import org.apache.commons.math3.analysis.BivariateFunction;
 import org.apache.commons.math3.analysis.function.Max;
diff --git a/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java b/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
similarity index 95%
rename from src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java
rename to src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
index 716b4f7f33280020d6142a2504342861fc095f23..ede1085c4afe43e0dd730a10a0632104f482f994 100644
--- a/src/main/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileFactory.java
+++ b/src/main/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileFactory.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core.duvenhage;
+package org.orekit.rugged.intersection.duvenhage;
 
 import org.orekit.rugged.raster.TileFactory;
 
diff --git a/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java b/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
similarity index 98%
rename from src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
index 7463728738cd53e954efe95508ebd14187744cc4..eb0b0ecd7d2bdcfb9e71247731656f4639bb0db6 100644
--- a/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
+++ b/src/test/java/org/orekit/rugged/intersection/AbstractAlgorithmTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core;
+package org.orekit.rugged.intersection;
 
 
 import java.io.File;
@@ -39,11 +39,11 @@ import org.orekit.orbits.CartesianOrbit;
 import org.orekit.propagation.SpacecraftState;
 import org.orekit.rugged.api.RuggedException;
 import org.orekit.rugged.api.TileUpdater;
-import org.orekit.rugged.core.duvenhage.MinMaxTreeTile;
-import org.orekit.rugged.core.duvenhage.MinMaxTreeTileFactory;
+import org.orekit.rugged.intersection.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile;
+import org.orekit.rugged.intersection.duvenhage.MinMaxTreeTileFactory;
 import org.orekit.rugged.raster.CliffsElevationUpdater;
 import org.orekit.rugged.raster.VolcanicConeElevationUpdater;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
 import org.orekit.rugged.utils.ExtendedEllipsoid;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.time.TimeScalesFactory;
diff --git a/src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java b/src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
similarity index 87%
rename from src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
index 1830fedaeff8128f483c869828aa26c97f17636b..f67a93720ec0c7ff155d3514d2db1171f396e786 100644
--- a/src/test/java/org/orekit/rugged/core/BasicScanAlgorithmTest.java
+++ b/src/test/java/org/orekit/rugged/intersection/BasicScanAlgorithmTest.java
@@ -14,11 +14,12 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core;
+package org.orekit.rugged.intersection;
 
 
 import org.orekit.rugged.api.TileUpdater;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.BasicScanAlgorithm;
+import org.orekit.rugged.intersection.IntersectionAlgorithm;
 
 public class BasicScanAlgorithmTest extends AbstractAlgorithmTest {
 
diff --git a/src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java b/src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
similarity index 91%
rename from src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java
rename to src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
index f202ddff55eda98ab0f9e8bfc3233e6a173d46e9..e2f8871a362be1a0b4c3b8bf362572f47bec519e 100644
--- a/src/test/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithmTest.java
+++ b/src/test/java/org/orekit/rugged/intersection/duvenhage/DuvenhageAlgorithmTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core.duvenhage;
+package org.orekit.rugged.intersection.duvenhage;
 
 
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
@@ -23,8 +23,9 @@ import org.orekit.bodies.GeodeticPoint;
 import org.orekit.errors.OrekitException;
 import org.orekit.rugged.api.RuggedException;
 import org.orekit.rugged.api.TileUpdater;
-import org.orekit.rugged.core.AbstractAlgorithmTest;
-import org.orekit.rugged.raster.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.AbstractAlgorithmTest;
+import org.orekit.rugged.intersection.IntersectionAlgorithm;
+import org.orekit.rugged.intersection.duvenhage.DuvenhageAlgorithm;
 
 public class DuvenhageAlgorithmTest extends AbstractAlgorithmTest {
 
diff --git a/src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java b/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
similarity index 98%
rename from src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java
rename to src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
index 6eb06c36eb1740a8c6938775733946d124ded8d0..7a6c4883b469c9065514ccd17f2c2cbc6d8e316e 100644
--- a/src/test/java/org/orekit/rugged/core/duvenhage/MinMaxTreeTileTest.java
+++ b/src/test/java/org/orekit/rugged/intersection/duvenhage/MinMaxTreeTileTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.orekit.rugged.core.duvenhage;
+package org.orekit.rugged.intersection.duvenhage;
 
 import java.lang.reflect.Field;
 
@@ -22,6 +22,8 @@ import org.apache.commons.math3.util.FastMath;
 import org.junit.Assert;
 import org.junit.Test;
 import org.orekit.rugged.api.RuggedException;
+import org.orekit.rugged.intersection.duvenhage.MinMaxTreeTile;
+import org.orekit.rugged.intersection.duvenhage.MinMaxTreeTileFactory;
 
 public class MinMaxTreeTileTest {