diff --git a/app/src/main/java/controller/GameController.java b/app/src/main/java/controller/GameController.java
index 98cfd89b907136b23a441b72ad84cf7888632ad9..788de856d7ae80a6006e362b7aacd4d6717c883c 100644
--- a/app/src/main/java/controller/GameController.java
+++ b/app/src/main/java/controller/GameController.java
@@ -6,17 +6,22 @@ import javafx.scene.control.Label;
 import javafx.scene.paint.Color;
 import javafx.util.Duration;
 import model.*;
+import util.CyclicColorGenerator;
+import util.DistinctColorGenerator;
+import util.RandomColorGenerator;
+import util.UniformExceptOneGenerator;
 import view.MatrixPane;
 
 import java.util.List;
 import java.util.Random;
 
 public class GameController {
-    public static final Color COLOR_ONE   = Color.RED;
-    public static final Color COLOR_TWO   = Color.BLUE;
-    public static final Color COLOR_THREE = Color.YELLOW;
-    public static final Color COLOR_FOUR  = Color.GREEN;
-    private static final List<Color> availableColors = List.of(COLOR_ONE, COLOR_TWO, COLOR_THREE, COLOR_FOUR);
+    public static final Color COLOR_FIRST_NAME_ONE   = Color.GRAY;
+    public static final Color COLOR_LAST_NAME_ONE  = Color.SADDLEBROWN;
+    public static final Color  COLOR_FIRST_NAME_TWO = Color.ALICEBLUE;
+    public static final Color  COLOR_LAST_NAME_TWO  = Color.ANTIQUEWHITE;
+    private static final List<Color> availableColors = List.of(COLOR_FIRST_NAME_ONE, COLOR_LAST_NAME_ONE
+            ,  COLOR_FIRST_NAME_TWO,  COLOR_LAST_NAME_TWO);
 
     public static final double PAUSE_MILLISECONDS = 400;
     private final PauseTransition pause = new PauseTransition(Duration.millis(PAUSE_MILLISECONDS));
@@ -56,39 +61,39 @@ public class GameController {
 
     private void colorGrid(ColorGenerator colorGenerator){
         // TODO
-        //  matrixPane.getGrid().color(colorGenerator);
+         matrixPane.getGrid().color(colorGenerator);
     }
 
 
     @FXML
     public void fillGridUniform() {
         // TODO uncomment:
-        //  colorGrid(new UniformColorGenerator(COLOR_ONE));
+         colorGrid(new UniformColorGenerator(COLOR_FIRST_NAME_ONE));
     }
 
     @FXML
     public void fillGridRandom() {
         // TODO uncomment
-        //  colorGrid(new RandomColorGenerator(availableColors,random));
+        colorGrid(new RandomColorGenerator(availableColors,random));
     }
 
     @FXML
     public void fillGridDistinct() {
         // TODO uncomment
-        //  fillGridUniform();
-        //  colorGrid(new DistinctColorGenerator(COLOR_ONE,List.of(COLOR_THREE, COLOR_FOUR)));
+         fillGridUniform();
+        colorGrid(new DistinctColorGenerator(COLOR_FIRST_NAME_ONE ,List.of(COLOR_FIRST_NAME_TWO, COLOR_LAST_NAME_TWO)));
     }
 
     @FXML
     public void fillGridCycle() {
         // TODO uncomment
-        //  colorGrid(new CyclingColorGenerator(availableColors));
+        colorGrid(new CyclicColorGenerator((availableColors)));
     }
 
     @FXML
     public void fillGridUniformExceptOne() {
         // TODO uncomment
-        //  colorGrid(new UniformExceptOneColorGenerator(COLOR_ONE,COLOR_TWO));
+        colorGrid(new UniformExceptOneGenerator(COLOR_FIRST_NAME_ONE,COLOR_LAST_NAME_ONE));
     }
 
     private void playComputerTurn(){
diff --git a/app/src/main/java/util/DistinctColorGenerator.java b/app/src/main/java/util/DistinctColorGenerator.java
index 3f00c7cd824a4e98128fbcdbbf2b707f0487cbd9..0fb8fc4ee142c74b808b37d0d722eb07031dc553 100644
--- a/app/src/main/java/util/DistinctColorGenerator.java
+++ b/app/src/main/java/util/DistinctColorGenerator.java
@@ -7,10 +7,10 @@ import model.ColorGenerator;
 import java.util.List;
 
 public class DistinctColorGenerator implements ColorGenerator {
-    private List<Color> colors;
-    private Color defaultcolor;
+    private final List<Color> colors;
+    private final Color defaultcolor;
 
-    public  DistinctColorGenerator(List<Color>colors,Color defaultcolor){
+    public  DistinctColorGenerator(Color defaultcolor,List<Color>colors){
             this.colors = colors;
             this.defaultcolor = defaultcolor;
     }