diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index e88b0e9856086cc6f53f2782175393dca6365eb6..a115fc893d72d08b8a3a977ce3a6ec251cec827c 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -19,6 +19,7 @@ public class SimulatorApplication extends javafx.application.Application {
   private static final int BOX_HEIGHT = 50;
   public static final int INITIAL_FIRE_COUNT = 3;
   public static final int INITIAL_FIREFIGHTER_COUNT = 6;
+  public static final int INITIAL_CLOUD_COUNT = 3;
 
   private Stage primaryStage;
   private Parent view;
@@ -44,7 +45,7 @@ public class SimulatorApplication extends javafx.application.Application {
     view = loader.load();
     Controller controller = loader.getController();
     controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
-            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT);
+            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT,INITIAL_CLOUD_COUNT);
   }
 
   private void showScene() {
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 25585b45bd5a53ae1857b402339c57baa28bc2e3..3dfc3b39d846385ab86d73755aa137978520975e 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -124,9 +124,9 @@ public class Controller {
   }
 
   public void initialize(int squareWidth, int squareHeight, int columnCount,
-                                int rowCount, int initialFireCount, int initialFirefighterCount) {
+                                int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloud) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
-    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount));
+    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount,initialCloud));
     repaintGrid();
   }
 
diff --git a/src/main/java/model/BoardFireFighterBehavior.java b/src/main/java/model/BoardFireFighterBehavior.java
index 13a557033ca2ef41efb2cff573d58f03c60271ce..7f610f52253e2fc30d985c08978d7203a2db9fb6 100644
--- a/src/main/java/model/BoardFireFighterBehavior.java
+++ b/src/main/java/model/BoardFireFighterBehavior.java
@@ -12,20 +12,19 @@ public class BoardFireFighterBehavior implements BoardBehavior{
     private Set<Position> firePositions;
     private final ElementFactory<FireFighter> firefighterFactory;
     private final ElementFactory<Fire> fireFactory;
+    private final ElementFactory<Cloud> cloudFactory;
     private List<Position> cloudPositions;
     private int step;
 
-    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory) {
+    public BoardFireFighterBehavior(Map<Position, List<Position>> neighbors, ElementFactory<Fire> fireFactory ,ElementFactory<FireFighter> firefighterFactory,ElementFactory<Cloud> cloudFactory) {
         this.step=0;
         this.neighbors = neighbors;
         this.firefighterFactory = firefighterFactory;
         this.fireFactory = fireFactory;
+        this.cloudFactory=cloudFactory;
     }
 
-    public void initializeElements(ElementFactory<Fire> fireFactory,
-                                   ElementFactory<FireFighter> firefighterFactory,
-                                   ElementFactory<Cloud> cloudFactory,
-                                   int rowCount, int columnCount) {
+    public void initializeElements(int rowCount, int columnCount) {
         // Feux
         firePositions = new HashSet<>();
         List<Fire> fires = fireFactory.createElements(rowCount, columnCount);
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 15587c9ec34fb8a58589d486416c7d7858d0472a..9f5486ab36768ffec4fc025a011584f89ca2ac00 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -11,11 +11,12 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
   private final Random randomGenerator = new Random();
 
-  public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount) {
+  public FirefighterBoard(int columnCount, int rowCount, int initialFireCount, int initialFirefighterCount,int initialCloud) {
     Map<Position, List<Position>> neighbors = initializeNeighbors(rowCount, columnCount);
 
     this.properties = new BoardFirefighterProperties(rowCount, columnCount);
-    this.behavior = new BoardFireFighterBehavior(neighbors,new FireFactory(randomGenerator,initialFireCount),new FirefighterFactory(randomGenerator,initialFirefighterCount));
+    this.behavior = new BoardFireFighterBehavior(neighbors,new FireFactory(randomGenerator,initialFireCount),new FirefighterFactory(randomGenerator,initialFirefighterCount),
+            new CloudFactory(randomGenerator,initialCloud));
 
     behavior.initializeElements( properties.rowCount(), properties.columnCount());
   }