diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index f84ef8498b8b5049936eb04fec700633f625bc0b..a5d0b3ec5b95972acdc0e1b1eb669aaa0e8035b5 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 584c58c264ded8a4cc878c1ef260c758712aa6bc..b7c2f5583a7dd831811c5b0de60eaf659d27068f 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 29043a2bc1179d522a50cf9b909ae36f711ce3eb..08803b8ad4c4e7d1cc6c401c51420d2742340c25 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 797f7ce222793c73535024fee2ac478c8740e1d0..7ffccdbda4931f659d3234ec73f2e08e8601586a 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 0299e170bd1a58c6114ddd2a115bcc7b95cf1738..02687afa3db118a567b09be0b471de862a223f02 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 8f4c4f8be1eafa911e0b426006694127242ebc78..ddadcf33733c1bcc83a80d1fa35fb6c158f752be 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 d8932ec1d7481b9d4ea1b36dd567a54507db259a..97757e493696f88cacfa26c546434f8d90d26a82 100644
Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
index 9b534bce67f2ed9a0fb4b5a34a3bb5cabdbfcd9d..296a051a57bcda0fb14333f1fc918572ca487b55 100644
Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ
diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class
index 91a66301ebaccdd0180a5e8ca2e120d1ed08a5b4..e0ff69034ab3b3dca33d7331e7fbd83218f359f0 100644
Binary files a/build/classes/java/main/app/SimulatorApplication.class and b/build/classes/java/main/app/SimulatorApplication.class differ
diff --git a/build/classes/java/main/app/SimulatorMain.class b/build/classes/java/main/app/SimulatorMain.class
index 4530cc2971636d0c78bcf91139a4f699c2f20eb4..b426382855daa4f8e3ff421f7108c0b298a18d65 100644
Binary files a/build/classes/java/main/app/SimulatorMain.class and b/build/classes/java/main/app/SimulatorMain.class differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index c6d314abae95d116bb74b2b05f1aa412f0ff5de8..d6b267cb0f38c6486808837f61ba866434fae1d3 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/controller/PersistentToggleGroup.class b/build/classes/java/main/controller/PersistentToggleGroup.class
index 5ccef4da42dee9301d32078f998d43094c421149..c0ccdd01abe3a42a581528ab9898584f819a2f12 100644
Binary files a/build/classes/java/main/controller/PersistentToggleGroup.class and b/build/classes/java/main/controller/PersistentToggleGroup.class differ
diff --git a/build/classes/java/main/model/Board.class b/build/classes/java/main/model/Board.class
index 964278193ef90b7d61ea16d7819580a1bc368733..9384d2b533b1eef09f28e2e08c82c467056e8b53 100644
Binary files a/build/classes/java/main/model/Board.class and b/build/classes/java/main/model/Board.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard$1.class b/build/classes/java/main/model/FirefighterBoard$1.class
index 4cd04d06ce08a8f36d7801f91a602b10889fc2c9..6409db7318c1ba27d3cff0b88217c68814c59e1c 100644
Binary files a/build/classes/java/main/model/FirefighterBoard$1.class and b/build/classes/java/main/model/FirefighterBoard$1.class differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index 4812b56b843e3d51e3a8b2a226c754607ba01af7..9811c05ced9e9a54051bf03da00676bf04938a51 100644
Binary files a/build/classes/java/main/model/FirefighterBoard.class and b/build/classes/java/main/model/FirefighterBoard.class differ
diff --git a/build/classes/java/main/model/ModelElement.class b/build/classes/java/main/model/ModelElement.class
index f094b21e4d599c59bef27eb5bd59eeda639bc897..6143f150ac592a530892fd585d60cf42c6d07aaf 100644
Binary files a/build/classes/java/main/model/ModelElement.class and b/build/classes/java/main/model/ModelElement.class differ
diff --git a/build/classes/java/main/module-info.class b/build/classes/java/main/module-info.class
index 7a769b70875d147512dd0dc3f725d1c113981548..022c1fa844a25744d0a811cb92acc69ae1261c3d 100644
Binary files a/build/classes/java/main/module-info.class and b/build/classes/java/main/module-info.class differ
diff --git a/build/classes/java/main/util/Position.class b/build/classes/java/main/util/Position.class
index b01c34770ddcee9fb9247441aa31c14fcb6fc662..5839ba1e53fee0ea3615bc8fcef03daca11a422d 100644
Binary files a/build/classes/java/main/util/Position.class and b/build/classes/java/main/util/Position.class differ
diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class
index 7450774fa10adcd12566a08c493621a338c090f7..5a4f2c572ec7525c4cefc798574c27ccf56a2919 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/classes/java/main/view/Grid.class b/build/classes/java/main/view/Grid.class
index 3d42b97050079349780725b186452a4ef88502d2..ddb93c29851f2511e39a03e77db1a6ef7b1e41ae 100644
Binary files a/build/classes/java/main/view/Grid.class and b/build/classes/java/main/view/Grid.class differ
diff --git a/build/classes/java/main/view/ViewElement.class b/build/classes/java/main/view/ViewElement.class
index b647b97da7f66593fe943a56f2dddce5383b5b24..9c06aa83b1e4b099999a2b888508175e41625a98 100644
Binary files a/build/classes/java/main/view/ViewElement.class and b/build/classes/java/main/view/ViewElement.class differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 9f40e871db1454f66acd6b65c95c2a1c341f8807..dc869a1772e567845d90e803120a428499cf9665 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 5dd8dd92505bdcd09b92452f70b0148cffe3e8d5..fb20711c755936a28954a28ba01705df020e501a 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -69,7 +69,8 @@ public class Controller {
     List<Position> updatedPositions = board.updateToNextGeneration();
     //this function calls both update firefighters and updatefire functions so they can be updated to their correponding
     // new position and sum up the results and returns them also it increments the step variable
-
+//         // (*firePositions contient last fireposition after the last extinguish and new fire positions +
+// *modifiedPosition contient Last fire fighter positions and New Firefighterpositions with neighbor of every new firefighter)
     List<Pair<Position, ViewElement>> updatedSquares = new ArrayList<>();
     for(Position updatedPosition : updatedPositions){
       List<ModelElement> squareState = board.getState(updatedPosition);
diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java
index efd4721c3a079f0908d2ca314cd72feed50f37d5..b7b4524baa077e1ebc36838be291830f432a0711 100644
--- a/src/main/java/newmodel/Fboard.java
+++ b/src/main/java/newmodel/Fboard.java
@@ -31,17 +31,16 @@ public class Fboard {
     public List<Position> updateToNextGeneration() {
         List<Position> result = new ArrayList<>();
         for(item item : items){
-            if(item.getID()==1 && step % 2 ==0){
+            if(item.getID()==0){
                 result.addAll(item.update(this));
             }
         }
         for(item item : items){
-            // Remove Extinguished position from the results
-            if(item.getID()==0){
+            if(item.getID()==1 && step % 2 ==0){
                 result.addAll(item.update(this));
             }
-
         }
+
         step++;
         return result;
     }
@@ -66,15 +65,14 @@ public class Fboard {
         }
     }
 
-    // A revoir
+
     public Fire getFire() {
-        Fire x = null;
         for (item e : items) {
             if (e.getID() == 1) {
                 return (Fire) e;
             }
         }
-        return (Fire) items.get(0);
+        return null;
     }
     public List<Position> neighbors(Position position) {
         List<Position> list = new ArrayList<>();
@@ -105,16 +103,19 @@ public class Fboard {
         return position;
     }
 
-// A revoir
+
     public List<ModelElement> getState(Position position){
         List<ModelElement> result = new ArrayList<>();
         for (item e :items) {
             if (e.getPositions().contains(position) && e.getID() == 1) {
                 result.add(e.getState());
             }
-            if (e.getPositions().contains(position) && e.getID() == 0) {
+            else if (e.getPositions().contains(position) && e.getID() == 0) {
                 result.add(e.getState());
             }
+            else{
+                result.add(ModelElement.NOT);
+            }
         }
         return result;
     }
diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java
index b9cfad73b941b6263328addef30a1787a5f918b2..9675660b16fc4080eb89685422346bfab579c66d 100644
--- a/src/main/java/newmodel/Fire.java
+++ b/src/main/java/newmodel/Fire.java
@@ -26,9 +26,13 @@ public class Fire implements item {
             for (Position fire : firePositions) {
                 newFirePositions.addAll(board.neighbors(fire));
             }
-            firePositions.addAll(newFirePositions);
+            for (Position f : newFirePositions) {
+                if(!firePositions.contains(f)) {
+                    firePositions.add(f);
+                }
+            }
         return firePositions;
-
+        // firePositions contient last fireposition after the last extinguish and new fire positions
     }
 
     public ModelElement getState() {
diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java
index 91a74d3e5c3bdad5171c34a8b476245348ca7d46..31d40efaac40775ff2059aade316cce5bbf25ab8 100644
--- a/src/main/java/newmodel/FireFighter.java
+++ b/src/main/java/newmodel/FireFighter.java
@@ -10,7 +10,7 @@ public class FireFighter extends Extinguisher {
     private ModelElement state;
     private List<Position> firefighterPositions;
     private final Random randomGenerator = new Random();
-
+    private List<Position> neighborFirePositions;
     private final int initialFirefighterCount;
 
     private final int ID=0;
@@ -22,23 +22,40 @@ public class FireFighter extends Extinguisher {
 
 
     public List<Position> update(Fboard board) {
-        List<Position> modifiedPosition = new ArrayList<>();
+        List<Position> modifiedPositions = new ArrayList<>();
         List<Position> firefighterNewPositions = new ArrayList<>();
+
         for (Position firefighterPosition : firefighterPositions) {
+            // Find the new position closest to the fire
             Position newFirefighterPosition = board.neighborClosestToFire(firefighterPosition);
             firefighterNewPositions.add(newFirefighterPosition);
-            extinguish(newFirefighterPosition,board);
-            modifiedPosition.add(firefighterPosition);
-            modifiedPosition.add(newFirefighterPosition);
-            List<Position> neighborFirePositions = board.neighbors(newFirefighterPosition).stream()
-                    .filter(board.getFire().getPositions()::contains).toList();
-            for(Position firePosition : neighborFirePositions)
-                extinguish(firePosition,board);
-            modifiedPosition.addAll(neighborFirePositions);
+
+            // Extinguish fire at the new position
+            extinguish(newFirefighterPosition, board);
+
+            // Record the modified positions
+            modifiedPositions.add(firefighterPosition);
+            modifiedPositions.add(newFirefighterPosition);
+
+            // Find neighboring fire positions
+            List<Position> neighborFirePositions = board.neighbors(newFirefighterPosition)
+                    .stream()
+                    .filter(position -> board.getFire().getPositions().contains(position))
+                    .toList();
+
+            // Extinguish fires in neighboring positions
+            for (Position firePosition : neighborFirePositions) {
+                extinguish(firePosition, board);
+                modifiedPositions.add(firePosition);
+            }
         }
+
+        // Update the firefighter positions
         firefighterPositions = firefighterNewPositions;
-        return modifiedPosition;
+
+        return modifiedPositions;
     }
+    //modifiedPosition contient Last fire fighter positions and New Firefighterpositions with neighbor of every new firefighter