diff --git a/core/src/main/java/org/orekit/rugged/api/Rugged.java b/core/src/main/java/org/orekit/rugged/api/Rugged.java
index d8cb0cfcfb5debe6ee77b846ab0ce1f19b86ec72..214aa1d3aad86f04db7761709f753bab8359e498 100644
--- a/core/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/core/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -114,6 +114,7 @@ public class Rugged {
      * @param bodyRotatingFrameID identifier of body rotating frame for observed ground points
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param positionsVelocities satellite position and velocity (m and m/s in inertial frame)
      * @param pvInterpolationNumber number of points to use for position/velocity interpolation
@@ -121,24 +122,25 @@ public class Rugged {
      * @param quaternions satellite quaternions with respect to inertial frame
      * @param aInterpolationNumber number of points to use for attitude interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @exception RuggedException if data needed for some frame cannot be loaded or if position
      * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span
      */
     public Rugged(final TileUpdater updater, final int maxCachedTiles,
                   final AlgorithmId algorithmID, final EllipsoidId ellipsoidID,
                   final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID,
-                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
+                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep,
+                  final double overshootTolerance,
                   final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber,
                   final CartesianDerivativesFilter pvFilter,
                   final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber,
-                  final AngularDerivativesFilter aFilter, final double tStep)
+                  final AngularDerivativesFilter aFilter)
         throws RuggedException {
         this(updater, maxCachedTiles, algorithmID,
              selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)),
-             selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance,
+             selectInertialFrame(inertialFrameID),
+             minDate, maxDate, tStep, overshootTolerance,
              positionsVelocities, pvInterpolationNumber, pvFilter,
-             quaternions, aInterpolationNumber, aFilter, tStep);
+             quaternions, aInterpolationNumber, aFilter);
     }
 
     /** Build a configured instance.
@@ -157,6 +159,7 @@ public class Rugged {
      * @param inertialFrame inertial frame used for spacecraft positions/velocities/quaternions
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param positionsVelocities satellite position and velocity (m and m/s in inertial frame)
      * @param pvInterpolationNumber number of points to use for position/velocity interpolation
@@ -164,24 +167,23 @@ public class Rugged {
      * @param quaternions satellite quaternions with respect to inertial frame
      * @param aInterpolationNumber number of points to use for attitude interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @exception RuggedException if data needed for some frame cannot be loaded or if position
      * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span
      */
     public Rugged(final TileUpdater updater, final int maxCachedTiles,
                   final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame,
-                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
+                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep,
+                  final double overshootTolerance,
                   final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber,
                   final CartesianDerivativesFilter pvFilter,
                   final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber,
-                  final AngularDerivativesFilter aFilter, final double tStep)
+                  final AngularDerivativesFilter aFilter)
         throws RuggedException {
         this(updater, maxCachedTiles, algorithmID, ellipsoid,
              createInterpolator(inertialFrame, ellipsoid.getBodyFrame(),
-                                minDate, maxDate, overshootTolerance,
+                                minDate, maxDate, tStep, overshootTolerance,
                                 positionsVelocities, pvInterpolationNumber, pvFilter,
-                                quaternions, aInterpolationNumber, aFilter,
-                                tStep));
+                                quaternions, aInterpolationNumber, aFilter));
     }
 
     /** Build a configured instance.
@@ -201,27 +203,29 @@ public class Rugged {
      * @param bodyRotatingFrameID identifier of body rotating frame for observed ground points
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations
      * @param interpolationNumber number of points to use for inertial/Earth/spacraft transforms interpolations
      * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param propagator global propagator
      * @exception RuggedException if data needed for some frame cannot be loaded
      */
     public Rugged(final TileUpdater updater, final int maxCachedTiles,
                   final AlgorithmId algorithmID, final EllipsoidId ellipsoidID,
                   final InertialFrameId inertialFrameID, final BodyRotatingFrameId bodyRotatingFrameID,
-                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
+                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep,
+                  final double overshootTolerance,
                   final double interpolationStep, final int interpolationNumber,
                   final CartesianDerivativesFilter pvFilter, final AngularDerivativesFilter aFilter,
-                  final double tStep, final Propagator propagator)
+                  final Propagator propagator)
         throws RuggedException {
         this(updater, maxCachedTiles, algorithmID,
              selectEllipsoid(ellipsoidID, selectBodyRotatingFrame(bodyRotatingFrameID)),
-             selectInertialFrame(inertialFrameID), minDate, maxDate, overshootTolerance,
-             interpolationStep, interpolationNumber, pvFilter, aFilter, tStep, propagator);
+             selectInertialFrame(inertialFrameID),
+             minDate, maxDate, tStep, overshootTolerance,
+             interpolationStep, interpolationNumber, pvFilter, aFilter, propagator);
     }
 
     /** Build a configured instance.
@@ -240,27 +244,27 @@ public class Rugged {
      * @param inertialFrame inertial frame for spacecraft positions/velocities/quaternions
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations
      * @param interpolationNumber number of points of to use for inertial/Earth/spacraft transforms interpolations
      * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param propagator global propagator
      * @exception RuggedException if data needed for some frame cannot be loaded
      */
     public Rugged(final TileUpdater updater, final int maxCachedTiles,
                   final AlgorithmId algorithmID, final OneAxisEllipsoid ellipsoid, final Frame inertialFrame,
-                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
+                  final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep,
+                  final double overshootTolerance,
                   final double interpolationStep, final int interpolationNumber,
                   final CartesianDerivativesFilter pvFilter, final AngularDerivativesFilter aFilter,
-                  final double tStep, final Propagator propagator)
+                  final Propagator propagator)
         throws RuggedException {
         this(updater, maxCachedTiles, algorithmID, ellipsoid,
              createInterpolator(inertialFrame, ellipsoid.getBodyFrame(),
-                                minDate, maxDate, overshootTolerance,
-                                interpolationStep, interpolationNumber,
-                                pvFilter, aFilter, tStep, propagator));
+                                minDate, maxDate, tStep, overshootTolerance,
+                                interpolationStep, interpolationNumber, pvFilter, aFilter, propagator));
     }
 
     /** Build a configured instance, reusing the interpolator dumped from a previous instance.
@@ -363,6 +367,7 @@ public class Rugged {
      * @param bodyFrame observed body frame
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param positionsVelocities satellite position and velocity
      * @param pvInterpolationNumber number of points to use for position/velocity interpolation
@@ -370,26 +375,25 @@ public class Rugged {
      * @param quaternions satellite quaternions
      * @param aInterpolationNumber number of points to use for attitude interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @return transforms interpolator
      * @exception RuggedException if data needed for some frame cannot be loaded or if position
      * or attitude samples do not fully cover the [{@code minDate}, {@code maxDate}] search time span
      */
     private static SpacecraftToObservedBody createInterpolator(final Frame inertialFrame, final Frame bodyFrame,
                                                                final AbsoluteDate minDate, final AbsoluteDate maxDate,
-                                                               final double overshootTolerance,
+                                                               final double tStep, final double overshootTolerance,
                                                                final List<TimeStampedPVCoordinates> positionsVelocities,
                                                                final int pvInterpolationNumber,
                                                                final CartesianDerivativesFilter pvFilter,
                                                                final List<TimeStampedAngularCoordinates> quaternions,
                                                                final int aInterpolationNumber,
-                                                               final AngularDerivativesFilter aFilter, final double tStep)
+                                                               final AngularDerivativesFilter aFilter)
         throws RuggedException {
         return new SpacecraftToObservedBody(inertialFrame, bodyFrame,
-                                            minDate, maxDate, overshootTolerance,
-                                            positionsVelocities, pvInterpolationNumber, pvFilter,
-                                            quaternions, aInterpolationNumber, aFilter,
-                                            tStep);
+                                            minDate, maxDate, tStep,
+                                            overshootTolerance, positionsVelocities, pvInterpolationNumber,
+                                            pvFilter, quaternions, aInterpolationNumber,
+                                            aFilter);
     }
 
     /** Create a transform interpolator from a propagator.
@@ -397,23 +401,23 @@ public class Rugged {
      * @param bodyFrame observed body frame
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * @param interpolationStep step to use for inertial/Earth/spacraft transforms interpolations
      * @param interpolationNumber number of points of to use for inertial/Earth/spacraft transforms interpolations
      * @param pvFilter filter for derivatives from the sample to use in position/velocity interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param propagator global propagator
      * @return transforms interpolator
      * @exception RuggedException if data needed for some frame cannot be loaded
      */
     private static SpacecraftToObservedBody createInterpolator(final Frame inertialFrame, final Frame bodyFrame,
                                                                final AbsoluteDate minDate, final AbsoluteDate maxDate,
-                                                               final double overshootTolerance,
+                                                               final double tStep, final double overshootTolerance,
                                                                final double interpolationStep, final int interpolationNumber,
                                                                final CartesianDerivativesFilter pvFilter,
                                                                final AngularDerivativesFilter aFilter,
-                                                               final double tStep, final Propagator propagator)
+                                                               final Propagator propagator)
         throws RuggedException {
         try {
 
@@ -449,10 +453,10 @@ public class Rugged {
 
             // orbit/attitude to body converter
             return createInterpolator(inertialFrame, bodyFrame,
-                                      minDate, maxDate, overshootTolerance,
-                                      positionsVelocities, interpolationNumber, pvFilter,
-                                      quaternions, interpolationNumber, aFilter,
-                                      tStep);
+                                      minDate, maxDate, tStep,
+                                      overshootTolerance, positionsVelocities, interpolationNumber,
+                                      pvFilter, quaternions, interpolationNumber,
+                                      aFilter);
 
         } catch (PropagationException pe) {
             throw new RuggedException(pe, pe.getSpecifier(), pe.getParts());
diff --git a/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java b/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
index 895623cf96b5d2035553bb50fd03d2b7fe2d8c72..c0c2db581255a2a19e725b4969ee8ccc8ca84bde 100644
--- a/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
+++ b/core/src/main/java/org/orekit/rugged/utils/SpacecraftToObservedBody.java
@@ -54,12 +54,12 @@ public class SpacecraftToObservedBody implements Serializable {
     /** End of search time span. */
     private final AbsoluteDate maxDate;
 
-    /** Tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting. */
-    private final double overshootTolerance;
-
     /** Step to use for inertial frame to body frame transforms cache computations. */
     private final double tStep;
 
+    /** Tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting. */
+    private final double overshootTolerance;
+
     /** Transforms sample from observed body frame to inertial frame. */
     private final List<Transform> bodyToInertial;
 
@@ -74,6 +74,7 @@ public class SpacecraftToObservedBody implements Serializable {
      * @param bodyFrame observed body frame
      * @param minDate start of search time span
      * @param maxDate end of search time span
+     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @param overshootTolerance tolerance in seconds allowed for {@code minDate} and {@code maxDate} overshooting
      * slightly the position, velocity and quaternions ephemerides
      * @param positionsVelocities satellite position and velocity
@@ -82,18 +83,17 @@ public class SpacecraftToObservedBody implements Serializable {
      * @param quaternions satellite quaternions
      * @param aInterpolationNumber number of points to use for attitude interpolation
      * @param aFilter filter for derivatives from the sample to use in attitude interpolation
-     * @param tStep step to use for inertial frame to body frame transforms cache computations
      * @exception RuggedException if [{@code minDate}, {@code maxDate}] search time span overshoots
      * position or attitude samples by more than {@code overshootTolerance}
      * ,
      */
     public SpacecraftToObservedBody(final Frame inertialFrame, final Frame bodyFrame,
-                                    final AbsoluteDate minDate, final AbsoluteDate maxDate, final double overshootTolerance,
+                                    final AbsoluteDate minDate, final AbsoluteDate maxDate, final double tStep,
+                                    final double overshootTolerance,
                                     final List<TimeStampedPVCoordinates> positionsVelocities, final int pvInterpolationNumber,
                                     final CartesianDerivativesFilter pvFilter,
                                     final List<TimeStampedAngularCoordinates> quaternions, final int aInterpolationNumber,
-                                    final AngularDerivativesFilter aFilter,
-                                    final double tStep)
+                                    final AngularDerivativesFilter aFilter)
         throws RuggedException {
         try {
 
diff --git a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
index b820d9e9616dcc35b0e98e333ea2698bd09fe8aa..5a61f4391456b7a074020f66558b696bb540953a 100644
--- a/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
+++ b/core/src/test/java/org/orekit/rugged/api/RuggedTest.java
@@ -151,8 +151,8 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.GRS80, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), 5.0,
-                                   pv, 8, CartesianDerivativesFilter.USE_PV, q, 8, AngularDerivativesFilter.USE_R, 0.001);
+                                   pv.get(0).getDate(), pv.get(pv.size() - 1).getDate(), 0.001,
+                                   5.0, pv, 8, CartesianDerivativesFilter.USE_PV, q, 8, AngularDerivativesFilter.USE_R);
 
         Assert.assertTrue(rugged.isLightTimeCorrected());
         rugged.setLightTimeCorrection(false);
@@ -181,8 +181,8 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.IERS96, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), 5.0,
-                                   1.0, 8, CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R, 0.001, propagator);
+                                   orbit.getDate().shiftedBy(-10.0), orbit.getDate().shiftedBy(+10.0), 0.001,
+                                   5.0, 1.0, 8, CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R, propagator);
 
         Assert.assertTrue(rugged.isLightTimeCorrected());
         rugged.setLightTimeCorrection(false);
