diff --git a/app/src/main/java/model/CyclicColorGenerator.java b/app/src/main/java/model/CyclicColorGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..121ec58d3708f380b895b549d90e53a51223228d
--- /dev/null
+++ b/app/src/main/java/model/CyclicColorGenerator.java
@@ -0,0 +1,17 @@
+package model;
+import javafx.scene.paint.Color;
+import java.util.List;
+
+public class CyclicColorGenerator implements ColorGenerator {
+    public ArrayGrid grid;
+    List<Color> colors;
+
+    public CyclicColorGenerator(List<Color> colors) {
+        this.colors=colors;
+    }
+
+    @Override
+    public Color nextColor(Cell cell) {
+        return null;
+    }
+}
diff --git a/app/src/main/java/model/GrayGrid.java b/app/src/main/java/model/GrayGrid.java
index 42a49eb5d00a6dcdb562e4fac1fc1b1d20051394..b7b13916c2f43f8aec94b5e3d102d25abc6f1d7f 100644
--- a/app/src/main/java/model/GrayGrid.java
+++ b/app/src/main/java/model/GrayGrid.java
@@ -3,11 +3,11 @@ package model;
 public class GrayGrid implements Grid{
 
     private final int numberOfRows;
-    private final int numnberOfColumns;
+    private final int numberOfColumns;
 
     public GrayGrid(int numberOfRows, int numberOfColumns){
         this.numberOfRows = numberOfRows;
-        this.numnberOfColumns = numberOfColumns;
+        this.numberOfColumns = numberOfColumns;
     }
     /**
      * Return the cell located at the given coordinates in the grid.
@@ -38,11 +38,21 @@ public class GrayGrid implements Grid{
      */
     @Override
     public int getNumberOfColumns() {
-        return numnberOfColumns;
+        return numberOfColumns;
     }
 
     @Override
     public void color(ColorGenerator colorGenerator) {
 
     }
+
+    @Override
+    public boolean hasNext() {
+        return false;
+    }
+
+    @Override
+    public Cell next() {
+        return null;
+    }
 }
