diff --git a/app/src/main/java/model/ColoredCellIerator.java b/app/src/main/java/model/ColoredCellIerator.java
deleted file mode 100644
index 43dfb40cbb232e6391f45c9574efaa763b09317f..0000000000000000000000000000000000000000
--- a/app/src/main/java/model/ColoredCellIerator.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package model;
-
-
-
-import javafx.scene.paint.Color;
-import util.SetUtil;
-
-import java.util.*;
-
-public class ColoredCellIerator {/*implements Iterator<Cell> {
-
-    Color color;
-    List<Cell> cells;
-    Set<Cell> visitedCells;
-    Set<Cell> pendingCells=new HashSet<Cell>();
-
-
-    public ColoredCellIerator(Cell startCell){
-        this.color=startCell.getColor();
-        this.visitedCells= new HashSet<Cell>();
-        this.pendingCells.add(startCell);
-
-    }
-    @Override
-    public boolean hasNext() {
-        if (this.pendingCells.size()==0) return false;
-        return true;
-    }
-
-    @Override
-    public Cell next() {
-        for( int i=0; i< this.pendingCells.size();i++){
-            if (SetUtil.anyElement(this.pendingCells)!= SetUtil.anyElement(this.visitedCells)&&(SetUtil.anyElement(this.pendingCells).getColor()==this.color){
-                //this.visitedCells.add(SetUtil.anyElement())
-            }
-        }
-
-
-
-        return null;
-    }*/
-}
diff --git a/app/src/main/java/model/ColoredCellIterator.java b/app/src/main/java/model/ColoredCellIterator.java
new file mode 100644
index 0000000000000000000000000000000000000000..010e0c7fc3cde1dd336c1c3ec1b4e6e3227255cb
--- /dev/null
+++ b/app/src/main/java/model/ColoredCellIterator.java
@@ -0,0 +1,46 @@
+package model;
+
+
+
+import javafx.scene.paint.Color;
+import util.SetUtil;
+
+import java.util.*;
+
+public class ColoredCellIterator implements Iterator<Cell> {
+
+    private final Color color;
+    Set<Cell> visitedCells;
+    Set<Cell> pendingCells=new HashSet<Cell>();
+
+
+    public ColoredCellIterator(Cell startCell){
+        this.color=startCell.getColor();
+        this.visitedCells= new HashSet<Cell>();
+        pendingCells.add(startCell);
+    }
+
+    @Override
+    public boolean hasNext() {
+
+        return !pendingCells.isEmpty();
+    }
+
+    @Override
+    public Cell next() {
+
+        Cell pendingElement=SetUtil.anyElement(pendingCells);
+
+        for(Cell cell: pendingElement.getNeighbours()){
+            if( cell.getColor()==this.color&& !(visitedCells.contains(pendingElement)))
+                pendingCells.add(cell);
+        }
+
+        visitedCells.add(pendingElement);
+        pendingCells.remove(pendingElement);
+        return pendingElement;
+
+
+
+    }
+}
diff --git a/app/src/main/java/model/DistinctColorGenerator.java b/app/src/main/java/model/DistinctColorGenerator.java
index 3a70a733ef686913ac6eb5250c367bfcd76d770e..a9a72ef8e3997eb45a461e023fbfca053821d11d 100644
--- a/app/src/main/java/model/DistinctColorGenerator.java
+++ b/app/src/main/java/model/DistinctColorGenerator.java
@@ -17,7 +17,7 @@ public class DistinctColorGenerator implements ColorGenerator {
 
         List<Cell> neighbors = new ArrayList<>();
 
-        System.out.println(neighbors.size());
+        //System.out.println(neighbors.size());
 
         List<Color> neighbor_colors = new ArrayList<Color>();
 
diff --git a/app/src/test/java/model/DistinctColorGeneratorTest.java b/app/src/test/java/model/DistinctColorGeneratorTest.java
index fde697131bcbcbae8f428f96be803a9996930f74..deb5461239148d7165d74419a301638c15cb8d9b 100644
--- a/app/src/test/java/model/DistinctColorGeneratorTest.java
+++ b/app/src/test/java/model/DistinctColorGeneratorTest.java
@@ -19,7 +19,7 @@ class DistinctColorGeneratorTest {
 
     @Test
     void testNextColorWithTooFewAvailableColor() {
-        DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator(Color.RED, List.of(Color.RED));
+        DistinctColorGenerator colorGeneratorOne = new DistinctColorGenerator( List.of(Color.RED),Color.RED);
         grid.color(colorGeneratorOne);
         assertThat(grid.getCell(0,0).getColor()).isEqualTo(Color.RED);
         assertThat(grid.getCell(1,1).getColor()).isEqualTo(Color.RED);
@@ -29,7 +29,7 @@ class DistinctColorGeneratorTest {
     @Test
     void testNextColorWithEnoughAvailableColor(){
         Color defaultColor = Color.BLACK;
-        DistinctColorGenerator colorGenerator = new DistinctColorGenerator(defaultColor, List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE));
+        DistinctColorGenerator colorGenerator = new DistinctColorGenerator( List.of(Color.RED,Color.BLUE,Color.YELLOW, Color.ORANGE),defaultColor);
         grid.color(colorGenerator);
         for(Cell cell: grid){
             assertThat(cell.getNeighbours().stream().map(c-> c.getColor())).doesNotContain(cell.getColor());