diff --git a/app/src/main/java/model/ArrayGrid.java b/app/src/main/java/model/ArrayGrid.java
index 7778885ba416d15e5bbd58704743bdddf87d85a2..9ffbdd6287ace07fa371a55fb96c7501f19a015e 100644
--- a/app/src/main/java/model/ArrayGrid.java
+++ b/app/src/main/java/model/ArrayGrid.java
@@ -37,7 +37,7 @@ public class ArrayGrid implements Grid{
 
     @Override
     public void color(ColorGenerator colorGenerator) {
-        for(Cell[] column : cells ) {
+        for(Cell[] column : this.cells ) {
             for(Cell cell : column) {
                 cell.setColor(colorGenerator.nextColor(cell));
             }
diff --git a/app/src/main/java/model/CellGridIterator.java b/app/src/main/java/model/CellGridIterator.java
index 8372f821e6cbb673737db672349bd0286075695e..d682150d5e79f4dc25849d64b2cd323a4f0b84fd 100644
--- a/app/src/main/java/model/CellGridIterator.java
+++ b/app/src/main/java/model/CellGridIterator.java
@@ -15,7 +15,10 @@ public class CellGridIterator implements Iterator<Cell> {
 
     @Override
     public boolean hasNext() {
-        return false;
+        if(this.row==grid.getNumberOfRows() && this.column==grid.getNumberOfColumns()) {
+            return false;
+        }
+        return true;
     }
 
     @Override
diff --git a/app/src/main/java/util/RandomUtil.java b/app/src/main/java/util/RandomUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..5abfd59e1a492dce5e2d331f53852edb522ecf4e
--- /dev/null
+++ b/app/src/main/java/util/RandomUtil.java
@@ -0,0 +1,18 @@
+package util;
+
+import java.util.Random;
+import java.util.List;
+
+public class RandomUtil {
+    private RandomUtil() {}
+
+    public static <T> T randomElement(T[] elements, Random random) {
+        int i = random.nextInt(elements.length);
+        return elements[i];
+    }
+
+    public static <T> T randomElement(List<T> elements, Random random) {
+        int i = random.nextInt(elements.size());
+        return elements.get(i);
+    }
+}