diff --git a/cli.cpp b/cli.cpp
index 0b7d52e86d3fc71589ee6dfba61ba950142ee684..2d959ce717e31f477a4114304faee6ddd4a5897d 100644
--- a/cli.cpp
+++ b/cli.cpp
@@ -289,7 +289,7 @@ void Cli::loop (Stream& input)
         else if (kw(F("MOV")))          //*******************MOUVEMENT*******************//
         {
             check_emergency();
-            syringe_filled.exchange();
+            syringe_filled.move();
             answer(true);
         }
         else if (kw(F("STP")))
diff --git a/common.h b/common.h
index 6dcfafaa4d7202de9a78c776eab1bc9be9d46fa8..9ef4172542d721def79e6b6447a2d2d6e4c79237 100644
--- a/common.h
+++ b/common.h
@@ -3,7 +3,8 @@
 
 #include <Arduino.h>
 
-#include "AccelStepper.h"
+
+//#include "AccelStepper.h"
 
 #define MSGHEADER "#CLI: "
 
diff --git a/syringefilled.cpp b/syringefilled.cpp
index 81ada214008a8f28d84fa0cdeaed1ce9acf63521..146093d784654af60a3c336fbef29ec7a4bc1161 100644
--- a/syringefilled.cpp
+++ b/syringefilled.cpp
@@ -146,7 +146,17 @@ float SyringeFilled::distance_to_volume(float distance_mm)
 
 //MOVEMENTS
 
-void SyringeFilled :: exchange()
+bool SyringeFilled :: is_running ()  //return true if the motor is currently running
+/***
+-Argument : /
+-Return   : A boolean to indicates if the motor is running.
+-Action   : /
+***/
+{
+    return motor_is_running();
+}
+
+void SyringeFilled :: move()
 /***
 -Argument : / (We're using informations stored in the class itself)
 -Return   : /
@@ -194,26 +204,15 @@ void SyringeFilled :: go_to_zero()
 ***/
 {
 
-    Serial.printf("ok1"); 
     if (get_emergency())
     {
-
-    Serial.printf("ok2"); 
         return;
     }
     else
     {
-
-    Serial.printf("ok3"); 
     set_speed_mm_per_sec(-1);
-
-    Serial.printf("ok4"); 
     reset_position();
-
-    Serial.printf("ok5"); 
     move_to_mm(-200);
-
-    Serial.printf("ok6"); 
     }
 
 }
@@ -245,7 +244,7 @@ void SyringeFilled::manage_emergency (bool pressed, bool at_zero)
     {
         set_emergency(false);
         Serial.printf("EMERGENCY: released\n");
-        stay_here();
+        stop();
         reset_position();  //zero is here again
         Serial.printf("ZERO: reset\n");
     }
diff --git a/syringefilled.h b/syringefilled.h
index ca76197f5a3edc5fdb56167c33a883be6e91bf62..42ad4dc06d629e99c0428c9fb936d3b01d742643 100644
--- a/syringefilled.h
+++ b/syringefilled.h
@@ -80,7 +80,8 @@ class SyringeFilled : public Motor
     float distance_to_volume(float distance_mm); //CLI
 
     //MOVEMENTS
-    void exchange();
+    bool is_running ();
+    void move();
     void go_to_zero(); //CLI
 
     //LIMIT SWITCH
diff --git a/web.cpp b/web.cpp
index 28a1ad20ac4a5094f4739a9d9c55b763a1608604..595c263fab3ae344241286384af117ea37e53dfb 100644
--- a/web.cpp
+++ b/web.cpp
@@ -29,47 +29,58 @@ void web_setup ()
 
 
 
-    //Création des différents onglets
+    //Create tabs
     uint16_t tab1 = ESPUI.addControl(ControlType::Tab, "Configurations", "Configurations");
     uint16_t tab3 = ESPUI.addControl(ControlType::Tab, "Nouvelle Seringue", "Nouvelle seringue");
-    uint16_t tab4 = ESPUI.addControl(ControlType::Tab, "Paramètres avancés", "Paramètres avancés");
-    uint16_t tab5 = ESPUI.addControl(Tab, "", "Styled controls");
+    uint16_t tab4 = ESPUI.addControl(ControlType::Tab, "Caracteristiques du pousse-seringue", "Caracteristiques du pousse-seringue");
 
