diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java
index 826cf474404fd73d4781b4da5f1140245e47a847..d9967c3e8a07f80c97b98f8237918c65f251b791 100644
--- a/app/src/main/java/model/ArrayGrid.java
+++ b/app/src/main/java/model/ArrayGrid.java
@@ -1,12 +1,13 @@
 package model;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 
 
 public class ArrayGrid implements Grid{
 
-    private Cell [][] cells;
+    protected Cell [][] cells;
     private int numberOfRows;
     private int numberOfColumns;
 
@@ -72,14 +73,19 @@ public class ArrayGrid implements Grid{
 
     @Override
     public void color(ColorGenerator colorGenerator) {
-        for (int i=0; i<this.numberOfRows;i++){
-            for(int j=0; j<this.numberOfColumns;j++){
-                colorGenerator.nextColor(cells[i][j]);
-            }
+//        for(Cell []cell1D:cells){
+//            for(Cell cell:cell1D){
+//                cell.setColor(colorGenerator.nextColor(cell));
+//            }
+//        }
+        for(Cell cell:this){
+            cell.setColor(colorGenerator.nextColor(cell));
         }
     }
 
 
-=======
->>>>>>> origin/main
+    @Override
+    public Iterator<Cell> iterator() {
+        return new CellGridIterator(this);
+    }
 }
diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java
new file mode 100644
index 0000000000000000000000000000000000000000..2ea7957df201e37cbbcc32c9ab60b31ff04777a4
--- /dev/null
+++ b/app/src/main/java/model/CellGridIterator.java
@@ -0,0 +1,25 @@
+package model;
+
+import java.util.Iterator;
+public class CellGridIterator implements Iterator<Cell> {
+
+    ArrayGrid arrayGrid;
+    private int rowIndex,columnIndex;
+
+    private Cell [][]cells;
+    public CellGridIterator(ArrayGrid grid) {
+        arrayGrid=grid;
+        cells=grid.cells;
+    }
+
+
+    @Override
+    public boolean hasNext() {
+        return false;
+    }
+
+    @Override
+    public Cell next() {
+       return null;
+    }
+}
diff --git a/app/src/main/java/model/GrayGrid.java b/app/src/main/java/model/GrayGrid.java
index 42a49eb5d00a6dcdb562e4fac1fc1b1d20051394..7656d08930114c6387d5ed0d5c89e6303d159427 100644
--- a/app/src/main/java/model/GrayGrid.java
+++ b/app/src/main/java/model/GrayGrid.java
@@ -1,6 +1,8 @@
 package model;
 
-public class GrayGrid implements Grid{
+import java.util.Iterator;
+
+public class GrayGrid implements Grid {
 
     private final int numberOfRows;
     private final int numnberOfColumns;
@@ -45,4 +47,10 @@ public class GrayGrid implements Grid{
     public void color(ColorGenerator colorGenerator) {
 
     }
+
+
+    @Override
+    public Iterator<Cell> iterator() {
+        return null;
+    }
 }
diff --git a/app/src/main/java/model/Grid.java b/app/src/main/java/model/Grid.java
index 68a983455dc5f5cf0ea38be7819b64b288f1060c..f49d488d36ed8e54f968a2be3e74589eee32886e 100644
--- a/app/src/main/java/model/Grid.java
+++ b/app/src/main/java/model/Grid.java
@@ -1,6 +1,6 @@
 package model;
 
-public interface  Grid  {
+public interface  Grid extends Iterable<Cell>{
 
     /**
      * Return the cell located at the given coordinates in the grid.
diff --git a/app/src/main/java/model/UniformColorGenerator.java b/app/src/main/java/model/UniformColorGenerator.java
index fc335ea77705142c588592dee301c21bacede3de..9f21c99041f4f8dedfa3aab5bfc1b5eba587f739 100644
--- a/app/src/main/java/model/UniformColorGenerator.java
+++ b/app/src/main/java/model/UniformColorGenerator.java
@@ -8,21 +8,10 @@ public class UniformColorGenerator implements ColorGenerator{
 
     private Color color;
 
-    //code of color generator found on stackOverFlow;
-    // link : https://stackoverflow.com/questions/4246351/creating-random-colour-in-java
-    // but the color constructor with 3 parameter is not public, so I checked in the documentation of Color, and
-    // I found that there is a constructor with 4 parameter that is public since java 8;
-    // Link of the doc : https://docs.oracle.com/javase/8/javafx/api/javafx/scene/paint/Color.html
+
     @Override
-   public Color nextColor(Cell cell) {
-//        Random rand = new Random();
-//        double red = rand.nextFloat();
-//        double green = rand.nextFloat();
-//        double blue = rand.nextFloat();
-//        double opacity=rand.nextFloat();
-//        Color randomColor = new Color(red, green, blue,opacity);
-//        cell.setColor(randomColor);
-//        return randomColor;
+   public Color nextColor(Cell cells) {
+
         return this.color;
 
     }