diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java
index 9ffbdd6287ace07fa371a55fb96c7501f19a015e..d99f9db6034fd756104c7f6bc913bc8b4c203f79 100644
--- a/app/src/main/java/model/ArrayGrid.java
+++ b/app/src/main/java/model/ArrayGrid.java
@@ -45,7 +45,7 @@ public class ArrayGrid implements Grid{
     }
 
     public Iterator<Cell> iterator() {
-        return null;
+        return new CellGridIterator(this);
     }
 
     @Override
diff --git a/app/src/test/java/model/ArrayGridTest.java b/app/src/test/java/model/ArrayGridTest.java
index 1128fa54f0388a5e3fec1ff4741ef30a6dc01bd5..91d1b9f982349973bec57b8c30e27f1fdc421a7b 100644
--- a/app/src/test/java/model/ArrayGridTest.java
+++ b/app/src/test/java/model/ArrayGridTest.java
@@ -74,17 +74,17 @@ class ArrayGridTest {
         }
     }
 
-//    @Test
-//    void testIterator() {
-//        Iterator<Cell> iterator = arrayGridTwoTwo.iterator();
-//        assertThat(iterator.hasNext()).isTrue();
-//        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,0));
-//        assertThat(iterator.hasNext()).isTrue();
-//        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,1));
-//        assertThat(iterator.hasNext()).isTrue();
-//        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(1,0));
-//        iterator.next();
-//        assertThat(iterator.hasNext()).isFalse();
-//
-//    }
+    @Test
+    void testIterator() {
+        Iterator<Cell> iterator = arrayGridTwoTwo.iterator();
+        assertThat(iterator.hasNext()).isTrue();
+        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,0));
+        assertThat(iterator.hasNext()).isTrue();
+        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(0,1));
+        assertThat(iterator.hasNext()).isTrue();
+        assertThat(iterator.next()).isEqualTo(arrayGridTwoTwo.getCell(1,0));
+        iterator.next();
+        assertThat(iterator.hasNext()).isFalse();
+
+    }
 }
\ No newline at end of file
diff --git a/app/src/test/java/model/ColoredCellIteratorTest.java b/app/src/test/java/model/ColoredCellIteratorTest.java
index c6d41c2dffc089791af9241f0401d9591397fb8b..bd0bb10c50bfdb804b22080d2897b050f68b3987 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