diff --git a/res/stages/main-stage.fxml b/res/stages/main-stage.fxml
index 3032ca0a558254be1d26f016e731e4e711779725..21c1941b9e1627e260b3f2c5f765e0bc59535401 100644
--- a/res/stages/main-stage.fxml
+++ b/res/stages/main-stage.fxml
@@ -56,7 +56,7 @@
                         <children>
                            <Button fx:id="loadData" mnemonicParsing="false" onAction="#openLoadData" prefHeight="27.0" prefWidth="185.0" text="Charger un jeu de données" />
                            <Button fx:id="addData" mnemonicParsing="false" onAction="#openAddData" prefHeight="26.0" prefWidth="141.0" text="Ajouter une donnée" />
-                           <Button fx:id="classifyData" disable="true" mnemonicParsing="false" prefHeight="26.0" prefWidth="157.0" text="Classifier une donnée" />
+                           <Button fx:id="classifyData" disable="true" mnemonicParsing="false"  onAction="#classifyDatas" prefHeight="26.0" prefWidth="157.0" text="Classifier les données" />
                         </children>
                      </HBox>
                   </children>
diff --git a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
index fe5fd7ae02cfc429d7e948be64556317800e814e..94cbf5a3f2a7664ef3ca2fa8b650d512909ef4f6 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/AddDataController.java
@@ -56,6 +56,7 @@ public class AddDataController {
 
     public void validate() throws IOException {
         System.out.println("validé");
+        mainStageView.getController().getClassifyData().setDisable(false);
         ClassificationModel.getClassificationModel().ajouterDonnee(sepalLengthSpinner.getValue(), sepalWidthSpinner.getValue(), petalLengthSpinner.getValue(), petalWidthSpinner.getValue());
         stage.close();
     }
diff --git a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
index 21408450a73762a7f38a082592a4389dcae1da32..02e47544575b2899a8a4f3137ea98d591e74182e 100644
--- a/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
+++ b/src/main/java/fr/univlille/sae/classification/controller/MainStageController.java
@@ -81,6 +81,12 @@ public class MainStageController {
     }
 
 
+
+    public void classifyDatas() {
+        ClassificationModel.getClassificationModel().classifierDonnees();
+    }
+
+
     public ScatterChart getScatterChart() {
         return this.scatterChart;
     }
@@ -88,4 +94,8 @@ public class MainStageController {
     public void setAxesSelected(String texte) {
         this.AxesSelected.setText(texte);
     }
+
+    public Button getClassifyData() {
+        return this.classifyData;
+    }
 }
diff --git a/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java b/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
index b581562f7ead46a3650364f1d033b89e6cf4d98a..73799df432a25c04602d9e922d4367f738120ea6 100644
--- a/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
+++ b/src/main/java/fr/univlille/sae/classification/model/ClassificationModel.java
@@ -75,11 +75,16 @@ public class ClassificationModel extends Observable {
         notifyObservers();
     }
 
+
+    public void classifierDonnees() {
+        dataToClass.forEach(this::classifierDonnee);
+    }
+
     /**
      * TODO
      * @param data
      */
-    public void classifierDonnee(LoadableData data) {
+    private void classifierDonnee(LoadableData data) {
 
         List<String> classes = new ArrayList<>(data.getClassificationTypes());
         Random rdm = new Random();
diff --git a/src/main/java/fr/univlille/sae/classification/model/Iris.java b/src/main/java/fr/univlille/sae/classification/model/Iris.java
index 5f6d3a77d66e42c1553aaf749212d29fbe88eff9..38fee8aaec1cb3331041ed8a01370ac63f7a1482 100644
--- a/src/main/java/fr/univlille/sae/classification/model/Iris.java
+++ b/src/main/java/fr/univlille/sae/classification/model/Iris.java
@@ -26,6 +26,16 @@ public class Iris extends LoadableData{
         //
     }
 
+    @Override
+    public String getClassification() {
+        return variety;
+    }
+
+    @Override
+    public void setClassification(String classification) {
+        this.variety = classification;
+    }
+
     public Iris(double sepalWidth, double sepalLength, double petalWidth, double petalLength, String variety) {
         super();
         this.sepalWidth = sepalWidth;
@@ -51,9 +61,6 @@ public class Iris extends LoadableData{
         return petalLength;
     }
 
-                        public String getVariety() {
-        return variety;
-    }
 
     public double getDataType(String axes){
         switch (axes){
diff --git a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
index fba0fb716aefea3f9a0fb81e584f41671130891c..033890f3c275ee90712b4680729918fb665032ff 100644
--- a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
+++ b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
@@ -6,7 +6,8 @@ public abstract class LoadableData {
 
     private static Set<String> classificationTypes;
 
-    private String classification;
+
+
 
     protected LoadableData() {
 
@@ -16,9 +17,7 @@ public abstract class LoadableData {
         this.classificationTypes.add(classificationType);
     }
 
-    public String getClassification() {
-        return this.classification;
-    }
+    public abstract String getClassification() ;
 
     public static Set<String> getClassificationTypes() {
         return classificationTypes;
@@ -28,9 +27,7 @@ public abstract class LoadableData {
         LoadableData.classificationTypes = classificationTypes;
     }
 
-    public void setClassification(String classification) {
-        this.classification = classification;
-    }
+    public abstract void setClassification(String classification);
 
     public abstract String[] getAttributesName();
 
diff --git a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
index 5ab22875f6850e0dcd6366c19483383f86079554..f52b777a7d536b07d41032a0b6412eed913807fa 100644
--- a/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/AddDataView.java
@@ -42,6 +42,7 @@ public class AddDataView {
 
         controller.setMainStageView(mainStageView);
 
+
         if(model.getDatas().isEmpty()) {
             Alert alert = new Alert(Alert.AlertType.WARNING);
             alert.setTitle("Erreur");
diff --git a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
index fdf814f70f165f1fd8333b3e3eb61cdeaed9cc2c..177c991efb1313a5b41d2e674c154d111bcfe510 100644
--- a/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
+++ b/src/main/java/fr/univlille/sae/classification/view/MainStageView.java
@@ -128,4 +128,8 @@ public class MainStageView implements Observer {
         return actualY;
     }
 
+    public MainStageController getController() {
+        return controller;
+    }
+
 }