diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java
index 0ea789844756e6e0dbddde3d02641855e020baa8..9c4c5d83c36d1fcd93fbf4262eb5eeacf2b6fb09 100644
--- a/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -40,11 +40,11 @@ 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.ExtendedEllipsoid;
 import org.orekit.rugged.core.IgnoreDEMAlgorithm;
-import org.orekit.rugged.core.SpacecraftToObservedBody;
 import org.orekit.rugged.core.duvenhage.DuvenhageAlgorithm;
 import org.orekit.rugged.raster.IntersectionAlgorithm;
+import org.orekit.rugged.utils.ExtendedEllipsoid;
+import org.orekit.rugged.utils.SpacecraftToObservedBody;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.Constants;
 import org.orekit.utils.IERSConventions;
diff --git a/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java b/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
index ebe5fd3607718980c4a01015bd29bc297aa95264..7af3c9a4dd43975873a8a7460c62c17b24c4ca20 100644
--- a/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
+++ b/src/main/java/org/orekit/rugged/api/SensorMeanPlaneCrossing.java
@@ -25,7 +25,7 @@ import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.apache.commons.math3.util.FastMath;
 import org.orekit.errors.OrekitException;
 import org.orekit.frames.Transform;
-import org.orekit.rugged.core.SpacecraftToObservedBody;
+import org.orekit.rugged.utils.SpacecraftToObservedBody;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.utils.Constants;
 import org.orekit.utils.PVCoordinates;
diff --git a/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java b/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
index 2a62c35a14d7b1fbca18c9b6b41f14472b4dbdfc..94acd062a37b03e1ed7cad33d955390a71db5ffb 100644
--- a/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/core/BasicScanAlgorithm.java
@@ -30,6 +30,7 @@ import org.orekit.rugged.raster.SimpleTile;
 import org.orekit.rugged.raster.SimpleTileFactory;
 import org.orekit.rugged.raster.Tile;
 import org.orekit.rugged.raster.TilesCache;
+import org.orekit.rugged.utils.ExtendedEllipsoid;
 
 /** Intersection computation using a basic algorithm based on exhaustive scan.
  * <p>
diff --git a/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java b/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
index fe9b98e5d2c6ab29258888fa6e932157180202ec..2c4a564dd62d0a2154000bc96524e580ab7f72c8 100644
--- a/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/core/IgnoreDEMAlgorithm.java
@@ -21,6 +21,7 @@ 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.
  * <p>
diff --git a/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java b/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
index 0c844d8d496d688bdd4121e3170182073562c166..4df38def412832c61ee0bfe3c59c57085be23b8d 100644
--- a/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/core/duvenhage/DuvenhageAlgorithm.java
@@ -23,10 +23,10 @@ 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.core.ExtendedEllipsoid;
 import org.orekit.rugged.raster.IntersectionAlgorithm;
 import org.orekit.rugged.raster.Tile;
 import org.orekit.rugged.raster.TilesCache;
+import org.orekit.rugged.utils.ExtendedEllipsoid;
 
 /** Digital Elevation Model intersection using Bernardt Duvenhage's algorithm.
  * <p>
diff --git a/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java b/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java
index 8e8f6b52fb5152802548ccc0124c628ae048b1de..9b22bb24f412b91c3f43c0b8f123f61fa953c7d9 100644
--- a/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java
+++ b/src/main/java/org/orekit/rugged/raster/IntersectionAlgorithm.java
@@ -19,7 +19,7 @@ package org.orekit.rugged.raster;
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
 import org.orekit.bodies.GeodeticPoint;
 import org.orekit.rugged.api.RuggedException;
-import org.orekit.rugged.core.ExtendedEllipsoid;
+import org.orekit.rugged.utils.ExtendedEllipsoid;
 
 /** Interface for Digital Elevation Model intersection algorithm.
  * @author Luc Maisonobe
diff --git a/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java b/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java
similarity index 99%
rename from src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
rename to src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.java
index a6c7dcfb76589ab475d33a3bb63af70d1771aef8..2218efb370435158efa78d88dfe336420970a5b4 100644
--- a/src/main/java/org/orekit/rugged/core/ExtendedEllipsoid.java
+++ b/src/main/java/org/orekit/rugged/utils/ExtendedEllipsoid.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.utils;
 
 import org.apache.commons.math3.geometry.euclidean.threed.Line;
 import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
diff --git a/src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java b/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
similarity index 99%
rename from src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java
rename to src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
index d402a8b8f6bc49140792d78b246ae062180c74e2..fe497c973486b1f34cf3436cd08b05d4bbc74377 100644
--- a/src/main/java/org/orekit/rugged/core/SpacecraftToObservedBody.java
+++ b/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.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.utils;
 
 import org.orekit.attitudes.Attitude;
 import org.orekit.attitudes.AttitudeProvider;
diff --git a/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java b/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
index c9bbe50f116c87ba93cbbc28bdc1f8f3b592a802..7463728738cd53e954efe95508ebd14187744cc4 100644
--- a/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
+++ b/src/test/java/org/orekit/rugged/core/AbstractAlgorithmTest.java
@@ -44,6 +44,7 @@ import org.orekit.rugged.core.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;
 import org.orekit.utils.Constants;
diff --git a/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java b/src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java
similarity index 99%
rename from src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
rename to src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.java
index cefc05a7908a1c84e13819423b9453e73f6661f6..7d0152378c090a702e9f92c68dd588c34c5ed382 100644
--- a/src/test/java/org/orekit/rugged/core/ExtendedEllipsoidTest.java
+++ b/src/test/java/org/orekit/rugged/utils/ExtendedEllipsoidTest.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.utils;
 
 import java.io.File;
 import java.net.URISyntaxException;
@@ -34,7 +34,7 @@ import org.orekit.frames.Frame;
 import org.orekit.frames.FramesFactory;
 import org.orekit.rugged.api.RuggedException;
 import org.orekit.rugged.api.RuggedMessages;
-import org.orekit.rugged.core.ExtendedEllipsoid;
+import org.orekit.rugged.utils.ExtendedEllipsoid;
 import org.orekit.utils.Constants;
 import org.orekit.utils.IERSConventions;