-    //Au dessus des tables
+
+    //***Above all***//
     
-    status_syringe_pump = ESPUI.label("Etat du pousse-seringue 1 :", ControlColor::None, "A l'arrêt");
-    //Mettre en route le pousse-seringue
-    activation = ESPUI.addControl(ControlType::Switcher, "Mise en marche", "Arrêt", ControlColor::None, status_syringe_pump, on_off_callback, (void*)19);
+    //***Syringe-pump***//
+    status_syringe_pump = ESPUI.label("Etat du pousse-seringue :", ControlColor::None, "A l'arrêt");
+
+    activation_syringe_pump = ESPUI.addControl(ControlType::Switcher, "Mise en marche", "Arrêt", ControlColor::None, status_syringe_pump, on_off_callback, (void*)19);
+
     //Style
-    ESPUI.setPanelStyle(status_syringe_pump, couleurs[2]);
-    ESPUI.setElementStyle(status_syringe_pump, couleurs[3]);
+    style (status_syringe_pump, 2);
+    style (activation_syringe_pump, 2);
+
+    //***Syringe-filled***//
+    status_syringe_filled = ESPUI.label("Etat de la seringue :", ControlColor::None, "Pas en place");
+
+    syringe_filled_placement = ESPUI.addControl(ControlType::Switcher, "Mise en marche", "Arrêt", ControlColor::None, status_syringe_filled, syringe_filled_placement_callback, (void*)19);
+
+    
+    //Style
+    style (status_syringe_filled, 2);
+    style (syringe_filled_placement, 2);
+
+
+    //***Initialisation***//
+    initialisation = ESPUI.button("Initialisation", initialisation_callback, ControlColor::None, "");
+    //ESPUI.updateVisibility(initialisation, false);
 
-    //Seringue en place
-    status_syringe_filled = ESPUI.label("Etat du pousse-seringue 1 :", ControlColor::None, "A l'arrêt");
-    //Mettre en route le pousse-seringue
-    activation = ESPUI.addControl(ControlType::Switcher, "Mise en marche", "Arrêt", ControlColor::None, status_syringe_filled, on_off_callback, (void*)19);
     //Style
-    ESPUI.setPanelStyle(status_syringe_filled, couleurs[2]);
-    ESPUI.setElementStyle(status_syringe_filled, couleurs[3]);
+    style (initialisation, 2);
 
 
 
     //Deplacement demandé du pousse-seringue
-    uint16_t main_number = ESPUI.number("Positions finale et possitionnement du pousse-seringue", position_choice, ControlColor::None, 0, 0, 50);
-    ESPUI.addControl(Min, "", "0", None, main_number);
-    ESPUI.addControl(Max, "", "50", None, main_number);
-    //Visualisation de l'avancement
-    slider = ESPUI.addControl(ControlType::Slider, "Distance", "0", ControlColor::None, main_number, slider_callback);
+    position_choice = ESPUI.number("Choix du volume à echanger", position_choice_callback, ControlColor::None, 0, 0, 50, (void*)19);
+
+    label_position_choice = ESPUI.addControl(ControlType::Label, "Distance", "0", ControlColor::None, position_choice, status_position_choice_callback, (void*)19);
+    ESPUI.addControl(ControlType::Slider, "Distance", "0", ControlColor::None, position_choice, progress_move_callback, (void*)19);
+
+    ESPUI.sliderContinuous = true;
 
 
     //Style
-    ESPUI.setPanelStyle(main_number, couleurs[4]);
-    ESPUI.setElementStyle(main_number, couleurs[5]);
+    style (position_choice, 3);
+    style (label_position_choice, 3);
+
 
 
-    zero = ESPUI.button("Initialisation", go_to_zero , ControlColor::None, "Allez en butée");
-    ESPUI.setPanelStyle(zero, couleurs[4]);
-    ESPUI.setElementStyle(zero, couleurs[5]);
 
 
 
@@ -82,13 +93,11 @@ void web_setup ()
     ESPUI.addControl(ControlType::Option, "Seringue A", "Opt1", ControlColor::None, select1);
     ESPUI.addControl(ControlType::Option, "Seringue B", "Opt2", ControlColor::None, select1);
     ESPUI.addControl(ControlType::Option, "Seringue C", "Opt3", ControlColor::None, select1);
