diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index ed586dc271d54c3c9a83e659492a3eafe316ad63..e7c14c967db39f34f8355a4f2dfb8182b8d24ed8 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -19,6 +19,8 @@ public class SimulatorApplication extends javafx.application.Application {
   private static final int BOX_HEIGHT = 50;
   public static final int INITIAL_FIRE_COUNT = 15;
   public static final int INITIAL_FIREFIGHTER_COUNT = 10;
+  public static final int INITIAL_CLOUD_COUNT = 1;
+
 
   private Stage primaryStage;
   private Parent view;
@@ -44,7 +46,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 2a60897c6eb8ba847cb8589840c16a0f175ce0a3..d31f549065a0f4187e222364a6025766ee8c27d1 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 initialCloudCount) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
-    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount));
+    this.setModel(new FirefighterBoard(columnCount, rowCount, initialFireCount, initialFirefighterCount,initialCloudCount));
     repaintGrid();
   }
 
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 43f0d1821927a38e3f481a5d9b1b9018d2e2ca73..224f0ba0ccb6858f742b74749383856de42cd3b9 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -11,24 +11,26 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   private final int rowCount;
   private final int initialFireCount;
   private final int initialFirefighterCount;
+  private final int initialCloudCount;
   private final TargetStrategy targetStrategy = new TargetStrategy();
   private List<FireFighter> firefighters;
   private Map<Position, Fire> fires = new HashMap<>();
+  private List<Cloud> clouds;
   private final Map<Position, List<Position>> neighbors = new HashMap<>();
   private final Position[][] positions;
   private int step = 0;
   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 initialCloudCount) {
     this.columnCount = columnCount;
     this.rowCount = rowCount;
     this.positions = new Position[rowCount][columnCount];
 
-    // Initialize positions and neighbors
     initializePositionsAndNeighbors();
 
     this.initialFireCount = initialFireCount;
     this.initialFirefighterCount = initialFirefighterCount;
+    this.initialCloudCount = initialCloudCount;
     initializeElements();
   }
 
@@ -57,6 +59,7 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
 
   public void initializeElements() {
     firefighters = new ArrayList<>();
+    clouds = new ArrayList<>();
     fires.clear();
 
     for (int index = 0; index < initialFireCount; index++) {
diff --git a/src/test/java/model/FirefighterBoardTest.java b/src/test/java/model/FirefighterBoardTest.java
index 25cc8dbca8acea698879df68a5006a179f281ecc..5e6540f1ab46921aed249bbc44f71e5eef939a9e 100644
--- a/src/test/java/model/FirefighterBoardTest.java
+++ b/src/test/java/model/FirefighterBoardTest.java
@@ -10,17 +10,17 @@ import static org.assertj.core.api.Assertions.*;
 public class FirefighterBoardTest {
   @Test
   void testColumnCount(){
-    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1);
     assertThat(board.columnCount()).isEqualTo(20);
   }
   @Test
   void testRowCount(){
-    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1);
     assertThat(board.rowCount()).isEqualTo(10);
   }
   @Test
   void testStepNumber(){
-    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3);
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 1, 3,1);
     for(int index = 0; index < 10; index++){
       assertThat(board.stepNumber()).isEqualTo(index);
       board.updateToNextGeneration();
@@ -29,7 +29,7 @@ public class FirefighterBoardTest {
   }
   @Test
   void testGetState_afterSet(){
-    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0);
+    Board<List<ModelElement>> board = new FirefighterBoard(20, 10, 0, 0,1);
     Position position = new Position(1,2);
     assertThat(board.getState(position)).isEmpty();
     board.setState(List.of(ModelElement.FIRE), position);