diff --git a/.gradle/8.10.2/executionHistory/executionHistory.bin b/.gradle/8.10.2/executionHistory/executionHistory.bin
index 11bf550ba77e9f78efd401a6ec26338b1fac3249..0d10cd15e6aa1d0ba21cc348a2fb3c9faf15cd82 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.bin and b/.gradle/8.10.2/executionHistory/executionHistory.bin differ
diff --git a/.gradle/8.10.2/executionHistory/executionHistory.lock b/.gradle/8.10.2/executionHistory/executionHistory.lock
index dac92f57548c665f37e15c04f78feba376879cd2..dc9b958a69a79966bb17ff7689c9022c15f91339 100644
Binary files a/.gradle/8.10.2/executionHistory/executionHistory.lock and b/.gradle/8.10.2/executionHistory/executionHistory.lock differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.bin b/.gradle/8.10.2/fileHashes/fileHashes.bin
index e9fad2f6bcfd39c3b27f49abca2b0dcc20b0fac5..87310951124d22132928c8af855e06a950b81eed 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.bin and b/.gradle/8.10.2/fileHashes/fileHashes.bin differ
diff --git a/.gradle/8.10.2/fileHashes/fileHashes.lock b/.gradle/8.10.2/fileHashes/fileHashes.lock
index 26e1d0321598155df152cbf5c7712a003606b051..20309a5ed04d71b4ec90a70520da51a1b0d06329 100644
Binary files a/.gradle/8.10.2/fileHashes/fileHashes.lock and b/.gradle/8.10.2/fileHashes/fileHashes.lock differ
diff --git a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin
index 7a4b916756e0e3aa6a61e0e514fc79c039d6db72..475ab9df139928ba57d62937f467bbeed2e56065 100644
Binary files a/.gradle/8.10.2/fileHashes/resourceHashesCache.bin and b/.gradle/8.10.2/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index e5c2ce6b62b46b091c65457a8a7b7c6273c14acb..3ee9cf49c8538b4e500bb8adaf6d780e784aebb4 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index 3a34ffe9c7dbb5b1aa846a298857f775cab236f9..5a96d3a3c13b10ed04af9a938a84854c793dd986 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/model/Board.class b/build/classes/java/main/model/Board.class
deleted file mode 100644
index 38636074a072f0e4ce3549152ba24a266261d8c3..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/Board.class and /dev/null differ
diff --git a/build/classes/java/main/model/BoardBehavior.class b/build/classes/java/main/model/BoardBehavior.class
deleted file mode 100644
index 056f9a3c8591df18076ad64c8d030b1ebbf2682b..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/BoardBehavior.class and /dev/null differ
diff --git a/build/classes/java/main/model/BoardElement.class b/build/classes/java/main/model/BoardElement.class
deleted file mode 100644
index 90b50bc72887ccf13f50734ad591ce2a7ac47430..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/BoardElement.class and /dev/null differ
diff --git a/build/classes/java/main/model/BoardFireFighterBehavior.class b/build/classes/java/main/model/BoardFireFighterBehavior.class
deleted file mode 100644
index 3e74039d1db131823cc7bf55e8726d520926bf0a..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/BoardFireFighterBehavior.class and /dev/null differ
diff --git a/build/classes/java/main/model/BoardFirefighterProperties.class b/build/classes/java/main/model/BoardFirefighterProperties.class
deleted file mode 100644
index a094b5badf9a5c8b929c25141e712d65a3445892..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/BoardFirefighterProperties.class and /dev/null differ
diff --git a/build/classes/java/main/model/BoardProperties.class b/build/classes/java/main/model/BoardProperties.class
deleted file mode 100644
index 93736154cb1db5f0fd6077cdc429a64c015a59c3..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/BoardProperties.class and /dev/null differ
diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class
deleted file mode 100644
index 12744497c0b4168a756584b31df839866c40bdf5..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/Fire.class and /dev/null differ
diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class
deleted file mode 100644
index 2f20734f25cb06826f8e78ac0d44c6d1014be12f..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/FireFactory.class and /dev/null differ
diff --git a/build/classes/java/main/model/FireFighter.class b/build/classes/java/main/model/FireFighter.class
deleted file mode 100644
index 6a9fddbd22bf77ca244173120fa183fe11a127e6..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/FireFighter.class and /dev/null differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
deleted file mode 100644
index 5668462328eb03a346c50effd0ac3994bc3a02a7..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/FirefighterBoard.class and /dev/null differ
diff --git a/build/classes/java/main/model/FirefighterFactory.class b/build/classes/java/main/model/FirefighterFactory.class
deleted file mode 100644
index 920e538c1bdada9fae8840e28871963a6761dd61..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/FirefighterFactory.class and /dev/null differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index a6a40cfe8ade29066b0b07d44bd5acba8dc9c2fc..d27c87eb8e9bdbede5c5e9a1b4a9ed104e091c99 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 32501c7095444f795c4727ab1732f414ac010071..053ab13663322761d27a3b2c4bd767b0072ecf0e 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -13,6 +13,14 @@ import javafx.scene.control.ToggleGroup;
 import javafx.util.Duration;
 import javafx.util.Pair;
 import model.*;