@@ -231,13 +231,13 @@ public class RuggedTest {
 
         Assert.assertNotNull(new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                         EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                        t0.shiftedBy(4), t0.shiftedBy(6), 5.0,
-                                        pv, 2,CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001));
+                                        t0.shiftedBy(4), t0.shiftedBy(6), 0.001,
+                                        5.0, pv,2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R));
         try {
             new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   t0.shiftedBy(-1), t0.shiftedBy(6), 0.0001,
-                                   pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001);
+                                   t0.shiftedBy(-1), t0.shiftedBy(6), 0.001,
+                                   0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R);
         } catch (RuggedException re) {
             Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
             Assert.assertEquals(t0.shiftedBy(-1), re.getParts()[0]);
@@ -246,8 +246,8 @@ public class RuggedTest {
         try {
             new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   t0.shiftedBy(2), t0.shiftedBy(6), 0.0001,
-                                   pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001);
+                                   t0.shiftedBy(2), t0.shiftedBy(6), 0.001,
+                                   0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R);
         } catch (RuggedException re) {
             Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
             Assert.assertEquals(t0.shiftedBy(2), re.getParts()[0]);
@@ -256,8 +256,8 @@ public class RuggedTest {
         try {
             new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   t0.shiftedBy(4), t0.shiftedBy(9), 0.0001,
-                                   pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001);
+                                   t0.shiftedBy(4), t0.shiftedBy(9), 0.001,
+                                   0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R);
         } catch (RuggedException re) {
             Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
             Assert.assertEquals(t0.shiftedBy(9), re.getParts()[0]);
@@ -266,8 +266,8 @@ public class RuggedTest {
         try {
             new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   t0.shiftedBy(4), t0.shiftedBy(12), 0.0001,
-                                   pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R, 0.001);
+                                   t0.shiftedBy(4), t0.shiftedBy(12), 0.001,
+                                   0.0001, pv, 2, CartesianDerivativesFilter.USE_PV, q, 2, AngularDerivativesFilter.USE_R);
         } catch (RuggedException re) {
             Assert.assertEquals(RuggedMessages.OUT_OF_TIME_RANGE, re.getSpecifier());
             Assert.assertEquals(t0.shiftedBy(12), re.getParts()[0]);
@@ -321,10 +321,10 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), 5.0,
-                                   1.0 / lineDatation.getRate(0.0), 8,
-                                   CartesianDerivativesFilter.USE_PV, AngularDerivativesFilter.USE_R,
-                                   0.001, ephemeris);
+                                   lineDatation.getDate(firstLine), lineDatation.getDate(lastLine), 0.001,
+                                   5.0, 1.0 / lineDatation.getRate(0.0),
+                                   8, CartesianDerivativesFilter.USE_PV,
+                                   AngularDerivativesFilter.USE_R, ephemeris);
         rugged.setLightTimeCorrection(true);
         rugged.setAberrationOfLightCorrection(true);
 
