diff --git a/src/main/java/fr/pasteur/ida/zellige/command/Zellige.java b/src/main/java/fr/pasteur/ida/zellige/command/Zellige.java
index b0c2fdc5d6c945d72d49f587904f602179b86e40..4bb0426aca7cb5fea923e121521219d93c27e308 100644
--- a/src/main/java/fr/pasteur/ida/zellige/command/Zellige.java
+++ b/src/main/java/fr/pasteur/ida/zellige/command/Zellige.java
@@ -50,7 +50,7 @@ public class Zellige extends ContextCommand
                 .getPath( "" )
                 .toAbsolutePath()
                 .toString();
-        String imageFilePath = "doc/Mouche.tif";
+        String imageFilePath = "doc/Scan1_volume_crop.tif";
 
         // Launch ImageJ.
         ImageJ ij = new ImageJ();
diff --git a/src/main/java/fr/pasteur/ida/zellige/steps/selection/pretreatment/Pretreatment.java b/src/main/java/fr/pasteur/ida/zellige/steps/selection/pretreatment/Pretreatment.java
index 875bcfa28f6db53bcf1fd8b0ac7f8418d36eea2e..d803581738f93fe12bcbc9ce4ff8bfeee3cebdaa 100644
--- a/src/main/java/fr/pasteur/ida/zellige/steps/selection/pretreatment/Pretreatment.java
+++ b/src/main/java/fr/pasteur/ida/zellige/steps/selection/pretreatment/Pretreatment.java
@@ -77,7 +77,7 @@ public class Pretreatment< T extends RealType< T > & NativeType< T > >
         LOGGER.debug( "Starting process..." );
         try
         {
-            Img< T > temp = Binning.binning( input, getBin() ); // Binning op
+            Img< T > temp = Binning.run( input, getBin() ); // Binning op
             if (temp == null)
             {
                 throw new BinningFailedException();
@@ -151,7 +151,7 @@ public class Pretreatment< T extends RealType< T > & NativeType< T > >
         ImageJFunctions.show( kernel, "original" );
         double time1 = System.currentTimeMillis();
         int bin = 1;
-        Img< UnsignedByteType > output = Binning.binning( kernel,  bin );
+        Img< UnsignedByteType > output = Binning.run( kernel,  bin );
         double time2 = System.currentTimeMillis();
         LOGGER.debug( "Multithreading time  = {}s", ( time2 - time1 ) / 1000 );
         assert output != null;
diff --git a/src/main/java/fr/pasteur/ida/zellige/utils/test/ZParameters.java b/src/main/java/fr/pasteur/ida/zellige/utils/test/ZParameters.java
index b3eb2ad0563227b205bd62497e9cdb726b24c260..3a0d83a4b43de4369edea46e4f5feab13f47bb91 100644
--- a/src/main/java/fr/pasteur/ida/zellige/utils/test/ZParameters.java
+++ b/src/main/java/fr/pasteur/ida/zellige/utils/test/ZParameters.java
@@ -58,7 +58,7 @@ public class ZParameters
                         double startingThreshold2, int overlap2, double connexityRate2,
                         double surfaceMinSizeFactor, int delta ) throws DataValidationException
     {
-        pretreatmentParameters = new PretreatmentParameters( filter, filterParameter );
+        pretreatmentParameters = new PretreatmentParameters( filter, filterParameter, 2);
         classificationParameters = new ClassificationParameters( amplitudeThreshold, otsuThreshold );
         postTreatmentParameters = new PostTreatmentParameters( XYSmoothing, ZSmoothing, ISSize, ISConnexity );
 
@@ -97,7 +97,7 @@ public class ZParameters
     public void print()
     {
         LOGGER.debug( "method : " + pretreatmentParameters.getMethod() );
-        LOGGER.debug( "parameter : " + pretreatmentParameters.getParameter() );
+        LOGGER.debug( "parameter : " + pretreatmentParameters.getRadius() );
         LOGGER.debug( "amplitude  : " + classificationParameters.getAmplitudeThreshold() );
         LOGGER.debug( "threshold  : " + classificationParameters.getOtsuThreshold() );
         LOGGER.debug( "connexity : " + postTreatmentParameters.getConnexity() );
diff --git a/src/test/java/fr/pasteur/ida/zellige/behavior/StartingOSESameSurfaceTest.java b/src/test/java/fr/pasteur/ida/zellige/behavior/StartingOSESameSurfaceTest.java
index 72553f2cf12f7363e5d7bc6499fd75dbe00cae9b..8ec2228443fab09c0535e87d5cb67cf703a75674 100644
--- a/src/test/java/fr/pasteur/ida/zellige/behavior/StartingOSESameSurfaceTest.java
+++ b/src/test/java/fr/pasteur/ida/zellige/behavior/StartingOSESameSurfaceTest.java
@@ -74,7 +74,7 @@ public class StartingOSESameSurfaceTest
         double startingSizeThreshold = 0.9;
         int overlap = 10;
         double connexity = 0.5;
-        PretreatmentParameters pretreatmentParameters = new PretreatmentParameters( "GaussianBlur", 2 );
+        PretreatmentParameters pretreatmentParameters = new PretreatmentParameters( "GaussianBlur", 2,1 );
         ClassificationParameters classificationParameters = new ClassificationParameters( amplitude, otsu );
         PostTreatmentParameters postTreatmentParameters = new PostTreatmentParameters( sigmaXY, sigmaZ, 5, 8 );
 
@@ -83,7 +83,7 @@ public class StartingOSESameSurfaceTest
         @SuppressWarnings( "unchecked" )
         final Img< T > source = ( Img< T > ) imgPlus.getImg();
 
-        Pixels[][] maximums = Selection.run( source, pretreatmentParameters, classificationParameters, postTreatmentParameters );
+        Pixels[][] maximums = Selection.run( source, source.factory(), pretreatmentParameters, classificationParameters, postTreatmentParameters );
         OSEListArray oseLists = OseConstructionXZ.run( maximums, startingSizeThreshold );
         int width = maximums[ 0 ].length;
 
diff --git a/src/test/java/fr/pasteur/ida/zellige/parameters/PretreatmentParametersTest.java b/src/test/java/fr/pasteur/ida/zellige/parameters/PretreatmentParametersTest.java
index 843e968ac7eb2918239c126be724479dac2a0f91..8b78c35745dff8544769ab98306b8e546090c0d2 100644
--- a/src/test/java/fr/pasteur/ida/zellige/parameters/PretreatmentParametersTest.java
+++ b/src/test/java/fr/pasteur/ida/zellige/parameters/PretreatmentParametersTest.java
@@ -50,7 +50,7 @@ public class PretreatmentParametersTest
     @CsvSource( { GAUSSIAN_BLUR + ", 1" } )
     void rightMethodWithRightParameterValue_whenChecked_doesntRaiseAnyException( String method, double value )
     {
-        assertDoesNotThrow( () -> new PretreatmentParameters( method, value ) );
+        assertDoesNotThrow( () -> new PretreatmentParameters( method, value,1 ) );
     }
 
     @DisplayName( "A wrong method should raise DataValidationException for any method" )
@@ -58,7 +58,7 @@ public class PretreatmentParametersTest
     void wrongDenoisingMethod_whenChecked_RaisesADataValidationException()
     {
         DataValidationException exception = assertThrows( DataValidationException.class, () ->
-                new PretreatmentParameters( "Wrong method", 15 ) );
+                new PretreatmentParameters( "Wrong method", 15, 1) );
         assertThat( exception ).hasMessageContaining( NOT_IMPLEMENTED );
     }
 
@@ -68,7 +68,7 @@ public class PretreatmentParametersTest
     void gaussianBlurMethodWithLessThanThreeParameter_whenChecked_RaisesAnException( String method )
     {
         double value = - 1;
-        DataValidationException exception = assertThrows( DataValidationException.class, () -> new PretreatmentParameters( method, value ) );
+        DataValidationException exception = assertThrows( DataValidationException.class, () -> new PretreatmentParameters( method, value, 1) );
         assertThat( exception ).hasMessageContaining( "parameter value" );
     }
 
@@ -77,7 +77,7 @@ public class PretreatmentParametersTest
     void parameterValueSuperiorTo10_whenChecked_RaisesADataValidationException()
     {
         DataValidationException exception = assertThrows( DataValidationException.class, () ->
-                new PretreatmentParameters( GAUSSIAN_BLUR, 15 ) );
+                new PretreatmentParameters( GAUSSIAN_BLUR, 15, 1) );
         assertThat( exception ).hasMessageContaining( "parameter value" );
     }