diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..d3f906538be31389774b0d9edf0f9c076db0b565
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/.gradle/
+/build/
+/.idea/
diff --git a/src/main/java/App.java b/src/main/java/App.java
index 2b1fbbaa34052927e01846fdace8ec9a5a3e661e..9c25e53970b93ae605b9d19aeb09a88712f66b88 100644
--- a/src/main/java/App.java
+++ b/src/main/java/App.java
@@ -9,8 +9,6 @@ import javafx.stage.Stage;
 import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
-import static java.lang.Thread.sleep;
-
 
 public class App extends Application {
 
@@ -21,7 +19,7 @@ public class App extends Application {
     }
 
     @Override
-    public void start(Stage primaryStage) throws InterruptedException {
+    public void start(Stage primaryStage) {
         Group root = new Group();
         Button restart = new Button("Restart");
         Button switchPause = new Button("Pause");
@@ -41,13 +39,10 @@ public class App extends Application {
         grid.repaint();
 
         ScheduledThreadPoolExecutor threadPoolExecutor = new ScheduledThreadPoolExecutor(1);
-        threadPoolExecutor.scheduleWithFixedDelay(new Runnable() {
-            @Override
-            public void run() {
-                if(!isInPause) {
-                    grid.model.activation();
-                    grid.repaint();
-                }
+        threadPoolExecutor.scheduleAtFixedRate(() -> {
+            if(!isInPause) {
+                grid.model.activation();
+                grid.repaint();
             }
         }, 0, 50 , TimeUnit.MILLISECONDS);
     }
diff --git a/src/main/java/Grid.java b/src/main/java/Grid.java
index 23fb50d23d9ba0dd308def943a81d8fe898d40a9..6b41aa270f5053cdad9d9d3a2b30bcbd833eb2c6 100644
--- a/src/main/java/Grid.java
+++ b/src/main/java/Grid.java
@@ -1,10 +1,12 @@
 import javafx.scene.canvas.Canvas;
-import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.input.MouseEvent;
 import javafx.scene.paint.Color;
 
 public class Grid extends Canvas{
-    int width, height, colCount, rowCount;
+    double width;
+    double height;
+    double colCount;
+    double rowCount;
     Model model;
 
 
@@ -23,22 +25,19 @@ public class Grid extends Canvas{
     public void restart(MouseEvent mouseEvent){
         model = new Model(this);
         model.initialisation(3,6);
-        getGraphicsContext2D().clearRect(0,0,width,height);
+        getGraphicsContext2D().clearRect(0,0,width, height);
         repaint();
     }
     private void mousePressed(MouseEvent mouseEvent) {
         model.activation();
         repaint();
-            /*double x = mouseEvent.getX();
-            double y = mouseEvent.getY();
-            model.click((int)x*rowCount/height,(int)y*colCount/width);*/
     }
 
     void repaint(){
         for(int col=0; col<colCount; col++)
-            getGraphicsContext2D().strokeLine(0, col*width/colCount,height, col*width/colCount);
+            getGraphicsContext2D().strokeLine(0, col*width/colCount, height, col*width/colCount);
         for(int row=0; row<rowCount;row++)
-            getGraphicsContext2D().strokeLine(row*height/rowCount,0,row*height/rowCount,width);
+            getGraphicsContext2D().strokeLine(row*height/rowCount,0,row*height/rowCount, width);
 
     }
 
@@ -49,7 +48,7 @@ public class Grid extends Canvas{
 
     public void paintFF(int row, int col) {
         getGraphicsContext2D().setFill(Color.BLUE);
-        getGraphicsContext2D().fillRect(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount);
+        getGraphicsContext2D().fillOval(row*height/rowCount,col*width/colCount,height/rowCount,width/colCount);
     }
 
     public void paintFire(int row, int col) {
diff --git a/src/main/java/Model.java b/src/main/java/Model.java
index f23d0d13c6a3e847962201dc7c72fd5dedc0a249..7fce8f14a843914fb230bbe50c61bb575db3108a 100644
--- a/src/main/java/Model.java
+++ b/src/main/java/Model.java
@@ -2,104 +2,104 @@ import java.util.*;
 
 
 public class Model {
-    Grid grid;
-    int colCount, rowCount;
-    List<Position> firefighters = new ArrayList<>();
-    Set<Position> fires = new HashSet<>();
-    List<Position> ffNewPositions;
-    int step = 0;
-
-    public Model(Grid grid) {
-        this.grid = grid;
-        colCount = grid.colCount;
-        rowCount = grid.rowCount;
+  Grid grid;
+  double colCount;
+  double rowCount;
+  List<Position> firefighters = new ArrayList<>();
+  Set<Position> fires = new HashSet<>();
+  List<Position> ffNewPositions;
+  int step = 0;
+
+  public Model(Grid grid) {
+    this.grid = grid;
+    colCount = grid.colCount;
+    rowCount = grid.rowCount;
+  }
+
+
+  public void initialisation(int fireNumber, int fireFighterNumber) {
+    for (int index = 0; index < fireNumber; index++)
+      fires.add(randomPosition());
+    for (int index = 0; index < fireFighterNumber; index++)
+      firefighters.add(randomPosition());
+  }
+
+  private Position randomPosition() {
+    return new Position((int) (Math.random() * rowCount), (int) (Math.random() * colCount));
+  }
+
+
+  public void activation() {
+    ffNewPositions = new ArrayList<>();
+    for (Position ff : firefighters) {
+      Position newPosition = activateFirefighter(ff);
+      grid.paint(ff.row, ff.col);
+      grid.paintFF(newPosition.row, newPosition.col);
+      ffNewPositions.add(newPosition);
     }
-
-
-    public void initialisation(int fireNumber, int fireFighterNumber){
-        for(int index=0; index<fireNumber;index++)
-            fires.add(randomPosition());
-        for(int index=0; index<fireFighterNumber;index++)
-            firefighters.add(randomPosition());
-    }
-
-    private Position randomPosition() {
-        return new Position((int) (Math.random()*rowCount), (int) (Math.random()*colCount));
-    }
-
-
-    public void activation(){
-        ffNewPositions = new ArrayList<>();
-        for(Position ff : firefighters){
-            Position newPosition = activateFirefighter(ff);
-            grid.paint(ff.row,ff.col);
-            grid.paintFF(newPosition.row, newPosition.col);
-            ffNewPositions.add(newPosition);
-        }
-        firefighters = ffNewPositions;
-        if(step%2==0){
-            List<Position> newFires = new ArrayList<>();
-            for(Position fire : fires){
-                newFires.addAll(activateFire(fire));
-            }
-            for(Position newFire : newFires)
-                grid.paintFire(newFire.row, newFire.col);
-
-            fires.addAll(newFires);}
-        step++;
-
-    }
-
-    private List<Position> activateFire(Position position) {
-        return next(position);
+    firefighters = ffNewPositions;
+    if (step % 2 == 0) {
+      List<Position> newFires = new ArrayList<>();
+      for (Position fire : fires) {
+        newFires.addAll(activateFire(fire));
+      }
+      for (Position newFire : newFires)
+        grid.paintFire(newFire.row, newFire.col);
+      fires.addAll(newFires);
     }
-
-
-
-    private Position activateFirefighter(Position position) {
-        Position randomPosition = aStepTowardFire(position);
-                //next(position).get((int) (Math.random()*next(position).size()));
-        List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList();
-        extinguish(randomPosition);
-            for (Position fire : nextFires)
-                extinguish(fire);
-            return randomPosition;
-        }
-
-        private void extinguish(Position position) {
-        fires.remove(position);
-        grid.paint(position.row, position.col);
-    }
-
-    private List<Position> next(Position position){
-        List<Position> list = new ArrayList<>();
-        if(position.row>0) list.add(new Position(position.row-1, position.col));
-        if(position.col>0) list.add(new Position(position.row, position.col-1));
-        if(position.row<rowCount-1) list.add(new Position(position.row+1, position.col));
-        if(position.col<colCount-1) list.add(new Position(position.row, position.col+1));
-        return list;
-    }
-
-    private Position aStepTowardFire(Position position){
-        Queue<Position> toVisit = new LinkedList<>();
-        Set<Position> seen = new HashSet<>();
-        HashMap<Position,Position> firstMove = new HashMap<>();
-        toVisit.addAll(next(position));
-        for(Position initialMove : toVisit)
-            firstMove.put(initialMove,initialMove);
-        while(!toVisit.isEmpty()){
-            Position current = toVisit.poll();
-            if(fires.contains(current))
-                return firstMove.get(current);
-            for(Position adjacent : next(current)){
-                if(seen.contains(adjacent)) continue;
-                toVisit.add(adjacent);
-                seen.add(adjacent);
-                firstMove.put(adjacent, firstMove.get(current));
-            }
-        }
-        return position;
+    step++;
+
+  }
+
+  private List<Position> activateFire(Position position) {
+    return next(position);
+  }
+
+
+  private Position activateFirefighter(Position position) {
+    Position randomPosition = aStepTowardFire(position);
+    List<Position> nextFires = next(randomPosition).stream().filter(fires::contains).toList();
+    extinguish(randomPosition);
+    for (Position fire : nextFires)
+      extinguish(fire);
+    return randomPosition;
+  }
+
+  private void extinguish(Position position) {
+    fires.remove(position);
+    grid.paint(position.row, position.col);
+  }
+
+  private List<Position> next(Position position) {
+    List<Position> list = new ArrayList<>();
+    if (position.row > 0) list.add(new Position(position.row - 1, position.col));
+    if (position.col > 0) list.add(new Position(position.row, position.col - 1));
+    if (position.row < rowCount - 1) list.add(new Position(position.row + 1, position.col));
+    if (position.col < colCount - 1) list.add(new Position(position.row, position.col + 1));
+    return list;
+  }
+
+  private Position aStepTowardFire(Position position) {
+    Queue<Position> toVisit = new LinkedList<>();
+    Set<Position> seen = new HashSet<>();
+    HashMap<Position, Position> firstMove = new HashMap<>();
+    toVisit.addAll(next(position));
+    for (Position initialMove : toVisit)
+      firstMove.put(initialMove, initialMove);
+    while (!toVisit.isEmpty()) {
+      Position current = toVisit.poll();
+      if (fires.contains(current))
+        return firstMove.get(current);
+      for (Position adjacent : next(current)) {
+        if (seen.contains(adjacent)) continue;
+        toVisit.add(adjacent);
+        seen.add(adjacent);
+        firstMove.put(adjacent, firstMove.get(current));
+      }
     }
+    return position;
+  }
 
-    public record Position(int row, int col){}
+  public record Position(int row, int col) {
+  }
 }
\ No newline at end of file