@@ -398,11 +398,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
                                    EllipsoidId.IERS2003, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV,
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8,
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
 
         rugged.addLineSensor(lineSensor);
         Assert.assertEquals(1, rugged.getLineSensors().size());
@@ -465,11 +465,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV,
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8,
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
 
         rugged.addLineSensor(lineSensor);
 
@@ -524,21 +524,21 @@ public class RuggedTest {
 
         Rugged ruggedFull = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                        EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                       minDate, maxDate, 5.0,
-                                       orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                       CartesianDerivativesFilter.USE_PV,
-                                       orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                       AngularDerivativesFilter.USE_R, 0.001);
+                                       minDate, maxDate, 0.001,
+                                       5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       8,
+                                       CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       2, AngularDerivativesFilter.USE_R);
         ruggedFull.addLineSensor(lineSensor);
         GeodeticPoint[] gpWithFlatBodyCorrection = ruggedFull.directLocation("line", 100);
 
         Rugged ruggedFlat = new Rugged(updater, 8, AlgorithmId.DUVENHAGE_FLAT_BODY,
                                        EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                       minDate, maxDate, 5.0,
-                                       orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                       CartesianDerivativesFilter.USE_PV,
-                                       orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                       AngularDerivativesFilter.USE_R, 0.001);
+                                       minDate, maxDate, 0.001,
+                                       5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       8,
+                                       CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       2, AngularDerivativesFilter.USE_R);
         ruggedFlat.addLineSensor(lineSensor);
         GeodeticPoint[] gpWithoutFlatBodyCorrection = ruggedFlat.directLocation("line", 100);
 
