diff --git a/app/src/main/java/model/Cell.java b/app/src/main/java/model/Cell.java
index 90221fb95e0e48804309cb0eb2bd4e2a4519c978..540b4ee06356eabc27476a769cc54f29c7863901 100644
--- a/app/src/main/java/model/Cell.java
+++ b/app/src/main/java/model/Cell.java
@@ -1,5 +1,4 @@
 package model;
-
 import javafx.beans.property.Property;
 import javafx.scene.paint.Color;
 
diff --git a/app/src/main/java/model/ColorCellIterator.java b/app/src/main/java/model/ColorCellIterator.java
deleted file mode 100644
index eba45e44ee2b3e6d61deceb087fa69bbbca252b4..0000000000000000000000000000000000000000
--- a/app/src/main/java/model/ColorCellIterator.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package model;
-import java.awt.*;
-import java.util.Iterator;
-import java.util.Set ;
-
-public class ColorCellIterator implements Iterator<Cell> {
-
-    Color color ;      // qui correspond à la couleur de la cellule de départ
-    Set<Cell> visitedCells ;     //pour stocker l’ensemble des cellules sur lesquelles on a déjà itéré
-    Set<Cell> pendingCells ;    //à la cellule de départ et qui n’ont pas encore été parcourues
-
-    
-    //Constructeur de la classe
-    public void ColoredCellIterator(Cell startCell) {             //startCell : cellule à partir de laquelle on souhaite démarrer l’itération
-        this.pendingCells.add(startCell) ;
-    }
-
-    @Override
-    public boolean hasNext() {
-        return false;
-    }
-
-    @Override
-    public Cell next() {
-        return null;
-    }
-
-    public Set<Cell> getNeighbours() {
-        while (this.pendingCells.iterator().hasNext()) {
-            Cell pendingCell = this.pendingCells.iterator().next();
-            if (pendingCell.iterator().hasNext().getColor() == pendingCells.getColor()) {
-                this.pendingCells.add(pendingCell);
-            }
-            this.visitedCells.add(pendingCell);
-
-            if (this.pendingCells.iterator().hasNext()) {
-                pendingCell =  this.pendingCells.iterator().next();
-            }
-            else return this.visitedCells;
-        }
-
-    }
-
-}
diff --git a/app/src/main/java/model/ColoredCellIterator.java b/app/src/main/java/model/ColoredCellIterator.java
new file mode 100644
index 0000000000000000000000000000000000000000..fa10ca04d5f6fa7beddb53ca7ee6adc0be297222
--- /dev/null
+++ b/app/src/main/java/model/ColoredCellIterator.java
@@ -0,0 +1,74 @@
+package model;
+import javafx.beans.property.Property;
+import java.awt.*;
+import java.util.Iterator;
+import java.util.Set ;
+
+//Iterator<Cell> implemente un tableau de cellule
+public class ColoredCellIterator<Cell> implements Iterator<Cell> {
+
+    Color color ;      // qui correspond à la couleur de la cellule de départ
+    Set<Cell> visitedCells ;     //pour stocker l’ensemble des cellules sur lesquelles on a déjà itéré
+    Set<Cell> pendingCells ;    //à la cellule de départ et qui n’ont pas encore été parcourues
+
+    
+    //Constructeur de la classe
+    public void ColoredCellIterator(Cell startCell) {             //startCell : cellule à partir de laquelle on souhaite démarrer l’itération
+        this.pendingCells.add(startCell) ;
+        this.visitedCells.add(startCell) ;
+    }
+
+    //Méthode implémentée
+    Color getColor() {
+        return null;
+    }
+
+    //Méthode implémentée
+    void setNeighbours(Set<Cell> cells) {}
+
+    //Méthode implémentée
+    public Property<Color> getColorProperty() {
+        return null ;
+    } ;
+
+    //Demandée par l'exercice
+    Iterator<Cell> iterator() {
+        return null;
+    } ;
+
+    //Méthode implémentée
+    public boolean hasNext() {
+        return false;
+    }
+
+    //Méthode implémentée
+    public Cell next() {
+        return null;
+    }
+//Set est une collection - pas d'element identique
+    //List c est une liste - avec des element identique
+
+    public Set<Cell> getNeighbours() {
+        while (this.pendingCells.iterator().hasNext()) {
+            //ColorCellIterator pendingCells = new ColorCellIterator() ;
+            ColoredCellIterator pendingCellsNext = (ColoredCellIterator) this.pendingCells.iterator().next();
+
+            while (pendingCellsNext.iterator().hasNext()) {
+                if (pendingCellsNext.iterator() == this.pendingCells.iterator()) {
+                    this.pendingCells.add((Cell) pendingCellsNext);
+                }
+                //this.visitedCells.add((Cell) pendingCells);
+            }
+
+            /*if (this.pendingCells.iterator().hasNext()) {
+                pendingCells = (ColoredCellIterator) this.pendingCells.iterator().next();
+            }
+            else return this.visitedCells;
+
+             */
+        }
+
+        return null;
+    }
+
+}
diff --git a/app/src/main/java/model/GrayCell.java b/app/src/main/java/model/GrayCell.java
index 8007887ea0a9ca53b4ec9b5bf8d7a894c9711ac3..afd2c1af5dfd5fd0041e7f09a84400776472f88f 100644
--- a/app/src/main/java/model/GrayCell.java
+++ b/app/src/main/java/model/GrayCell.java
@@ -3,6 +3,7 @@ package model;
 import javafx.beans.property.Property;
 import javafx.scene.paint.Color;
 
+import java.util.Iterator;
 import java.util.List;
 
 public class GrayCell extends AbstractCell{
@@ -30,6 +31,11 @@ public class GrayCell extends AbstractCell{
 
     }
 
+    @Override
+    public Iterator<Cell> iterator() {
+        return null;
+    }
+
     @Override
     public void setColor(Color color){