-    ESPUI.setPanelStyle(select1, couleurs[4]);
-    ESPUI.setElementStyle(select1, couleurs[5]);
+    style (select1, 3);
 
 
     uint16_t carac1 = ESPUI.addControl( ControlType::Label, "Caractéristiques de la seringue 1 : ",  "D = 4mm, V = 10µL", ControlColor::None, tab1);
-    ESPUI.setPanelStyle(carac1, couleurs[4]);
-    ESPUI.setElementStyle(carac1, couleurs[5]);
+    style (carac1, 3);
 
     //TAB2 : Mise en marche
 
@@ -110,16 +119,6 @@ void web_setup ()
     ESPUI.addControl(ControlType::Switcher, "Sens de rotation du moteur", "Horaire", ControlColor::None, tab4, other_switch_callback);
     
 
-    //TAB5 : Test de style
-
-
-
-    nv_button_ctrl = ESPUI.addControl(ControlType::Button, "Nouveau button", "Let magic happen", ControlColor::None, tab5, nv_button_ctrl_callback);
-    ESPUI.setPanelStyle(nv_button_ctrl, couleurs[0]);
-    ESPUI.setElementStyle(nv_button_ctrl, couleurs[1]);
-
-    nv_button = ESPUI.addControl(ControlType::Button, "Abra", "Cadabra", ControlColor::None, tab5, nv_button_callback);
-    
 
 
     //Lancement
@@ -143,100 +142,6 @@ void text_callback(Control* sender, int type)
     Serial.println(sender->value);
 }
 
-void slider_callback(Control* sender, int type)
-{
-    Serial.print("Slider: ID: ");
-    Serial.print(sender->id);
-    Serial.print(", Value: ");
-    Serial.println(sender->value);
-    // Like all Control Values in ESPUI slider values are Strings. To use them as int simply do this:
-    int sliderValueWithOffset = sender->value.toInt() + 100;
-    Serial.print("SliderValue with offset");
-    Serial.println(sliderValueWithOffset);
-}
-
-void button_status_callback1(Control* sender, int type, void* param)
-{
-    Serial.println(String("param: ") + String(long(param)));
-    switch (type)
-    {
-    case B_DOWN:
-        Serial.println("Status: Start");
-        ESPUI.print(status_syringe_pump, "En marche");
-        break;
-
-    case B_UP:
-        Serial.println("Status: Stop");
-        ESPUI.print(status_syringe_pump, "A l'arrêt");
-        break;
-    }
-}
-
-
-
-void button_callback(Control* sender, int type)
-{
-    switch (type)
-    {
-    case B_DOWN:
-        Serial.println("Button DOWN");
-        break;
-
-    case B_UP:
-        Serial.println("Button UP");
-        break;
-    }
-}
-
-void pad_callback(Control* sender, int value)
-{
-    switch (value)
-    {
-    case P_LEFT_DOWN:
-        Serial.print("left down");
-        break;
-
-    case P_LEFT_UP:
-        Serial.print("left up");
-        break;
-
-    case P_RIGHT_DOWN:
-        Serial.print("right down");
-        break;
-
-    case P_RIGHT_UP:
-        Serial.print("right up");
-        break;
-
-    case P_FOR_DOWN:
-        Serial.print("for down");
-        break;
-
-    case P_FOR_UP:
-        Serial.print("for up");
-        break;
-
-    case P_BACK_DOWN:
-        Serial.print("back down");
-        break;
-
-    case P_BACK_UP:
-        Serial.print("back up");
-        break;
-
-    case P_CENTER_DOWN:
-        Serial.print("center down");
-        break;
-
-    case P_CENTER_UP:
-        Serial.print("center up");
-        break;
-    }
-
-    Serial.print(" ");
-    Serial.println(sender->id);
-}
-
 
 
 void select_callback(Control* sender, int value)
@@ -279,36 +184,6 @@ void button_seringue(Control* sender, int type)
     }
 }
 