@@ -588,11 +588,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV,
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8,
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.addLineSensor(lineSensor);
         GeodeticPoint[] gpLine = rugged.directLocation("line", 100);
 
@@ -641,11 +641,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV,
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8,
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.setAberrationOfLightCorrection(false);
         rugged.setLightTimeCorrection(false);
         rugged.addLineSensor(lineSensor);
@@ -696,21 +696,21 @@ public class RuggedTest {
 
         Rugged ruggedDuvenhage = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                             EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                            minDate, maxDate, 5.0,
-                                            orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                            CartesianDerivativesFilter.USE_PV,
-                                            orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                            AngularDerivativesFilter.USE_R, 0.001);
+                                            minDate, maxDate, 0.001,
+                                            5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                            8,
+                                            CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                            2, AngularDerivativesFilter.USE_R);
         ruggedDuvenhage.addLineSensor(lineSensor);
         GeodeticPoint[] gpDuvenhage = ruggedDuvenhage.directLocation("line", 100);
 
         Rugged ruggedBasicScan = new Rugged(updater, 8, AlgorithmId.BASIC_SLOW_EXHAUSTIVE_SCAN_FOR_TESTS_ONLY,
                                             EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                            minDate, maxDate, 5.0,
-                                            orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                            CartesianDerivativesFilter.USE_PV,
-                                            orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                            AngularDerivativesFilter.USE_R, 0.001);
+                                            minDate, maxDate, 0.001,
+                                            5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                            8,
+                                            CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                            2, AngularDerivativesFilter.USE_R);
         ruggedBasicScan.addLineSensor(lineSensor);
         GeodeticPoint[] gpBasicScan = ruggedBasicScan.directLocation("line", 100);
 
