diff --git a/Handler.java b/Handler.java
index 06b74191a73a2de8b3599f929e289350a9be96c2..03d2ac8c41e404f2d0a4595498fc4960d077bc5f 100644
--- a/Handler.java
+++ b/Handler.java
@@ -1,4 +1,6 @@
 import javafx.animation.*;
+import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
 import javafx.geometry.Insets;
 import javafx.scene.Node;
 import javafx.scene.control.Button;
@@ -717,10 +719,29 @@ public class Handler {
         return true;
     }
 
-    public void solveBoard(Button solve, GridPane grid, int n) {
-        solve.setOnAction(actionEvent -> {
-            Solver solver = new Solver(n, grid);
-            solver.backtracking(1, 1);
+    public void solveBoard(GridPane grid) {
+
+        Solver solver = new Solver(n, grid);
+        solver.backtracking(1, 1);
+        clear(grid);
+    }
+
+    public void hint(Button hint, GridPane grid) {
+
+        hint.setOnAction(actionEvent -> {
+
+            boolean found = false;
+
+            for(int i = 0; i < n && !found; i ++) {
+                for(int j = 0; j < n; j ++) {
+                    if(cellValues[i][j] != Solver.solved[i][j]) {
+                        getCell(grid, i, j).setValue(Solver.solved[i][j]);
+                        cellValues[i][j] = Solver.solved[i][j];
+                        found = true;
+                        break;
+                    }
+                }
+            }
         });
     }
 }