-//Most elements in this test UI are assigned this generic callback which prints some
-//basic information. Event types are defined in ESPUI.h
-void general_callback(Control *sender, int type) {
-	Serial.print("CB: id(");
-	Serial.print(sender->id);
-	Serial.print(") Type(");
-	Serial.print(type);
-	Serial.print(") '");
-	Serial.print(sender->label);
-	Serial.print("' = ");
-	Serial.println(sender->value);
-}
-
-void nv_button_ctrl_callback(Control *sender, int type) {
-    
-
-    if(type == B_UP) {
-        
-        test = !test;
-        ESPUI.updateVisibility(nv_button, test);
-        
-	}
-}
-
-void nv_button_callback(Control *sender, int type) {
-	if(type == B_DOWN) {
-        ESPUI.setPanelStyle(nv_button, couleurs[2]);
-        ESPUI.setElementStyle(nv_button, couleurs[3]);
-	}
-}
 
 
 
@@ -326,16 +201,16 @@ void on_off_callback (Control* sender, int value, void* param)
     case S_ACTIVE:
         Serial.print("Active:");
         ESPUI.print(status_syringe_pump, "En marche");
-        ESPUI.setPanelStyle(status_syringe_pump, couleurs[0]);
-        ESPUI.setElementStyle(status_syringe_pump, couleurs[1]);
-        syringe_filled.exchange();
+        style (status_syringe_pump, 1);
+        style (activation_syringe_pump, 1);
+        syringe_filled.move();
         break;
 
     case S_INACTIVE:
         Serial.print("Inactive");
         ESPUI.print(status_syringe_pump, "A l'arrêt");
-        ESPUI.setPanelStyle(status_syringe_pump, couleurs[2]);
-        ESPUI.setElementStyle(status_syringe_pump, couleurs[3]);
+        style (status_syringe_pump, 2);
+        style (activation_syringe_pump, 2);
         syringe_filled.stop();
         break;
     }
@@ -348,50 +223,126 @@ void on_off()
 {
     if (syringe_filled.is_running())
     {
-      ESPUI.updateControlValue(activation, "1");
+      ESPUI.updateControlValue(activation_syringe_pump, "1");
     }
 
-    ESPUI.updateControlValue(activation, "0");
+    ESPUI.updateControlValue(activation_syringe_pump, "0");
 
 }
 
