diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index 4cd994144b7c49c00b59d5908df5e68ec1aea182..081f2727a4b72073919321bcc6c20e24f4f173c9 100644
Binary files a/.gradle/8.4/executionHistory/executionHistory.bin and b/.gradle/8.4/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock
index db95200df76d7b9706b280268c7dc618e0a8702c..19d069dc1bb8acfdd4ceb1c9555c46f0c800308d 100644
Binary files a/.gradle/8.4/executionHistory/executionHistory.lock and b/.gradle/8.4/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin
index 67e8ff05ab0a6e4dade0b84d3957695c162245be..c9a08a77d62dd366ea28a84b10887c3805d1861e 100644
Binary files a/.gradle/8.4/fileHashes/fileHashes.bin and b/.gradle/8.4/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock
index 9fba0d1dc8c31802d659ebd90dce22e5fa0f45bb..6a377ff71b33b12ad96936f7c7774a09f9f0bec6 100644
Binary files a/.gradle/8.4/fileHashes/fileHashes.lock and b/.gradle/8.4/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin
index 14704f066ee2771d97546fac50b663472c06d6a2..43e6b8fe7daa35a36ad8ffdc44fda913b9a1c3c4 100644
Binary files a/.gradle/8.4/fileHashes/resourceHashesCache.bin and b/.gradle/8.4/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 788a578424a02c6e1b81bbf4c0c7b9a3868cf577..3c1b49a3a3c7cef009c40d886fcf5344a686328a 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin
index 1a2449f9ad6f5d724161c172966ab4ed62d399c0..d8932ec1d7481b9d4ea1b36dd567a54507db259a 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index d6fd48dc5da4617ba2831015834be3b4e4fbcbec..c6d314abae95d116bb74b2b05f1aa412f0ff5de8 100644
Binary files a/build/classes/java/main/controller/Controller.class and b/build/classes/java/main/controller/Controller.class differ
diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class
index 49e2e8b6d5f19a7d80523992779b46329ab967b6..7450774fa10adcd12566a08c493621a338c090f7 100644
Binary files a/build/classes/java/main/view/FirefighterGrid.class and b/build/classes/java/main/view/FirefighterGrid.class differ
diff --git a/build/resources/main/view/view.fxml b/build/resources/main/view/view.fxml
index 3f19ac9de44d6f0b571dc29e43bf15ff2ebeff79..336ffa315645baacbe25bf59171d2ff6d867b9c5 100644
--- a/build/resources/main/view/view.fxml
+++ b/build/resources/main/view/view.fxml
@@ -33,7 +33,7 @@
                   mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
                   prefWidth="200.0" styleClass="button" text="Pause"/>
   </VBox>
-  <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
+  <FirefighterGrid fx:id="grid"
                    xmlns="http://javafx.com/javafx"
                    xmlns:fx="http://javafx.com/fxml">
   </FirefighterGrid>
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorApplication.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorApplication.class.uniqueId0
deleted file mode 100644
index e0ff69034ab3b3dca33d7331e7fbd83218f359f0..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorApplication.class.uniqueId0 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorMain.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorMain.class.uniqueId2
deleted file mode 100644
index b426382855daa4f8e3ff421f7108c0b298a18d65..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/SimulatorMain.class.uniqueId2 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1
deleted file mode 100644
index 022c1fa844a25744d0a811cb92acc69ae1261c3d..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId1 and /dev/null differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 224689e65c0e5d8064ac452405dd2ad0ca3b3fa7..93d41b69789889bb0071a5ebfdf757a3f009a5f5 100644
Binary files a/build/tmp/compileJava/previous-compilation-data.bin and b/build/tmp/compileJava/previous-compilation-data.bin differ
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 918bab88b9a57fc860bf52974678935e8458c1cf..5dd8dd92505bdcd09b92452f70b0148cffe3e8d5 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -27,7 +27,7 @@ import static java.util.Objects.requireNonNull;
 
 public class Controller {
 
-  public static final int PERIOD_IN_MILLISECONDS = 500;
+  public static final int PERIOD_IN_MILLISECONDS = 50;
   @FXML
   public Button restartButton;
   @FXML
@@ -151,10 +151,10 @@ public class Controller {
                                 int rowCount, int initialFireCount, int initialFirefighterCount) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
     List<item> items= new ArrayList<>();
-    List<item> list= new ArrayList<>();
-    list.add(new Fire(initialFireCount));
-    list.add(new FireFighter(initialFirefighterCount,b));
+    items.add(new Fire(initialFireCount));
+    items.add(new FireFighter(initialFirefighterCount));
     Fboard b=new Fboard(columnCount,rowCount,items);
+    b.initializeElements();
     this.setModel(b);
     repaintGrid();
   }