diff --git a/app/src/main/java/model/UniformExceptOneGenerator.java b/app/src/main/java/model/UniformExceptOneGenerator.java
new file mode 100644
index 0000000000000000000000000000000000000000..0320414c72721150d1dc83c2dc97f748fad57efa
--- /dev/null
+++ b/app/src/main/java/model/UniformExceptOneGenerator.java
@@ -0,0 +1,15 @@
+package model;
+
+import javafx.scene.paint.Color;
+
+public class UniformExceptOneGenerator implements ColorGenerator {
+    public UniformExceptOneGenerator(Color uniformColor, Color exceptionColor) {
+
+
+    }
+
+    @Override
+    public Color nextColor(Cell cell) {
+        return null;
+    }
+}
diff --git a/app/src/test/java/model/ColoredCellIteratorTest.java b/app/src/test/java/model/ColoredCellIteratorTest.java
index bd0bb10c50bfdb804b22080d2897b050f68b3987..c6d41c2dffc089791af9241f0401d9591397fb8b 100644
--- a/app/src/test/java/model/ColoredCellIteratorTest.java
+++ b/app/src/test/java/model/ColoredCellIteratorTest.java
@@ -1,59 +1,59 @@
-//package model;
-//
-//import javafx.scene.paint.Color;
-//import org.junit.jupiter.api.BeforeAll;
-//import org.junit.jupiter.api.Test;
-//
-//import java.util.ArrayList;
-//import java.util.List;
-//
-//import static org.assertj.core.api.Assertions.assertThat;
-//
-//class ColoredCellIteratorTest {
-//
-//
-//    /*
-//     * +---+---+---+
-//     * | R | B | R |
-//     * +---+---+---|
-//     * | R | R | B |
-//     * |---+---+---+
-//     * | B | B | R |
-//     * +---+---+---+
-//     */
-//
-//    private static ArrayGrid gridThreeThree = new ArrayGrid(3,3);
-//
-//    @BeforeAll
-//    private static void initializeColorsGrid(){
-//        gridThreeThree.getCell(0,0).setColor(Color.RED);
-//        gridThreeThree.getCell(0,1).setColor(Color.BLACK);
-//        gridThreeThree.getCell(0,2).setColor(Color.RED);
-//        gridThreeThree.getCell(1,0).setColor(Color.RED);
-//        gridThreeThree.getCell(1,1).setColor(Color.RED);
-//        gridThreeThree.getCell(1,2).setColor(Color.BLACK);
-//        gridThreeThree.getCell(2,0).setColor(Color.BLACK);
-//        gridThreeThree.getCell(2,1).setColor(Color.BLACK);
-//        gridThreeThree.getCell(2,2).setColor(Color.RED);
-//    }
-//
-//    @Test
-//    void testIterator() {
-//        ColoredCellIterator redCellIterator = new ColoredCellIterator(gridThreeThree.getCell(0,0));
-//        List<Cell> expectedRedCells = List.of(gridThreeThree.getCell(0,0),
-//                gridThreeThree.getCell(1,0),
-//                gridThreeThree.getCell(1,1));
-//        List<Cell> fromIteratorCells = new ArrayList<>();
-//        for(;redCellIterator.hasNext();) fromIteratorCells.add(redCellIterator.next());
-//        assertThat(fromIteratorCells).hasSameElementsAs(expectedRedCells).hasSameSizeAs(expectedRedCells);
-//
-//        ColoredCellIterator blackCellIterator = new ColoredCellIterator(gridThreeThree.getCell(2,1));
-//        List<Cell> expectedBlackCells = List.of(gridThreeThree.getCell(2,0),
-//                gridThreeThree.getCell(2,1));
-//        fromIteratorCells = new ArrayList<>();
-//        for( ; blackCellIterator.hasNext(); ) fromIteratorCells.add(blackCellIterator.next());
-//        assertThat(fromIteratorCells).hasSameElementsAs(expectedBlackCells).hasSameSizeAs(expectedBlackCells);
-//
-//    }
-//
-//}
\ No newline at end of file
+package model;
+
+import javafx.scene.paint.Color;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+class ColoredCellIteratorTest {
+
+
+    /*
+     * +---+---+---+
+     * | R | B | R |
+     * +---+---+---|
+     * | R | R | B |
+     * |---+---+---+
+     * | B | B | R |
+     * +---+---+---+
+     */
+
+    private static ArrayGrid gridThreeThree = new ArrayGrid(3,3);
+
+    @BeforeAll
+    private static void initializeColorsGrid(){
+        gridThreeThree.getCell(0,0).setColor(Color.RED);
+        gridThreeThree.getCell(0,1).setColor(Color.BLACK);
+        gridThreeThree.getCell(0,2).setColor(Color.RED);
+        gridThreeThree.getCell(1,0).setColor(Color.RED);
+        gridThreeThree.getCell(1,1).setColor(Color.RED);
+        gridThreeThree.getCell(1,2).setColor(Color.BLACK);
+        gridThreeThree.getCell(2,0).setColor(Color.BLACK);
+        gridThreeThree.getCell(2,1).setColor(Color.BLACK);
+        gridThreeThree.getCell(2,2).setColor(Color.RED);
+    }
+
+    @Test
+    void testIterator() {
+        ColoredCellIterator redCellIterator = new ColoredCellIterator(gridThreeThree.getCell(0,0));
+        List<Cell> expectedRedCells = List.of(gridThreeThree.getCell(0,0),
+                gridThreeThree.getCell(1,0),
+                gridThreeThree.getCell(1,1));
+        List<Cell> fromIteratorCells = new ArrayList<>();
+        for(;redCellIterator.hasNext();) fromIteratorCells.add(redCellIterator.next());
+        assertThat(fromIteratorCells).hasSameElementsAs(expectedRedCells).hasSameSizeAs(expectedRedCells);
+
+        ColoredCellIterator blackCellIterator = new ColoredCellIterator(gridThreeThree.getCell(2,1));
+        List<Cell> expectedBlackCells = List.of(gridThreeThree.getCell(2,0),
+                gridThreeThree.getCell(2,1));
+        fromIteratorCells = new ArrayList<>();
+        for( ; blackCellIterator.hasNext(); ) fromIteratorCells.add(blackCellIterator.next());
+        assertThat(fromIteratorCells).hasSameElementsAs(expectedBlackCells).hasSameSizeAs(expectedBlackCells);
+
+    }
+
+}
\ No newline at end of file