-void go_to_zero (Control *sender, int type) {
+void initialisation_callback (Control *sender, int type) {
 
-    if(type == B_UP) {
-        syringe_filled.show_configuration();
+    if((type == B_UP)) {
         Serial.printf("Go to zero"); 
         syringe_filled.go_to_zero();
+        ESPUI.updateSwitcher(activation_syringe_pump, true);
         ESPUI.print(status_syringe_pump, "En marche");
-        ESPUI.setPanelStyle(status_syringe_pump, couleurs[0]);
-        ESPUI.setElementStyle(status_syringe_pump, couleurs[1]);
+        style (status_syringe_pump, 1);
+
+
+    }
+
+}
+
+void syringe_filled_placement_callback (Control* sender, int value, void* param)
+{
+
+    Serial.println(String("param: ") + String(long(param)));
+    switch (value)
+    {
+    case S_ACTIVE:
+        Serial.print("Active:");
+        ESPUI.print(status_syringe_filled, "En place");
+        //Style
 
+        style (status_syringe_filled, 1);
+        style (syringe_filled_placement, 1);
+        //Action
+        ESPUI.updateVisibility(initialisation, false);
 
+        ESPUI.updateSwitcher(activation_syringe_pump, true);
+
+        style (status_syringe_pump, 1);
+        style (activation_syringe_pump, 1);
+        syringe_filled.move();
+        break;
+
+    case S_INACTIVE:
+        Serial.print("Inactive");
+        ESPUI.print(status_syringe_filled, "Enlevé");
+        //Style
+        style (status_syringe_filled, 2);
+        style (syringe_filled_placement, 2);
+        //Action
+        ESPUI.updateVisibility(initialisation, true);
+        break;
     }
 
+    Serial.print(" ");
+    Serial.println(sender->id);
 }
 
-void position_choice (Control *sender, int type) {
 
+void position_choice_callback (Control* sender, int value, void* param)
+{
     Serial.printf("val=%s\n", sender->value.c_str()); 
     syringe_filled.set_exchange_volume_mL(atof(sender->value.c_str()));
 
 }
 
+void progress_move_callback (Control* sender, int value, void* param)
+{
+
+}
+
+void status_position_choice_callback (Control* sender, int value, void* param)
+{
+
+}
+
 
 
+
+
+void style (uint16_t id, int style)
+//Change style (1 is active, green; 2 is inactive, red; 3 is neutral, brown)
+{
+
+    switch (style)
+    {
+    case 1:
+        ESPUI.setPanelStyle(id, couleurs[0]);
+        ESPUI.setElementStyle(id, couleurs[1]);
+        break;
+
+    case 2:
+        ESPUI.setPanelStyle(id, couleurs[2]);
+        ESPUI.setElementStyle(id, couleurs[3]);
+        break;
+
+    case 3:
+        ESPUI.setPanelStyle(id, couleurs[4]);
+        ESPUI.setElementStyle(id, couleurs[5]);
+        break;
+
+    }
+
+}
+
 void web_loop ()
 {
-    on_off();
+    
   //bool switchi = syringe.isRunning();
   //bool a = syringe.isRunning();
-	//if(millis() > last_time + 500) {
+	if(millis() > last_time + 500) {
     //ESPUI.updateSlider(slider, syringe.currentPosition()*100/lengthSyringePump);
-		//lastTime = millis();
+		last_time = millis();
+        //on_off();
     //if (syringe.isRunning())
-      //ESPUI.updateControlValue(activation, "1");
+      //ESPUI.updateControlValue(activation_syringe_pump, "1");
     //else
-      //ESPUI.updateControlValue(activation, "0");
+      //ESPUI.updateControlValue(activation_syringe_pump, "0");
 
-	//}
+	}
 
 }
diff --git a/web.h b/web.h
index 01fe67e7ea3afc255226ffb4c9c02bb626ad8018..56d6d80c99ec4ecb82999dff7a1c2ef676156a23 100644
--- a/web.h
+++ b/web.h
@@ -17,22 +17,25 @@
 
 
 int status_syringe_pump, status_syringe_filled;
+
+uint16_t activation_syringe_pump, syringe_filled_placement, initialisation, position_choice, label_position_choice;
+
+
+
 int millis_label_id;
+
+
 int test_switch_id;
 
 uint16_t status;
 
-uint16_t activation;
+
 
 uint16_t etat_button_seringue;
 
-uint16_t button1, button2, button3, button4, button5, button6, button7, button8, button9, button10, button11, button12, button13, button14, button15, button16, button17, button18, button19, button20, button21, button22, button23, button24, button25, button26, button27, button28, button29, button30, button31, button32, button33, button34, button35, button36, button37, button38, button39, button40, button41, button42, button43, button44, button45, button46, button47, button48, button49, button50, button51, button52, button53, button54, button55, button56, button57, button58, button59, button60, button61, button62, button63, button64, button65, button66, button67, button68, button69, button70, button71, button72, button73, button74, button75, button76, button77, button78, button79, button80, button81, button82, button83, button84, button85, button86, button87, button88, button89, button90, button91, button92, button93, button94, button95, button96, button97, button98;
 
 uint16_t zero;
 
-uint16_t style_button, style_label, style_switcher, style_slider, style_button2, style_label2, style_slider2;
-
-uint16_t nv_button_ctrl, nv_button;
 
 uint16_t slider;
 
@@ -60,36 +63,35 @@ uint8_t mock_read_uart(void);
 
 void number_callback(Control* sender, int type);
 void text_callback(Control* sender, int type);
-void slider_callback(Control* sender, int type);
-void button_status_callback1(Control* sender, int type, void* param);
-void button_callback(Control* sender, int type);
-void switch_status_callback2(Control* sender, int value, void* param);
+
 void select_callback(Control* sender, int value);
 void other_switch_callback(Control* sender, int value);
 void button_seringue(Control* sender, int type);
-void general_callback(Control* sender, int type);
-void nv_button_ctrl_callback(Control* sender, int type);
-void nv_button_callback(Control* sender, int type);
-void position_choice(Control* sender, int type);
-void go_to_zero(Control* sender, int type);
 
 
 
+void syringe_filled_placement_callback (Control* sender, int value, void* param);
+
 
 
 //Methods that are really useful
 void on_off_callback(Control* sender, int value, void* param);
 
 
+void initialisation_callback(Control* sender, int type);
 
 
+void position_choice_callback (Control* sender, int value, void* param);
 
 
 
 
+void progress_move_callback (Control* sender, int value, void* param);
 
 
+void status_position_choice_callback (Control* sender, int value, void* param);
 
 
+void style (uint16_t id, int style);