diff --git a/src/main/java/newmodel/Extinguisher.java b/src/main/java/newmodel/Extinguisher.java
index ec4eccd21817470d2a845e0cbf7839645aea5ef6..632aaadaf3852b0cd56f8b86f0d4fff0c98c6994 100644
--- a/src/main/java/newmodel/Extinguisher.java
+++ b/src/main/java/newmodel/Extinguisher.java
@@ -5,12 +5,11 @@ import util.Position;
 import java.util.List;
 public abstract class Extinguisher implements item {
 
-        final int ID=1;
 
 
-        public abstract List<Position> update();
-        public abstract void extinguish(Position position);
-        public abstract void setState();
+        public abstract List<Position> update(Fboard board);
+        public abstract void extinguish(Position position,Fboard board);
+
         public abstract ModelElement getState();
 
         public abstract void initialize();
diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java
index 39b43df5dd2ef0a13eccce72710f663a303c380b..e62afa5372a93cd3cdaab205eca9f0c8da7441b1 100644
--- a/src/main/java/newmodel/Fboard.java
+++ b/src/main/java/newmodel/Fboard.java
@@ -11,7 +11,7 @@ public class Fboard {
     protected static int rowCount;
     private int step = 0;
 
-    private List<item> items;
+    private final List<item> items;
 
     public Fboard(int columnCount, int rowCount,List<item> item) {
         this.items=item;
@@ -32,12 +32,12 @@ public class Fboard {
         List<Position> result = new ArrayList<>();
         for(item item : items){
             if(item.getID()==1){
-                result.addAll(item.update());
+                result.addAll(item.update(this));
             }
         }
         for(item item : items){
             if(item.getID()==0 && step % 2 ==0){
-                result.addAll(item.update());
+                result.addAll(item.update(this));
             }
         }
         step++;
@@ -63,27 +63,18 @@ public class Fboard {
             }
         }
     }
-    public int getStep(){
-        return step;
-    }
-    public int getColumnCount(){
-        return this.columnCount;
-    }
-
-    public int getRowCount(){
-        return this.rowCount;
-    }
 
     public Fire getFire() {
         Fire x = null;
         for (item e : items) {
-            if(e.getID()==0){
+            if (e.getID() == 0) {
                 x = (Fire) e;
+                break;
             }
         }
         return x;
     }
-    public static List<Position> neighbors(Position position) {
+    public List<Position> neighbors(Position position) {
         List<Position> list = new ArrayList<>();
         if (position.row() > 0) list.add(new Position(position.row() - 1, position.column()));
         if (position.column() > 0) list.add(new Position(position.row(), position.column() - 1));
@@ -92,10 +83,10 @@ public class Fboard {
         return list;
     }
 
-    public static Position neighborClosestToFire(Position position) {
+    public Position neighborClosestToFire(Position position) {
         Set<Position> seen = new HashSet<>();
         HashMap<Position, Position> firstMove = new HashMap<>();
-        Queue<Position> toVisit = new LinkedList<>(neighbors(position)); //Queue is initialised with the neighbors of position
+        Queue<Position> toVisit = new LinkedList<>(this.neighbors(position)); //Queue is initialised with the neighbors of position
         for (Position initialMove : toVisit)
             firstMove.put(initialMove, initialMove);
         while (!toVisit.isEmpty()) {
@@ -114,13 +105,13 @@ public class Fboard {
 
     public List<ModelElement> getState(Position position){
         List<ModelElement> result = new ArrayList<>();
-        for (item e :items){
-            if (e.getPositions().equals(position) && e.getID()==1){
-                result.add(e.getState());
+        for (item e :items) {
+            if (e.getPositions().contains(position) && e.getID() == 1) {
+                result.add(e.getState());break;
             }
+            if (e.getPositions().contains(position) && e.getID() == 0)
+                result.add(getFire().getState());break;
         }
-        if(getFire().containsFire(position))
-            result.add(getFire().getState());
         return result;
     }
 
diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java
index 9bcd911ff51283f9214c6cf72a86613e73e26593..f3b64ee6a8b254087569aa9354a0b6725cdd75b3 100644
--- a/src/main/java/newmodel/Fire.java
+++ b/src/main/java/newmodel/Fire.java
@@ -5,36 +5,34 @@ import util.Position;
 
 import java.util.*;
 
-public class Fire implements item{
+public class Fire implements item {
 
     private final int initialFireCount;
 
     private List<Position> firePositions;
-    private ModelElement state;
+    private final ModelElement state;
     private final Random randomGenerator = new Random();
 
     private final int ID=0;
 
     public Fire(int initialFireCount) {
-        this.initialFireCount = initialFireCount;this.state=ModelElement.FIRE;
+        this.initialFireCount = initialFireCount;
+        this.state=ModelElement.FIRE;
     }
 
 
-    public List<Position> update() {
-        List<Position> result = new ArrayList<>();
+    public List<Position> update(Fboard board) {
             List<Position> newFirePositions = new ArrayList<>();
             for (Position fire : firePositions) {
-                newFirePositions.addAll(Fboard.neighbors(fire));
+                newFirePositions.addAll(board.neighbors(fire));
             }
             firePositions.addAll(newFirePositions);
-            result.addAll(newFirePositions);
-
-        return result;
+        return newFirePositions;
 
     }
 
     public ModelElement getState() {
-        return state;
+        return this.state;
     }
 
     public int getID() {
@@ -61,11 +59,4 @@ public class Fire implements item{
     }
 
 
-    public boolean containsFire(Position position) {
-        if (firePositions.contains(position)) {
-            return true;
-        }
-        else return false;
-    }
-
 }
diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java
index 66bf4b3825e50634ae261dacb5db35681947bf57..9dc5cb5934732b5b0f7a0dede8ab39c8ab2c2b99 100644
--- a/src/main/java/newmodel/FireFighter.java
+++ b/src/main/java/newmodel/FireFighter.java
@@ -4,31 +4,36 @@ import util.Position;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
+import model.ModelElement;
 
 public class FireFighter extends Extinguisher {
-    private ModelElement state;
+    private final ModelElement state;
     private List<Position> firefighterPositions;
     private final Random randomGenerator = new Random();
 
     private final int initialFirefighterCount;
+
+    private int ID=1;
     public FireFighter(int initialFirefighterCount){
+
         this.initialFirefighterCount=initialFirefighterCount;
+        this.state=ModelElement.FIREFIGHTER;
     }
 
 
-    public List<Position> update() {
+    public List<Position> update(Fboard board) {
             List<Position> result = new ArrayList<>();
             List<Position> firefighterNewPositions = new ArrayList<>();
             for (Position firefighterPosition : firefighterPositions) {
-                Position newFirefighterPosition = Fboard.neighborClosestToFire(firefighterPosition);
+                Position newFirefighterPosition = board.neighborClosestToFire(firefighterPosition);
                 firefighterNewPositions.add(newFirefighterPosition);
-                extinguish(newFirefighterPosition);
+                extinguish(newFirefighterPosition,board);
                 result.add(firefighterPosition);
                 result.add(newFirefighterPosition);
-                List<Position> neighborFirePositions = Fboard.neighbors(newFirefighterPosition).stream()
+                List<Position> neighborFirePositions = board.neighbors(newFirefighterPosition).stream()
                         .filter(board.getFire().getPositions()::contains).toList(); //this code create a list filtred with only the fire positions that are close to the newfirefighter position
                 for(Position firePosition : neighborFirePositions) //and exist in the firepositions list also
-                    extinguish(firePosition);
+                    extinguish(firePosition,board);
                 result.addAll(neighborFirePositions);
             }
             firefighterPositions = firefighterNewPositions;
@@ -36,22 +41,18 @@ public class FireFighter extends Extinguisher {
         }
 
 
-    public void extinguish(Position position) {
-        this.board.getFire().extinguish(position);
-    }
-
-
-    public void setState() {
-        state= ModelElement.FIREFIGHTER;
+    public void extinguish(Position position,Fboard board) {
+        board.getFire().extinguish(position);
     }
 
 
     public ModelElement getState() {
-        return state;
+        return this.state;
     }
 
-    @Override
+    // implementi liha pattern visiteur
     public int getID() {
+
         return this.ID;
     }
 
diff --git a/src/main/java/newmodel/MotoFireFighter.java b/src/main/java/newmodel/MotoFireFighter.java
deleted file mode 100644
index 099e1eeb3d46fc16e4001074b11e1eaeb91d9b42..0000000000000000000000000000000000000000
--- a/src/main/java/newmodel/MotoFireFighter.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package newmodel;
-
-import model.ModelElement;
-import util.Position;
-
-import java.util.List;
-
-public class MotoFireFighter extends Extinguisher {
-    @Override
-    public List<Position> update() {
-        return null;
-    }
-
-    @Override
-    public void extinguish(Position position) {
-
-    }
-
-    @Override
-    public void setState() {
-
-    }
-
-    @Override
-    public ModelElement getState() {
-        return null;
-    }
-
-    @Override
-    public int getID() {
-        return 0;
-    }
-
-    @Override
-    public void initialize() {
-
-    }
-
-    @Override
-    public List<Position> getPositions() {
-        return null;
-    }
-}
diff --git a/src/main/java/newmodel/Nuages.java b/src/main/java/newmodel/Nuages.java
deleted file mode 100644
index d3e3c6a30aa7db323a4858bfd406227f0ca2e397..0000000000000000000000000000000000000000
--- a/src/main/java/newmodel/Nuages.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package newmodel;
-
-import model.ModelElement;
-import util.Position;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Random;
-
-public class Nuages extends Extinguisher{
-    private ModelElement state;
-    private final Fboard board;
-    private List<Position> nuagesPositions;
-    private final Random randomGenerator = new Random();
-
-    private final int initialNuagesCount;
-
-    public Nuages(int initialNuagesCount,Fboard b){
-        this.initialNuagesCount=initialNuagesCount;
-        this.board=b;
-    }
-
-    public List<Position> update() {
-        List<Position> result = new ArrayList<>();
-        List<Position> NuagesNewPositions = new ArrayList<>();
-        for (Position NuageNewPosition: nuagesPositions) {
-            NuagesNewPositions.add(randomPosition());
-        }
-            for(Position nuage : NuagesNewPositions) {
-                extinguish(nuage);
-            }
-            result.addAll(nuagesPositions);
-            result.addAll(NuagesNewPositions);
-
-        nuagesPositions = NuagesNewPositions;
-        return result;
-    }
-
-
-    public void extinguish(Position position) {
-        this.board.getFire().extinguish(position);
-    }
-
-
-    public void setState() {
-     state=ModelElement.FIREFIGHTER;
-    }
-
-
-    public ModelElement getState() {
-        return state;
-    }
-
-    @Override
-    public int getID() {
-        return 0;
-    }
-
-
-    public void initialize() {
-        nuagesPositions = new ArrayList<>();
-        for (int index = 0; index < initialNuagesCount; index++)
-            nuagesPositions.add(randomPosition());
-    }
-
-
-
-    public List<Position> getPositions() {
-        return this.nuagesPositions;
-    }
-    private Position randomPosition() {
-        return new Position(randomGenerator.nextInt(board.rowCount), randomGenerator.nextInt(board.columnCount));
-    }
-}
diff --git a/src/main/java/newmodel/Pompiers.java b/src/main/java/newmodel/Pompiers.java
deleted file mode 100644
index 3664e487d6173d0eadf302cd916516722f39de3d..0000000000000000000000000000000000000000
--- a/src/main/java/newmodel/Pompiers.java
+++ /dev/null
@@ -1,63 +0,0 @@
-package newmodel;
-
-import model.ModelElement;
-import util.Position;
-
-import java.util.List;
-import java.util.Random;
-
-
-public class Pompiers extends Extinguisher{
-    private ModelElement state;
-    private final Fboard board;
-    private List<Position> Pompiers;
-    private final Random randomGenerator = new Random();
-
-    private final int initialPompiersCount;
-
-
-    public Pompiers(int count,Fboard b){
-        this.board=b;
-        this.initialPompiersCount=count;
-
-    }
-
-    public List<Position> updateExtinguisher() {
-        return null;
-    }
-
-
-    @Override
-    public List<Position> update() {
-        return null;
-    }
-
-    public void extinguish(Position position) {
-
-    }
-
-
-    public void setState() {
-        this.state=ModelElement.FIREFIGHTER;
-    }
-
-
-    public ModelElement getState() {
-        return state;
-    }
-
-    @Override
-    public int getID() {
-        return 0;
-    }
-
-
-    public void initialize() {
-
-    }
-
-
-    public List<Position> getPositions() {
-        return Pompiers;
-    }
-}
diff --git a/src/main/java/newmodel/item.java b/src/main/java/newmodel/item.java
index 11735f5298e070d2cf4cf179a88f2540b0db42eb..98b34f40b728eb60d604f286a54ee258d9ee4064 100644
--- a/src/main/java/newmodel/item.java
+++ b/src/main/java/newmodel/item.java
@@ -6,7 +6,7 @@ import util.Position;
 import java.util.List;
 
 public interface item {
-    public List<Position> update();
+    public List<Position> update(Fboard board);
     public ModelElement getState();
 
     public int getID();
diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java
index f48762c7f1b6b89132613bd726a8c719a101966f..3c4601256ef05698e6a0ca22b2c8528514712eb7 100644
--- a/src/main/java/view/FirefighterGrid.java
+++ b/src/main/java/view/FirefighterGrid.java
@@ -78,6 +78,8 @@ public class FirefighterGrid extends Canvas implements Grid<ViewElement>{
         this.squareHeight = squareHeight;
         this.columnCount = columnCount;
         this.rowCount = rowCount;
+        super.setWidth(squareWidth*columnCount);
+        super.setHeight(squareHeight*rowCount);
     }
 
     private void paintLines(){
@@ -98,10 +100,10 @@ public class FirefighterGrid extends Canvas implements Grid<ViewElement>{
     //this function color each case in the board with corresponding elments fire or firefighter
     private void paintSquare(int row, int column, Color color){
         getGraphicsContext2D().setFill(color);
-        getGraphicsContext2D().fillRect(row*squareHeight,column*squareWidth,squareHeight,squareWidth);
+        getGraphicsContext2D().fillRect(column*squareHeight,row*squareWidth,squareHeight,squareWidth);
     }
     //this function clear the color in each case in the board passed in the arguments
     private void clearSquare(int row, int column){
-        getGraphicsContext2D().clearRect(row*squareHeight,column*squareWidth,squareHeight,squareWidth);
+        getGraphicsContext2D().clearRect(column*squareHeight,row*squareWidth,squareHeight,squareWidth);
     }
 }
\ No newline at end of file
diff --git a/src/main/resources/view/view.fxml b/src/main/resources/view/view.fxml
index 3f19ac9de44d6f0b571dc29e43bf15ff2ebeff79..336ffa315645baacbe25bf59171d2ff6d867b9c5 100644
--- a/src/main/resources/view/view.fxml
+++ b/src/main/resources/view/view.fxml
@@ -33,7 +33,7 @@
                   mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
                   prefWidth="200.0" styleClass="button" text="Pause"/>
   </VBox>
-  <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
+  <FirefighterGrid fx:id="grid"
                    xmlns="http://javafx.com/javafx"
                    xmlns:fx="http://javafx.com/fxml">
   </FirefighterGrid>