diff --git a/src/main/java/org/orekit/rugged/adjustment/OptimizationProblemBuilder.java b/src/main/java/org/orekit/rugged/adjustment/OptimizationProblemBuilder.java
index 2c607efedfb653e61ecad5606f6c0c12a1720da8..cf4c7c9fee1aebe64f502c37d5b4b46e59e043ad 100644
--- a/src/main/java/org/orekit/rugged/adjustment/OptimizationProblemBuilder.java
+++ b/src/main/java/org/orekit/rugged/adjustment/OptimizationProblemBuilder.java
@@ -49,7 +49,7 @@ import org.orekit.utils.ParameterDriver;
  * @author Guylaine Prat
  * @since 2.0
  */
-abstract class OptimizationProblemBuilder {
+ abstract class OptimizationProblemBuilder {
 
     /** Margin used in parameters estimation for the inverse location lines range. */
     protected static final int ESTIMATION_LINE_RANGE_MARGIN = 100;
diff --git a/src/main/java/org/orekit/rugged/adjustment/measurements/SensorToSensorMapping.java b/src/main/java/org/orekit/rugged/adjustment/measurements/SensorToSensorMapping.java
index f9d14f2c348ce644ff83c5cf39434660bbc1201d..9bb1249f741006365747cd012a42536de2ab62c8 100644
--- a/src/main/java/org/orekit/rugged/adjustment/measurements/SensorToSensorMapping.java
+++ b/src/main/java/org/orekit/rugged/adjustment/measurements/SensorToSensorMapping.java
@@ -195,7 +195,7 @@ public class SensorToSensorMapping {
     /** Add a mapping between two sensor pixels (A and B) and corresponding distance between the LOS.
      * @param pixelA sensor pixel A
      * @param pixelB sensor pixel B corresponding to the sensor pixel A (by direct then inverse location)
-     * @param losDistance distance between both line of sight
+     * @param losDistance distance between the two lines of sight
      */
     public void addMapping(final SensorPixel pixelA, final SensorPixel pixelB, final Double losDistance) {
 
@@ -203,12 +203,12 @@ public class SensorToSensorMapping {
         losDistances.add(losDistance);
     }
 
-    /** Add a mapping between two sensor pixels (A and B) and corresponding distance between the LOS.
-     *  and the central body distance constraint associated with pixel A
+    /** Add a mapping between two sensor pixels (A and B) and corresponding distance between the LOS
+     *  and the central body distance constraint associated with pixel A.
      * @param pixelA sensor pixel A
      * @param pixelB sensor pixel B corresponding to the sensor pixel A (by direct then inverse location)
-     * @param losDistance distance between both line of sight
-     * @param bodyDistance distance between central body and pixel A
+     * @param losDistance distance between the two lines of sight
+     * @param bodyDistance elevation to central body 
      */
     public void addMapping(final SensorPixel pixelA, final SensorPixel pixelB,
                            final Double losDistance, final Double bodyDistance) {
diff --git a/src/main/java/org/orekit/rugged/los/LOSTransform.java b/src/main/java/org/orekit/rugged/los/LOSTransform.java
index 9ae19bfbae2c4f17ff53116f0a289d03a2a5bc0f..86aebb4349fd3f82d5caf1aed8a81bf9489076d4 100644
--- a/src/main/java/org/orekit/rugged/los/LOSTransform.java
+++ b/src/main/java/org/orekit/rugged/los/LOSTransform.java
@@ -47,8 +47,8 @@ public interface LOSTransform {
      * These polynomials can be used for example to model thermo-elastic effects.
      * </p>
      * @param index los pixel index
-     * @param date date
      * @param los line-of-sight to transform
+     * @param date date
      * @param generator generator to use for building {@link DerivativeStructure} instances
      * @return line of sight, and its first partial derivatives with respect to the parameters
      */
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
index 278cd31135b83a438c4334a039e95a7a63ad5a33..1995159deb2316438f4f76faaf65d6c378a55528 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/GroundRefining.java
@@ -69,9 +69,6 @@ public class GroundRefining extends Refining {
     /** Sensor name */
     private static String sensorName;
 
-    /** Rugged instance */
-    private static Rugged rugged;
-    
 
     /** Main function
      */
@@ -143,12 +140,12 @@ public class GroundRefining extends Refining {
 
             ruggedBuilder.setName("Rugged_refining");
 
-            rugged = ruggedBuilder.build();
+            Rugged rugged = ruggedBuilder.build();
 
             
             // Compute ground sample distance (GSD)
             // ------------------------------------
-            double [] gsd = refining.computeGSD(lineSensor);
+            double [] gsd = refining.computeGSD(rugged, lineSensor);
             System.out.format("GSD - X: %2.2f Y: %2.2f **** %n", gsd[0], gsd[1]);
 
             // Initialize disruptions:
@@ -246,7 +243,7 @@ public class GroundRefining extends Refining {
      * @param LineSensor line sensor
      * @return the GSD
      */
-    private double[] computeGSD(final LineSensor lineSensor) throws RuggedException {
+    private double[] computeGSD(final Rugged rugged, final LineSensor lineSensor) throws RuggedException {
 
     	// Get number of line
     	int dimension = pleiadesViewingModel.getDimension();
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
index d970859eb7185d4f815e25222443e8203623ef93..d7b6d53e710413fc27b5e07c273547c321817bfa 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/InterRefining.java
@@ -18,7 +18,6 @@ package fr.cs.examples.refiningPleiades;
 
 import java.io.File;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.List;
 import java.util.Locale;
 
@@ -78,12 +77,6 @@ public class InterRefining extends Refining {
 	/** Sensor name A corresponding to viewing model B */
 	private static String sensorNameB;
 
-	/** RuggedA's instance */
-	private static Rugged ruggedA;
-
-	/** RuggedB's instance */
-	private static Rugged ruggedB;
-
 
 	/** Main function
 	 */
@@ -158,7 +151,7 @@ public class InterRefining extends Refining {
 
             ruggedBuilderA.setName("RuggedA");
 
-            ruggedA = ruggedBuilderA.build();
+            Rugged ruggedA = ruggedBuilderA.build();
 
 
             System.out.format("\n**** Build Pleiades viewing model B and its orbit definition **** %n");
@@ -206,11 +199,11 @@ public class InterRefining extends Refining {
 
             ruggedBuilderB.setName("RuggedB");
 
-            ruggedB = ruggedBuilderB.build();
+            Rugged ruggedB = ruggedBuilderB.build();
 
             // Compute distance between LOS
             // -----------------------------
-            double distance = refining.computeDistanceBetweenLOS(lineSensorA, lineSensorB);
+            double distance = refining.computeDistanceBetweenLOS(ruggedA, lineSensorA, ruggedB, lineSensorB);
             System.out.format("distance %f meters %n",distance);
 
 
@@ -282,9 +275,10 @@ public class InterRefining extends Refining {
             System.out.format("\n**** Start optimization  **** %n");
             final int maxIterations = 100;
             final double convergenceThreshold = 1.e-7;
-
+            List<Rugged> ruggedList = Arrays.asList(ruggedA, ruggedB);
+            
             refining.optimization(maxIterations, convergenceThreshold,
-                                  measurements.getObservables(), refining.getRuggeds());
+                                  measurements.getObservables(), ruggedList);
 
             // Check estimated values
             // ----------------------
@@ -330,7 +324,8 @@ public class InterRefining extends Refining {
      * @param lineSensorB line sensor B
      * @return GSD
      */
-    private double computeDistanceBetweenLOS(final LineSensor lineSensorA, final LineSensor lineSensorB) throws RuggedException {
+    private double computeDistanceBetweenLOS(final Rugged ruggedA, final LineSensor lineSensorA, 
+                                             final Rugged ruggedB, final LineSensor lineSensorB) throws RuggedException {
 
     	// Get number of line of sensors
     	int dimensionA = pleiadesViewingModelA.getDimension();
@@ -375,12 +370,4 @@ public class InterRefining extends Refining {
 
         return distance;
     }
-
-    /**
-     * @return the ruggedList
-     */
-    public  Collection<Rugged> getRuggeds() {
-        List<Rugged> ruggedList = Arrays.asList(ruggedA, ruggedB);
-        return ruggedList;
-    }
 }
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
index dea3e20dd9317e662090792e20acd8f6a514e63f..a0f7c02549ad4fb23228586eadc98fd00d87bf7d 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/Refining.java
@@ -68,24 +68,22 @@ public class Refining {
     		                     final double rollValue, final double pitchValue, final double factorValue)
         throws OrekitException, RuggedException {
 
-        final String commonFactorName = "factor";
-
         rugged.
         getLineSensor(sensorName).
         getParametersDrivers().
-        filter(driver -> driver.getName().equals(sensorName+"_roll")).
+        filter(driver -> driver.getName().equals(sensorName + rollSuffix)).
         findFirst().get().setValue(rollValue);
 
         rugged.
         getLineSensor(sensorName).
         getParametersDrivers().
-        filter(driver -> driver.getName().equals(sensorName+"_pitch")).
+        filter(driver -> driver.getName().equals(sensorName + pitchSuffix)).
         findFirst().get().setValue(pitchValue);
 
         rugged.
         getLineSensor(sensorName).
         getParametersDrivers().
-        filter(driver -> driver.getName().equals(commonFactorName)).
+        filter(driver -> driver.getName().equals(factorName)).
         findFirst().get().setValue(factorValue);
     }
 
@@ -269,13 +267,11 @@ public class Refining {
      */
     public void resetModel(final Rugged rugged, final String sensorName, final boolean isSelected) throws RuggedException {
 
-        final String commonFactorName = "factor";
-
         rugged.
         getLineSensor(sensorName).
         getParametersDrivers().
-        filter(driver -> driver.getName().equals(sensorName+"_roll")
-               || driver.getName().equals(sensorName+"_pitch")).
+        filter(driver -> driver.getName().equals(sensorName + rollSuffix)
+               || driver.getName().equals(sensorName + pitchSuffix)).
         forEach(driver -> {
             try {
                 driver.setSelected(true);
@@ -288,7 +284,7 @@ public class Refining {
         rugged.
         getLineSensor(sensorName).
         getParametersDrivers().
-        filter(driver -> driver.getName().equals(commonFactorName)).
+        filter(driver -> driver.getName().equals(factorName)).
         forEach(driver -> {
             try {
                 driver.setSelected(isSelected);
@@ -366,12 +362,10 @@ public class Refining {
     		                     final double rollValue, final double pitchValue, final double factorValue)
         throws RuggedException {
 
-    	final String commonFactorName = "factor";
-
         // Estimate Roll
         double estimatedRoll = rugged.getLineSensor(sensorName).
                         getParametersDrivers().
-                        filter(driver -> driver.getName().equals(sensorName+"_roll")).
+                        filter(driver -> driver.getName().equals(sensorName + rollSuffix)).
                         findFirst().get().getValue();
 
         double rollError = (estimatedRoll - rollValue);
@@ -380,7 +374,7 @@ public class Refining {
         // Estimate pitch
         double estimatedPitch = rugged.getLineSensor(sensorName).
                         getParametersDrivers().
-                        filter(driver -> driver.getName().equals(sensorName+"_pitch")).
+                        filter(driver -> driver.getName().equals(sensorName + pitchSuffix)).
                         findFirst().get().getValue();
 
         double pitchError = (estimatedPitch - pitchValue);
@@ -389,10 +383,31 @@ public class Refining {
         // Estimate scale factor
         double estimatedFactor = rugged.getLineSensor(sensorName).
                         getParametersDrivers().
-                        filter(driver -> driver.getName().equals(commonFactorName)).
+                        filter(driver -> driver.getName().equals(factorName)).
                         findFirst().get().getValue();
 
         double factorError = (estimatedFactor - factorValue);
         System.out.format("Estimated factor: %3.5f\tfactor error: %3.6e %n", estimatedFactor, factorError);
     }
+    
+    /**
+     * Part of the name of parameter drivers 
+     */
+    static final String rollSuffix = "_roll";
+    static final String pitchSuffix = "_pitch";
+    static final String factorName = "factor";
+    
+    public static String getRollsuffix() {
+        return rollSuffix;
+    }
+
+    public static String getPitchsuffix() {
+        return pitchSuffix;
+    }
+
+    public static String getFactorname() {
+        return factorName;
+    }
+    
+    
 }
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/models/OrbitModel.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/models/OrbitModel.java
index fc9a3d2367cf745e25e9da3698add6588f01ad96..1ab3b9fc7c369055b585437a15e825ce14c732f0 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/models/OrbitModel.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/models/OrbitModel.java
@@ -86,13 +86,13 @@ public class OrbitModel {
     /** Reference date. */
     private AbsoluteDate refDate;
 
-    /** Simple constructor.
+    /** Default constructor.
      */
     public OrbitModel() {
         userDefinedLOFTransform = false;
     }
 
-    /** TODO GP add comments
+    /** Generate satellite ephemeris.
      */
     public static void addSatellitePV(final TimeScale gps, final Frame eme2000, final Frame itrf,
                                       final List<TimeStampedPVCoordinates> satellitePVList,
@@ -111,7 +111,7 @@ public class OrbitModel {
         satellitePVList.add(new TimeStampedPVCoordinates(ephemerisDate, pEME2000, vEME2000, Vector3D.ZERO));
     }
 
-    /** TODO GP add comments
+    /** Generate satellite attitude.
      */
     public void addSatelliteQ(final TimeScale gps,
                               final List<TimeStampedAngularCoordinates> satelliteQList,
@@ -125,7 +125,9 @@ public class OrbitModel {
         satelliteQList.add(pair);
     }
 
-    /** TODO GP add comments
+    /** Create an Earth.
+     * @return the Earth as the WGS84 ellipsoid
+     * @throws OrekitException
      */
     public BodyShape createEarth() throws OrekitException {
     	
@@ -134,14 +136,19 @@ public class OrbitModel {
                                     FramesFactory.getITRF(IERSConventions.IERS_2010, true));
     }
 
-    /** TODO GP add comments
+    /** Created a gravity field.
+     * @return normalized spherical harmonics coefficients
+     * @throws OrekitException
      */
     public NormalizedSphericalHarmonicsProvider createGravityField() throws OrekitException {
     	
         return GravityFieldFactory.getNormalizedProvider(12, 12);
     }
 
-    /** TODO GP add comments
+    /** Create an orbit at a chosen date.
+     * @param mu Earth gravitational constant
+     * @return the orbit
+     * @throws OrekitException
      */
     public Orbit createOrbit(final double mu, final AbsoluteDate date) throws OrekitException {
     	
@@ -170,7 +177,7 @@ public class OrbitModel {
                                  mu);
     }
 
-    /** TODO GP add comments
+    /** Set the Local Orbital Frame characteristics.
      */
     public void setLOFTransform(final double[] rollPoly, final double[] pitchPoly,
                                 final double[] yawPoly, final AbsoluteDate date) {
@@ -182,7 +189,7 @@ public class OrbitModel {
         this.refDate = date;
     }
 
-    /** TODO GP add comments
+    /** Recompute the polynom coefficients with shift.
      */
     private double getPoly(final double[] poly, final double shift) {
     	
@@ -193,7 +200,7 @@ public class OrbitModel {
         return val;
     }
 
-    /** TODO GP add comments
+    /** Get the offset.
      */
    private Rotation getOffset(final BodyShape earth, final Orbit orbit, final double shift)
         throws OrekitException {
@@ -217,7 +224,7 @@ public class OrbitModel {
         return offsetProper;
     }
 
-   /** TODO GP add comments
+   /** Create the attitude provider.
     */
     public AttitudeProvider createAttitudeProvider(final BodyShape earth, final Orbit orbit)
         throws OrekitException {
@@ -243,7 +250,7 @@ public class OrbitModel {
         }
     }
 
-    /** TODO GP add comments
+    /** Create the orbit propagator.
      */
    public Propagator createPropagator(final BodyShape earth,
                                        final NormalizedSphericalHarmonicsProvider gravityField,
@@ -277,7 +284,7 @@ public class OrbitModel {
         return numericalPropagator;
     }
 
-   /** TODO GP add comments
+   /** Generate the orbit.
     */
    public List<TimeStampedPVCoordinates> orbitToPV(final Orbit orbit, final BodyShape earth,
     		                                        final AbsoluteDate minDate, final AbsoluteDate maxDate,
@@ -301,7 +308,7 @@ public class OrbitModel {
         return list;
     }
 
-   /** TODO GP add comments
+   /** Generate the attitude.
     */
    public List<TimeStampedAngularCoordinates> orbitToQ(final Orbit orbit, final BodyShape earth,
     		                                            final AbsoluteDate minDate, final AbsoluteDate maxDate,
diff --git a/src/tutorials/java/fr/cs/examples/refiningPleiades/models/PleiadesViewingModel.java b/src/tutorials/java/fr/cs/examples/refiningPleiades/models/PleiadesViewingModel.java
index bb17aa3a40184aa317664b8d8441719c00a6c4b1..c44d9b34daa231d94e9195d37ecd43b3331bf279 100644
--- a/src/tutorials/java/fr/cs/examples/refiningPleiades/models/PleiadesViewingModel.java
+++ b/src/tutorials/java/fr/cs/examples/refiningPleiades/models/PleiadesViewingModel.java
@@ -32,6 +32,9 @@ import org.orekit.rugged.los.TimeDependentLOS;
 import org.orekit.time.AbsoluteDate;
 import org.orekit.time.TimeScale;
 import org.orekit.time.TimeScalesFactory;
+
+import fr.cs.examples.refiningPleiades.Refining;
+
 import org.orekit.rugged.linesensor.LinearLineDatation;
 import org.orekit.rugged.linesensor.LineDatation;
 import org.orekit.rugged.linesensor.LineSensor;
@@ -44,16 +47,16 @@ import org.orekit.errors.OrekitException;
  * the aim of this class is to simulate PHR sensor.
  * @author Jonathan Guinet
  * @author Lucie Labat-Allee
+ * @author Guylaine Prat
  * @since 2.0
  */
 
 public class PleiadesViewingModel {
 
-    /** intrinsic Pleiades parameters. */
-    private double fov = 1.65; // 20km - alt 694km
-
-    // Number of line of the sensor
-    private int dimension = 40000;
+    /** Pleiades parameters. */
+    private static final double FOV = 1.65; // 20km - alt 694km
+    private static final int DIMENSION = 40000;
+    private static final double LINE_PERIOD =  1.e-4; 
 
     private double angle;
     private LineSensor lineSensor;
@@ -61,8 +64,6 @@ public class PleiadesViewingModel {
 
     private String sensorName;
 
-    private final double linePeriod =  1e-4;
-
 
     /** Simple constructor.
      * <p>
@@ -111,13 +112,13 @@ public class PleiadesViewingModel {
         final LOSBuilder losBuilder = rawLOS(new Rotation(Vector3D.PLUS_I,
                                                           FastMath.toRadians(this.angle),
                                                           RotationConvention.VECTOR_OPERATOR).applyTo(Vector3D.PLUS_K),
-                                             Vector3D.PLUS_I, FastMath.toRadians(fov / 2), dimension);
+                                             Vector3D.PLUS_I, FastMath.toRadians(FOV / 2), DIMENSION);
 
-        losBuilder.addTransform(new FixedRotation(sensorName + "_roll",  Vector3D.MINUS_I, 0.00));
-        losBuilder.addTransform(new FixedRotation(sensorName + "_pitch", Vector3D.MINUS_J, 0.00));
+        losBuilder.addTransform(new FixedRotation(sensorName + Refining.getRollsuffix(),  Vector3D.MINUS_I, 0.00));
+        losBuilder.addTransform(new FixedRotation(sensorName + Refining.getPitchsuffix(), Vector3D.MINUS_J, 0.00));
 
         // factor is a common parameters shared between all Pleiades models
-        losBuilder.addTransform(new FixedZHomothety("factor", 1.0));
+        losBuilder.addTransform(new FixedZHomothety(Refining.getFactorname(), 1.0));
 
         return losBuilder.build();
     }
@@ -142,7 +143,7 @@ public class PleiadesViewingModel {
    /** TODO GP add comments
     */
    public  AbsoluteDate  getMaxDate() throws RuggedException {
-        return lineSensor.getDate(dimension);
+        return lineSensor.getDate(DIMENSION);
     }
 
    /** TODO GP add comments
@@ -161,7 +162,7 @@ public class PleiadesViewingModel {
     * @return the number of lines of the sensor
     */
 public int getDimension() {
-        return dimension;
+        return DIMENSION;
     }
 
    /** TODO GP add comments
@@ -176,10 +177,10 @@ public int getDimension() {
         // TODO build complex los
         final TimeDependentLOS lineOfSight = buildLOS();
 
-        final double rate =  1 / linePeriod;
+        final double rate =  1. / LINE_PERIOD;
         // linear datation model: at reference time we get the middle line, and the rate is one line every 1.5ms
 
-        final LineDatation lineDatation = new LinearLineDatation(getDatationReference(), dimension / 2, rate);
+        final LineDatation lineDatation = new LinearLineDatation(getDatationReference(), DIMENSION / 2, rate);
 
         lineSensor = new LineSensor(sensorName, lineDatation, msiOffset, lineOfSight);
     }