@@ -758,11 +758,11 @@ public class RuggedTest {
 
         Rugged ruggedOriginal = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                        EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                       minDate, maxDate, 5.0,
-                                       orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                       CartesianDerivativesFilter.USE_PV,
-                                       orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                       AngularDerivativesFilter.USE_R, 0.001);
+                                       minDate, maxDate, 0.001,
+                                       5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       8,
+                                       CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       2, AngularDerivativesFilter.USE_R);
         ruggedOriginal.addLineSensor(lineSensor);
         GeodeticPoint[] gpOriginal = ruggedOriginal.directLocation("line", 100);
 
@@ -815,11 +815,11 @@ public class RuggedTest {
 
         Rugged ruggedOriginal = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
                                        EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                       minDate, maxDate, 5.0,
-                                       orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                       CartesianDerivativesFilter.USE_PV,
-                                       orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                       AngularDerivativesFilter.USE_R, 0.001);
+                                       minDate, maxDate, 0.001,
+                                       5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       8,
+                                       CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       2, AngularDerivativesFilter.USE_R);
 
         FileOutputStream fos = new FileOutputStream(tempFolder.newFile());
         fos.close();
@@ -861,11 +861,11 @@ public class RuggedTest {
 
         Rugged ruggedOriginal = new Rugged(null, -1, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID,
                                        EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                       minDate, maxDate, 5.0,
-                                       orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                       CartesianDerivativesFilter.USE_PV,
-                                       orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                       AngularDerivativesFilter.USE_R, 0.001);
+                                       minDate, maxDate, 0.001,
+                                       5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       8,
+                                       CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                       2, AngularDerivativesFilter.USE_R);
 
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         ruggedOriginal.dumpInterpolator(bos);
@@ -1018,11 +1018,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV,
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8,
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.setLightTimeCorrection(true);
         rugged.setAberrationOfLightCorrection(true);
         for (LineSensor lineSensor : sensors) {
@@ -1138,9 +1138,9 @@ public class RuggedTest {
         TileUpdater updater = new RandomLandscapeUpdater(0.0, 9000.0, 0.5, 0xf0a401650191f9f6l, FastMath.toRadians(1.0), 257);
         Rugged rugged = new Rugged(updater, 8,
                                    AlgorithmId.DUVENHAGE, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 5.0,
-                                   satellitePVList, 8, CartesianDerivativesFilter.USE_PV,
-                                   satelliteQList, 8, AngularDerivativesFilter.USE_R, 0.001);
+                                   satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 0.001,
+                                   5.0, satellitePVList, 8,
+                                   CartesianDerivativesFilter.USE_PV, satelliteQList, 8, AngularDerivativesFilter.USE_R);
 
         List<TimeDependentLOS> lineOfSight = new ArrayList<TimeDependentLOS>();
         lineOfSight.add(new FixedLOS(new Vector3D(-0.011204, 0.181530, 1d).normalize()));
@@ -1291,8 +1291,8 @@ public class RuggedTest {
 
         TileUpdater updater = null;
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.IGNORE_DEM_USE_ELLIPSOID, EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 10.0, satellitePVList, 6,
-                CartesianDerivativesFilter.USE_P, satelliteQList, 8, AngularDerivativesFilter.USE_R, 0.1);
+                satellitePVList.get(0).getDate(), satellitePVList.get(satellitePVList.size() - 1).getDate(), 0.1, 10.0, satellitePVList,
+                6, CartesianDerivativesFilter.USE_P, satelliteQList, 8, AngularDerivativesFilter.USE_R);
 
         List<TimeDependentLOS> lineOfSight = new ArrayList<TimeDependentLOS>();
         lineOfSight.add(new FixedLOS(new Vector3D(0.0046536264d, -0.1851800945d, 1d)));