+import model.Board.FirefighterBoard;
+import model.ExtinguishFire.Cloud;
+import model.ExtinguishFire.FireFighter;
+import model.ExtinguishFire.MotorizedFireFighter;
+import model.Obstacle.Mountain;
+import model.Obstacle.Road;
+import model.flammable.Fire;
+import model.flammable.Rocky;
 import util.Position;
 import view.Grid;
 import view.ViewElement;
diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board/Board.java
similarity index 94%
rename from src/main/java/model/Board.java
rename to src/main/java/model/Board/Board.java
index 6fe86eed823728dba8add1397072d1340d32f6bf..45d0651d0b341d1356c2f3d3c804b24939dec91c 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/model/Board/Board.java
@@ -1,9 +1,7 @@
-package model;
+package model.Board;
 
 import util.Position;
 
-import java.util.List;
-
 
 public interface Board<S>  {
     /**
diff --git a/src/main/java/model/BoardBehavior.java b/src/main/java/model/Board/BoardBehavior.java
similarity index 96%
rename from src/main/java/model/BoardBehavior.java
rename to src/main/java/model/Board/BoardBehavior.java
index 8845d2386be6498d071bdce2b5f4dd1b7d136a85..bbbd94b0f137f52252f48641ceee2c24ab5f8d50 100644
--- a/src/main/java/model/BoardBehavior.java
+++ b/src/main/java/model/Board/BoardBehavior.java
@@ -1,4 +1,4 @@
-package model;
+package model.Board;
 
 import util.Position;
 import java.util.List;
diff --git a/src/main/java/model/BoardElement.java b/src/main/java/model/Board/BoardElement.java
similarity index 79%
rename from src/main/java/model/BoardElement.java
rename to src/main/java/model/Board/BoardElement.java
index c17510824ac41bf28a02ff347205b55801c3672e..fa3edde5b7d5c92d154f70455e4e03203a3ca659 100644
--- a/src/main/java/model/BoardElement.java
+++ b/src/main/java/model/Board/BoardElement.java
@@ -1,8 +1,9 @@
-package model;
+package model.Board;
 
+import model.ModelElement;
 import util.Position;
 
-public abstract class BoardElement implements ModelElement{
+public abstract class BoardElement implements ModelElement {
     protected Position position;
 
     public BoardElement(Position position) {
diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/Board/BoardFireFighterBehavior.java
similarity index 90%
rename from src/main/java/model/BoardFireFighterBehavior.java
rename to src/main/java/model/Board/BoardFireFighterBehavior.java
index f338a758a6aa99f869db2a9a8cf83c5649c6f1c9..1f1d4679bd6e422bb71327bfb758c055d3a0ccb7 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/Board/BoardFireFighterBehavior.java
@@ -1,11 +1,21 @@
-package model;
-
+package model.Board;
+
+import model.*;
+import model.ExtinguishFire.*;
+import model.Obstacle.MountainGenerator;
+import model.Obstacle.Road;
+import model.Obstacle.Terrain;
+import model.flammable.Fire;
+import model.flammable.FireMovements;
+import model.flammable.Rocky;
 import util.Position;
 import util.TargetStrategy;
 
 import java.util.*;
 
-public class BoardFireFighterBehavior implements BoardBehavior{
+import static model.flammable.Rocky.canFirePropagate;
+
+public class BoardFireFighterBehavior implements BoardBehavior {
     private static TargetStrategy targetStrategy = new TargetStrategy();
     private static Map<Position, List<Position>> neighbors;
 
@@ -20,8 +30,8 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     static Movements motorizedMovements;
     private ElementGenerator moutainGenerator;
 
-    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory,
-                                    ElementFactory<Cloud> cloudFactory,ElementFactory<MotorizedFireFighter> motorizedFactory,ElementFactory<Rocky> rockyFactory) {
+    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory , ElementFactory<FireFighter> firefighterFactory,
+                                    ElementFactory<Cloud> cloudFactory, ElementFactory<MotorizedFireFighter> motorizedFactory, ElementFactory<Rocky> rockyFactory) {
         this.step=0;
         this.neighbors = neighbors;
         this.rockyFactory=rockyFactory;
@@ -58,6 +68,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{
         fireMovements.getPositions().remove(position);
 
 
+
     }
 
 
@@ -141,7 +152,8 @@ public class BoardFireFighterBehavior implements BoardBehavior{
         }
         if(rocky.contains(position))
         {
-            return Rocky.canFirePropagate();
+            rocky.remove(position);
+            return canFirePropagate();
         }
 
         return true;  // La position est traversable
@@ -230,4 +242,7 @@ public class BoardFireFighterBehavior implements BoardBehavior{
         return (List<Position>) motorizedMovements.getPositions();
     }
 
+    public static Movements getFireMovements() {
+        return fireMovements;
+    }
 }
diff --git a/src/main/java/model/BoardFirefighterProperties.java b/src/main/java/model/Board/BoardFirefighterProperties.java
similarity index 93%
rename from src/main/java/model/BoardFirefighterProperties.java
rename to src/main/java/model/Board/BoardFirefighterProperties.java
index 243f8ad005905c6ad027220f9bdb43a5a8720d03..8d6023feea16a2257518e2ca30d69511cddc7941 100644
--- a/src/main/java/model/BoardFirefighterProperties.java
+++ b/src/main/java/model/Board/BoardFirefighterProperties.java
@@ -1,11 +1,8 @@
-package model;
+package model.Board;
 
 import util.Position;
 
-import java.util.List;
-import java.util.Map;
-
-public class BoardFirefighterProperties implements BoardProperties{
+public class BoardFirefighterProperties implements BoardProperties {
     private final int rowCount;
     private final int columnCount;
     private final Position[][] positions;
diff --git a/src/main/java/model/BoardProperties.java b/src/main/java/model/Board/BoardProperties.java
similarity index 89%
rename from src/main/java/model/BoardProperties.java
rename to src/main/java/model/Board/BoardProperties.java
index 07ad3f7aea888f47d079d4c0d172282e5ab18843..3b5ac77860ee3f62f7fcf70bc201b965de8c96c7 100644
--- a/src/main/java/model/BoardProperties.java
+++ b/src/main/java/model/Board/BoardProperties.java
@@ -1,8 +1,4 @@
-package model;
-
-import util.Position;
-
-import java.util.List;
+package model.Board;
 
 /**
  * Interface représentant les propriétés d'un tableau générique pour la gestion de l'état.
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/Board/FirefighterBoard.java
similarity index 94%
rename from src/main/java/model/FirefighterBoard.java
rename to src/main/java/model/Board/FirefighterBoard.java
index cf8e4e0631f8cf29a6c92ba9d77fa11de177166b..f4d23f0ea695d53c7e753e776b395be1c9ae12f5 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/Board/FirefighterBoard.java
@@ -1,5 +1,13 @@
-package model;
-
+package model.Board;
+
+import model.*;
+import model.ExtinguishFire.*;
+import model.Obstacle.Mountain;
+import model.Obstacle.Road;
+import model.flammable.Fire;
+import model.flammable.FireFactory;
+import model.flammable.Rocky;
+import model.flammable.RockyFactory;
 import util.Position;
 
 import java.util.*;
diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/ExtinguishFire/Cloud.java
similarity index 82%
rename from src/main/java/model/Cloud.java
rename to src/main/java/model/ExtinguishFire/Cloud.java
index 1df253fdc1e8ad179c8febb32c8679019f9afa43..58dcff6e3d3ee76901c826d4cc634f8cc688e254 100644
--- a/src/main/java/model/Cloud.java
+++ b/src/main/java/model/ExtinguishFire/Cloud.java
@@ -1,6 +1,6 @@
-package model;
+package model.ExtinguishFire;
 
-import model.BoardElement;
+import model.Board.BoardElement;
 import util.Position;
 
 public class Cloud extends BoardElement {
diff --git a/src/main/java/model/CloudFactory.java b/src/main/java/model/ExtinguishFire/CloudFactory.java
similarity index 91%
rename from src/main/java/model/CloudFactory.java
rename to src/main/java/model/ExtinguishFire/CloudFactory.java
index 49fdd5bc527c9f4b518a4908b11e6083bc975be5..29491b356687a4bd9e5b247f56b31eca4cc79691 100644
--- a/src/main/java/model/CloudFactory.java
+++ b/src/main/java/model/ExtinguishFire/CloudFactory.java
@@ -1,5 +1,7 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.PositionGenerator;
 import util.Position;
 
 import java.util.ArrayList;
diff --git a/src/main/java/model/CloudMovements.java b/src/main/java/model/ExtinguishFire/CloudMovements.java
similarity index 90%
rename from src/main/java/model/CloudMovements.java
rename to src/main/java/model/ExtinguishFire/CloudMovements.java
index 849db9f5b5ffcd840c23c83cde35088a6ae2c8c2..c5269e8f7906f987db955b50f2c57a3c3d0729ff 100644
--- a/src/main/java/model/CloudMovements.java
+++ b/src/main/java/model/ExtinguishFire/CloudMovements.java
@@ -1,12 +1,14 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.Movements;
 import util.Position;
 
 import java.util.*;
 
-import static model.BoardFireFighterBehavior.*;
+import static model.Board.BoardFireFighterBehavior.*;
 
-public class CloudMovements implements Movements{
+public class CloudMovements implements Movements {
     private  List<Position> cloudPositions;
     private final ElementFactory<Cloud> cloudFactory;
      public CloudMovements(ElementFactory<Cloud> cloudFactory) {
@@ -30,7 +32,7 @@ public class CloudMovements implements Movements{
         List<Position> newCloudPositions = new ArrayList<>();
 
         // Copier les positions actuelles des feux pour éviter les incohérences pendant l'itération
-        Set<Position> firePositions = new HashSet<>(fireMovements.getPositions());
+        Set<Position> firePositions = new HashSet<>(getFireMovements().getPositions());
 
         for (Position cloudPosition : cloudPositions) {
             // Déplacement aléatoire parmi les voisins
diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java
similarity index 71%
rename from src/main/java/model/FireFighter.java
rename to src/main/java/model/ExtinguishFire/FireFighter.java
index 17c1846bcb312629f4744581edfdb220736a6703..611544d5df8c19a3a802becea524a799a3490d0f 100644
--- a/src/main/java/model/FireFighter.java
+++ b/src/main/java/model/ExtinguishFire/FireFighter.java
@@ -1,8 +1,9 @@
-package model;
+package model.ExtinguishFire;
 
+import model.Board.BoardElement;
 import util.Position;
 
-public class FireFighter extends BoardElement{
+public class FireFighter extends BoardElement {
     public FireFighter(Position position) {
         super(position);
     }
diff --git a/src/main/java/model/FireFighterMovements.java b/src/main/java/model/ExtinguishFire/FireFighterMovements.java
similarity index 87%
rename from src/main/java/model/FireFighterMovements.java
rename to src/main/java/model/ExtinguishFire/FireFighterMovements.java
index 6e1ded828c1572cde2a440e92f50659bd8e0412f..91c2f781abfc382acc7ec78b52f3ba3872b99039 100644
--- a/src/main/java/model/FireFighterMovements.java
+++ b/src/main/java/model/ExtinguishFire/FireFighterMovements.java
@@ -1,5 +1,7 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.Movements;
 import util.Position;
 
 import java.util.ArrayList;
@@ -7,9 +9,9 @@ import java.util.Collection;
 import java.util.List;
 import java.util.Set;
 
-import static model.BoardFireFighterBehavior.*;
+import static model.Board.BoardFireFighterBehavior.*;
 
-public class FireFighterMovements implements Movements{
+public class FireFighterMovements implements Movements {
     private final ElementFactory<FireFighter> firefighterFactory;
     private  List<Position> firefighterPositions;
     public FireFighterMovements(ElementFactory<FireFighter> firefighterFactory) {
@@ -26,10 +28,10 @@ public class FireFighterMovements implements Movements{
 
         for (Position firefighterPosition : firefighterPositions) {
             // Calcul de la position vers laquelle le pompier devrait se déplacer
-            Position newFirefighterPosition =getTargetStrategy().neighborClosestToTarget(firefighterPosition, fireMovements.getPositions(), getNeighbors());
+            Position newFirefighterPosition =getTargetStrategy().neighborClosestToTarget(firefighterPosition, getFireMovements().getPositions(), getNeighbors());
 
             // Vérification si la position cible est valide pour le mouvement
-            if (canMoveTo(newFirefighterPosition, (Set<Position>) fireMovements.getPositions(), firefighterPositions)) {
+            if (canMoveTo(newFirefighterPosition, (Set<Position>) getFireMovements().getPositions(), firefighterPositions)) {
                 // Si le déplacement est valide, on met à jour la position du pompier
                 newFirefighterPositions.add(newFirefighterPosition);
 
@@ -40,7 +42,7 @@ public class FireFighterMovements implements Movements{
 
                 // Vérification des voisins et extinction des feux voisins
                 List<Position> neighborFirePositions = getNeighbors().get(newFirefighterPosition).stream()
-                        .filter(fireMovements.getPositions()::contains).toList();
+                        .filter(getFireMovements().getPositions()::contains).toList();
 
                 // Log pour débogage
                 System.out.println("Pompiers se déplacent de " + firefighterPosition + " vers " + newFirefighterPosition);
diff --git a/src/main/java/model/FirefighterFactory.java b/src/main/java/model/ExtinguishFire/FirefighterFactory.java
similarity index 89%
rename from src/main/java/model/FirefighterFactory.java
rename to src/main/java/model/ExtinguishFire/FirefighterFactory.java
index acb12afa7950578b0bcfa6c4714edce39d83d86f..b45e236b24c34660e9c729a81a3aeca73d55c673 100644
--- a/src/main/java/model/FirefighterFactory.java
+++ b/src/main/java/model/ExtinguishFire/FirefighterFactory.java
@@ -1,12 +1,14 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.PositionGenerator;
 import util.Position;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class FirefighterFactory implements ElementFactory<FireFighter>, PositionGenerator{
+public class FirefighterFactory implements ElementFactory<FireFighter>, PositionGenerator {
     private final Random random;
     private int count;
 
diff --git a/src/main/java/model/MotorizedFactory.java b/src/main/java/model/ExtinguishFire/MotorizedFactory.java
similarity index 89%
rename from src/main/java/model/MotorizedFactory.java
rename to src/main/java/model/ExtinguishFire/MotorizedFactory.java
index 326a5c193f53c436d5497b22fa23048cfadac3d1..e126fd1a7db5a1f11842e9d5f873089812ef26f1 100644
--- a/src/main/java/model/MotorizedFactory.java
+++ b/src/main/java/model/ExtinguishFire/MotorizedFactory.java
@@ -1,12 +1,14 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.PositionGenerator;
 import util.Position;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class MotorizedFactory implements ElementFactory<MotorizedFireFighter>, PositionGenerator{
+public class MotorizedFactory implements ElementFactory<MotorizedFireFighter>, PositionGenerator {
     private final Random random;
     private int count;
 
diff --git a/src/main/java/model/MotorizedFireFighter.java b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
similarity index 91%
rename from src/main/java/model/MotorizedFireFighter.java
rename to src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
index 4a1fe7ef57d1c180d5ce890c22ca813730664152..8c76873729bb388bcdef01cdc1de9abc72d9f9ed 100644
--- a/src/main/java/model/MotorizedFireFighter.java
+++ b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
@@ -1,11 +1,12 @@
-package model;
+package model.ExtinguishFire;
 
+import model.Board.BoardElement;
 import util.Position;
 import util.TargetStrategy;
 
 import java.util.*;
 
-public class MotorizedFireFighter extends BoardElement{
+public class MotorizedFireFighter extends BoardElement {
     private final TargetStrategy targetStrategy = new TargetStrategy();
     public MotorizedFireFighter(Position position) {
         super(position);
diff --git a/src/main/java/model/MotorizedMovements.java b/src/main/java/model/ExtinguishFire/MotorizedMovements.java
similarity index 88%
rename from src/main/java/model/MotorizedMovements.java
rename to src/main/java/model/ExtinguishFire/MotorizedMovements.java
index a5be9dec1000206410ab16de6106412fd1132b54..f486f19eb065d9f6d9d6a32bca94ba7ced46cea5 100644
--- a/src/main/java/model/MotorizedMovements.java
+++ b/src/main/java/model/ExtinguishFire/MotorizedMovements.java
@@ -1,15 +1,17 @@
-package model;
+package model.ExtinguishFire;
 
+import model.ElementFactory;
+import model.Movements;
 import util.Position;
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.List;
 
-import static model.BoardFireFighterBehavior.*;
+import static model.Board.BoardFireFighterBehavior.*;
+import static model.flammable.FireMovements.*;
 
-public class MotorizedMovements implements Movements{
+public class MotorizedMovements implements Movements {
     private final ElementFactory<MotorizedFireFighter> motorizedFactory;
     private List<Position> motorizedFighters;
 
@@ -32,7 +34,7 @@ public class MotorizedMovements implements Movements{
             }
 
             // Étape 1 : Calcul du premier déplacement
-            Position firstStep = getTargetStrategy().neighborClosestToTarget(currentPosition, fireMovements.getPositions(), getNeighbors());
+            Position firstStep = getTargetStrategy().neighborClosestToTarget(currentPosition, getFireMovements().getPositions(), getNeighbors());
             if (firstStep == null || !getNeighbors().containsKey(firstStep)) {
                 // Aucun déplacement possible, rester sur place
                 System.out.println("Pas de première étape possible pour : " + currentPosition);
@@ -41,7 +43,7 @@ public class MotorizedMovements implements Movements{
             }
 
             // Étape 2 : Calcul du deuxième déplacement
-            Position secondStep = getTargetStrategy().neighborClosestToTarget(firstStep, fireMovements.getPositions(), getNeighbors());
+            Position secondStep = getTargetStrategy().neighborClosestToTarget(firstStep, getFireMovements().getPositions(), getNeighbors());
             Position finalPosition = (secondStep != null && getNeighbors().containsKey(secondStep)) ? secondStep : firstStep;
 
             // Ajout de la position finale aux nouvelles positions
diff --git a/src/main/java/model/Mountain.java b/src/main/java/model/Obstacle/Mountain.java
similarity index 91%
rename from src/main/java/model/Mountain.java
rename to src/main/java/model/Obstacle/Mountain.java
index 4abca344ba224accebc1d398c234f69b13acdc62..5dfe64a5e9cb51d3a8519fe2ec8c7a7db71414a3 100644
--- a/src/main/java/model/Mountain.java
+++ b/src/main/java/model/Obstacle/Mountain.java
@@ -1,5 +1,6 @@
-package model;
+package model.Obstacle;
 
+import model.Board.BoardElement;
 import util.Position;
 
 public class Mountain extends BoardElement implements Terrain {
diff --git a/src/main/java/model/MountainGenerator.java b/src/main/java/model/Obstacle/MountainGenerator.java
similarity index 91%
rename from src/main/java/model/MountainGenerator.java
rename to src/main/java/model/Obstacle/MountainGenerator.java
index dd98994fd367290a380a1e7a0f1341eedf53bfd6..9c486ef9f11084faae681c8a59d31aa7b6a32b88 100644
--- a/src/main/java/model/MountainGenerator.java
+++ b/src/main/java/model/Obstacle/MountainGenerator.java
@@ -1,12 +1,13 @@
-package model;
+package model.Obstacle;
 
+import model.ElementGenerator;
 import util.Position;
 
 import java.util.Random;
 
-import static model.BoardFireFighterBehavior.getTerrainMap;
+import static model.Board.BoardFireFighterBehavior.getTerrainMap;
 
-public class MountainGenerator implements ElementGenerator{
+public class MountainGenerator implements ElementGenerator {
     @Override
     public void generateElement(int rowCount, int columnCount) {
         Random random = new Random();
diff --git a/src/main/java/model/Road.java b/src/main/java/model/Obstacle/Road.java
similarity index 78%
rename from src/main/java/model/Road.java
rename to src/main/java/model/Obstacle/Road.java
index ee3d8d5774774bee5c5df887bb687e717064c55c..c2c91a5f1f9e072cbd545cb86f61ad473c56165a 100644
--- a/src/main/java/model/Road.java
+++ b/src/main/java/model/Obstacle/Road.java
@@ -1,8 +1,9 @@
-package model;
+package model.Obstacle;
 
+import model.Board.BoardElement;
 import util.Position;
 
-public class Road extends BoardElement implements Terrain{
+public class Road extends BoardElement implements Terrain {
     public Road(Position position) {
         super(position);
     }
diff --git a/src/main/java/model/Terrain.java b/src/main/java/model/Obstacle/Terrain.java
similarity index 82%
rename from src/main/java/model/Terrain.java
rename to src/main/java/model/Obstacle/Terrain.java
index bc195166771072bfc1dbf44327a6b35973b4a078..9ea3e1634b006714fc254a222e8b5122d1830477 100644
--- a/src/main/java/model/Terrain.java
+++ b/src/main/java/model/Obstacle/Terrain.java
@@ -1,4 +1,4 @@
-package model;
+package model.Obstacle;
 
 
 public interface Terrain {
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/flammable/Fire.java
similarity index 75%
rename from src/main/java/model/Fire.java
rename to src/main/java/model/flammable/Fire.java
index 388e294c81231ad175d7d6ffe18df8c174fa39d7..8a909c29af5f3bce6e19a0b7bfb0272de6148c74 100644
--- a/src/main/java/model/Fire.java
+++ b/src/main/java/model/flammable/Fire.java
@@ -1,8 +1,9 @@
-package model;
+package model.flammable;
 
+import model.Board.BoardElement;
 import util.Position;
 
-public class Fire  extends BoardElement{
+public class Fire  extends BoardElement {
     public Fire(Position position) {
         super(position);
     }
diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/flammable/FireFactory.java
similarity index 89%
rename from src/main/java/model/FireFactory.java
rename to src/main/java/model/flammable/FireFactory.java
index 7bcd71402e0f3a98f416a1b558b394e102ceba91..44870918a5d16be0bd7cbc8a34cf10dd68e60adb 100644
--- a/src/main/java/model/FireFactory.java
+++ b/src/main/java/model/flammable/FireFactory.java
@@ -1,12 +1,14 @@
-package model;
+package model.flammable;
 
+import model.ElementFactory;
+import model.PositionGenerator;
 import util.Position;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class FireFactory implements ElementFactory<Fire>,PositionGenerator{
+public class FireFactory implements ElementFactory<Fire>, PositionGenerator {
     private final Random random;
     private int count;
 
diff --git a/src/main/java/model/FireMovements.java b/src/main/java/model/flammable/FireMovements.java
similarity index 91%
rename from src/main/java/model/FireMovements.java
rename to src/main/java/model/flammable/FireMovements.java
index 9e4afd72fee788d196a2efc081d46a25546d3291..dc5c1231aa15ef3c61810da41c7ca4a1896dacc7 100644
--- a/src/main/java/model/FireMovements.java
+++ b/src/main/java/model/flammable/FireMovements.java
@@ -1,12 +1,14 @@
-package model;
+package model.flammable;
 
+import model.ElementFactory;
+import model.Movements;
 import util.Position;
 
 import java.util.*;
 
-import static model.BoardFireFighterBehavior.*;
+import static model.Board.BoardFireFighterBehavior.*;
 
-public class FireMovements implements Movements{
+public class FireMovements implements Movements {
     private final ElementFactory<Fire> fireFactory;
     private Set<Position> firePositions;
 
diff --git a/src/main/java/model/Rocky.java b/src/main/java/model/flammable/Rocky.java
similarity index 79%
rename from src/main/java/model/Rocky.java
rename to src/main/java/model/flammable/Rocky.java
index 099fabac4708e5e6ebf7b6acce1c117aa2dd05eb..97624842759a6988d00f058c72d315dc67de07f8 100644
--- a/src/main/java/model/Rocky.java
+++ b/src/main/java/model/flammable/Rocky.java
@@ -1,8 +1,9 @@
-package model;
+package model.flammable;
 
+import model.Board.BoardElement;
 import util.Position;
 
-public class Rocky extends BoardElement{
+public class Rocky extends BoardElement {
     private  static int firePropagationCounter;
     public Rocky(Position position) {
         super(position);
@@ -27,7 +28,4 @@ public class Rocky extends BoardElement{
         return null;
     }
 
-    public static int getFirePropagationCounter() {
-        return firePropagationCounter;
-    }
 }
diff --git a/src/main/java/model/RockyFactory.java b/src/main/java/model/flammable/RockyFactory.java
similarity index 84%
rename from src/main/java/model/RockyFactory.java
rename to src/main/java/model/flammable/RockyFactory.java
index f1f323f7e620babf91dfd76a9911438d2f46f86b..f4937b9ea64a867c3e7808bd18dd6dfea321089b 100644
--- a/src/main/java/model/RockyFactory.java
+++ b/src/main/java/model/flammable/RockyFactory.java
@@ -1,12 +1,14 @@
-package model;
+package model.flammable;
 
+import model.ElementFactory;
+import model.PositionGenerator;
 import util.Position;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class RockyFactory implements ElementFactory<Rocky>,PositionGenerator{
+public class RockyFactory implements ElementFactory<Rocky>, PositionGenerator {
     private final Random random;
     private int count;