@@ -1355,11 +1355,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV, 
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8, 
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.addLineSensor(lineSensor);
 
         int lineNumber = 97;
@@ -1428,11 +1428,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV, 
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8, 
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.setLightTimeCorrection(lightTimeCorrection);
         rugged.setAberrationOfLightCorrection(aberrationOfLightCorrection);
         rugged.addLineSensor(lineSensor);
@@ -1514,11 +1514,11 @@ public class RuggedTest {
 
         Rugged rugged = new Rugged(updater, 8, AlgorithmId.DUVENHAGE,
                                    EllipsoidId.WGS84, InertialFrameId.EME2000, BodyRotatingFrameId.ITRF,
-                                   minDate, maxDate, 5.0,
-                                   orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 8,
-                                   CartesianDerivativesFilter.USE_PV, 
-                                   orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25), 2,
-                                   AngularDerivativesFilter.USE_R, 0.001);
+                                   minDate, maxDate, 0.001,
+                                   5.0, orbitToPV(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   8, 
+                                   CartesianDerivativesFilter.USE_PV, orbitToQ(orbit, earth, minDate.shiftedBy(-1.0), maxDate.shiftedBy(+1.0), 0.25),
+                                   2, AngularDerivativesFilter.USE_R);
         rugged.setLightTimeCorrection(lightTimeCorrection);
         rugged.setAberrationOfLightCorrection(aberrationOfLightCorrection);
         rugged.addLineSensor(lineSensor);
diff --git a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
index 26560fe4a302505119a7b568e397e6643ff959c9..fb9d5c2bac3852ffa634517bb465c36bc1101513 100644
--- a/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
+++ b/core/src/test/java/org/orekit/rugged/api/SensorMeanPlaneCrossingTest.java
@@ -136,12 +136,12 @@ public class SensorMeanPlaneCrossingTest {
         AbsoluteDate minDate = sensor.getDate(0);
         AbsoluteDate maxDate = sensor.getDate(2000);
         return new SpacecraftToObservedBody(orbit.getFrame(), earth.getBodyFrame(),
-                                            minDate, maxDate, 5.0,
-                                            orbitToPV(orbit, earth, minDate, maxDate, 0.25),
-                                            2, CartesianDerivativesFilter.USE_P,
-                                            orbitToQ(orbit, earth, minDate, maxDate, 0.25),
-                                            2, AngularDerivativesFilter.USE_R,
-                                            0.01);
+                                            minDate, maxDate, 0.01,
+                                            5.0,
+                                            orbitToPV(orbit, earth, minDate, maxDate, 0.25), 2,
+                                            CartesianDerivativesFilter.USE_P,
+                                            orbitToQ(orbit, earth, minDate, maxDate, 0.25), 2,
+                                            AngularDerivativesFilter.USE_R);
     }
 
     private List<TimeStampedPVCoordinates> orbitToPV(Orbit orbit, BodyShape earth,