diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index 81b5312ec69c603ece8f764c927c12278b26d67d..f566d0aed52bf3de784fee4fc6c2202dde008dd2 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 fed675b3db9f36ef7395a0a5ffb336450d035f1c..b40c2038d7a08e222a9a7f42efbb97a641e2f7bd 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 3fa260536691562807ef07d92d2ccec3d636df02..fd8277fe82bb31de9e13670633c4083078e4ec89 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 a18dca04232dce609dccbc8459afd89d3026570e..96fa37fbb2ec393380611cf3004999ce72d2130f 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 3586e918043481013d80b92e993f2d4df464a23b..cd9c8b06f0cc4170c7dfb0c7e96412680139faee 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 19ae3ed2cd9f77999e0e183da6dfbecafe3f7794..5eaf3da50e8c5278410f413566655ae7dcad49b9 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 66b61460c12daabc04660b12d21a0c7ec81e4a0b..ddecbd9dd1debc0f290f449c8d48ca58af807e02 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 61fdfb6ad7742f6dad2de77278fbcb0877a3ea33..f8cb187624ffbb26d41258e3922aa23b160b14df 100644
Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ
diff --git a/build/classes/java/main/controller/Controller.class b/build/classes/java/main/controller/Controller.class
index d9275d02435beb2bc5c3fbb3c292ba1880c7deec..98ccf5787e8028794c9dcde0bc8d6b10007f2ab9 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/Builder/GameBuilder.class b/build/classes/java/main/model/Builder/GameBuilder.class
index 1a08e360345d3bbfdd8b1a2bc287f17d1c4713ed..daa37805233ef32cff1cb5f8236a39e129f288de 100644
Binary files a/build/classes/java/main/model/Builder/GameBuilder.class and b/build/classes/java/main/model/Builder/GameBuilder.class differ
diff --git a/build/classes/java/main/model/ExtinguishFire/Cloud.class b/build/classes/java/main/model/ExtinguishFire/Cloud.class
index 5e1d4f55b67a31289f5bc99f64b1dee2a6591790..c1ac782b5f46bd7f37d2c4881517a34968693188 100644
Binary files a/build/classes/java/main/model/ExtinguishFire/Cloud.class and b/build/classes/java/main/model/ExtinguishFire/Cloud.class differ
diff --git a/build/classes/java/main/model/ExtinguishFire/ExtinguishFire.class b/build/classes/java/main/model/ExtinguishFire/ExtinguishFire.class
deleted file mode 100644
index 567d4a02a156b9d882a255fecd3f2f6fec4a11ed..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/ExtinguishFire/ExtinguishFire.class and /dev/null differ
diff --git a/build/classes/java/main/model/ExtinguishFire/FireFighter.class b/build/classes/java/main/model/ExtinguishFire/FireFighter.class
index 07d369a4f57b4eda880b4f6f1e31137ffe0f6a51..e5012f6d28881d7d171c7bdeae973cc76e0c994c 100644
Binary files a/build/classes/java/main/model/ExtinguishFire/FireFighter.class and b/build/classes/java/main/model/ExtinguishFire/FireFighter.class differ
diff --git a/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class b/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class
index e3a993901cb8aa5f750a56cce948787688ea3a97..7a3633c64f4abb59132f6defb8834ff76bd4328c 100644
Binary files a/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class and b/build/classes/java/main/model/ExtinguishFire/MotorizedFireFighter.class differ
diff --git a/build/classes/java/main/model/Flammable/Fire.class b/build/classes/java/main/model/Flammable/Fire.class
index 73be5d07584eaf0ff723d882b793f59d01bd67d8..2abe65e01501600b8be246ec1309fd52be8e240e 100644
Binary files a/build/classes/java/main/model/Flammable/Fire.class and b/build/classes/java/main/model/Flammable/Fire.class differ
diff --git a/build/classes/java/main/model/Flammable/Flammable.class b/build/classes/java/main/model/Flammable/Flammable.class
deleted file mode 100644
index 91181ac215dd52d55daf7d5430d885160fda1cd7..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/model/Flammable/Flammable.class and /dev/null differ
diff --git a/build/classes/java/main/model/GameBoard.class b/build/classes/java/main/model/GameBoard.class
index 61b17d77ed4e0ac5b07b669538bb7fffc413badb..4707bcbed7e4df42d26cf1253c962fde60af02f3 100644
Binary files a/build/classes/java/main/model/GameBoard.class and b/build/classes/java/main/model/GameBoard.class differ
diff --git a/build/classes/java/main/model/Obstacle/Mountain.class b/build/classes/java/main/model/Obstacle/Mountain.class
index 56c789bda54924d819ddd2b37cfb68833d8c906b..ae11d7286c4c24792a71f92ca96b264da36693fa 100644
Binary files a/build/classes/java/main/model/Obstacle/Mountain.class and b/build/classes/java/main/model/Obstacle/Mountain.class differ
diff --git a/build/classes/java/main/model/Obstacle/Road.class b/build/classes/java/main/model/Obstacle/Road.class
index 023bf7fdd61ce631dfb5681682090ef8f651f5f8..7cd384b65e4f170977907646f5f16002041872ed 100644
Binary files a/build/classes/java/main/model/Obstacle/Road.class and b/build/classes/java/main/model/Obstacle/Road.class differ
diff --git a/build/classes/java/main/model/Visitor/FireFinder.class b/build/classes/java/main/model/Visitor/FireFinder.class
index 3eee0b6a9e0b6ef841b3a41e019f5871a34211a8..1f45323b4f6e4dd56ab5d718c3c913512cab99d3 100644
Binary files a/build/classes/java/main/model/Visitor/FireFinder.class and b/build/classes/java/main/model/Visitor/FireFinder.class differ
diff --git a/build/classes/java/main/view/FirefighterGrid.class b/build/classes/java/main/view/FirefighterGrid.class
index 22fe36e949c5405790d75ce97f546e9616678c9a..ed74c3d24b422e79a8b2412f54e794aed2a40b26 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/tmp/compileJava/compileTransaction/stash-dir/Cloud.class.uniqueId20 b/build/tmp/compileJava/compileTransaction/stash-dir/Cloud.class.uniqueId20
index 5e1d4f55b67a31289f5bc99f64b1dee2a6591790..2256a7e2ca817fb4f525a7e510a7f8eea8efd504 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Cloud.class.uniqueId20 and b/build/tmp/compileJava/compileTransaction/stash-dir/Cloud.class.uniqueId20 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId11 b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId11
index d9275d02435beb2bc5c3fbb3c292ba1880c7deec..98ccf5787e8028794c9dcde0bc8d6b10007f2ab9 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId11 and b/build/tmp/compileJava/compileTransaction/stash-dir/Controller.class.uniqueId11 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFire.class.uniqueId2 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFire.class.uniqueId2
deleted file mode 100644
index d585247000612891952094f4d0021748b654e35b..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFire.class.uniqueId2 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFirefighter.class.uniqueId6 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFirefighter.class.uniqueId6
deleted file mode 100644
index cacfa08ef9c97566c3144361ab37d167076744c3..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByFirefighter.class.uniqueId6 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByRockery.class.uniqueId5 b/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByRockery.class.uniqueId5
deleted file mode 100644
index 51580bc47219198caa4742ea9d4fec76e08b00d2..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/CrossableByRockery.class.uniqueId5 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0 b/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0
deleted file mode 100644
index 567d4a02a156b9d882a255fecd3f2f6fec4a11ed..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/ExtinguishFire.class.uniqueId0 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId18 b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId18
index 592ff7207dde613f15cbd4bcd3eb26f8fa74002f..d6224bfde1cc1b9ed9565103382b8dc093a773a0 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId18 and b/build/tmp/compileJava/compileTransaction/stash-dir/Fire.class.uniqueId18 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId3 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId3
deleted file mode 100644
index 07d369a4f57b4eda880b4f6f1e31137ffe0f6a51..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFighter.class.uniqueId3 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId15 b/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId15
deleted file mode 100644
index 1f45323b4f6e4dd56ab5d718c3c913512cab99d3..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FireFinder.class.uniqueId15 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId8 b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId8
index 22fe36e949c5405790d75ce97f546e9616678c9a..ed74c3d24b422e79a8b2412f54e794aed2a40b26 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId8 and b/build/tmp/compileJava/compileTransaction/stash-dir/FirefighterGrid.class.uniqueId8 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId13 b/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId13
deleted file mode 100644
index 91181ac215dd52d55daf7d5430d885160fda1cd7..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Flammable.class.uniqueId13 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId21 b/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId21
index 61b17d77ed4e0ac5b07b669538bb7fffc413badb..30dc7c9cc4bb6ce1ad75865c2025651d64289c2b 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId21 and b/build/tmp/compileJava/compileTransaction/stash-dir/GameBoard.class.uniqueId21 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/GameBuilder.class.uniqueId22 b/build/tmp/compileJava/compileTransaction/stash-dir/GameBuilder.class.uniqueId22
index 1a08e360345d3bbfdd8b1a2bc287f17d1c4713ed..daa37805233ef32cff1cb5f8236a39e129f288de 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/GameBuilder.class.uniqueId22 and b/build/tmp/compileJava/compileTransaction/stash-dir/GameBuilder.class.uniqueId22 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/MotorizedFireFighter.class.uniqueId25 b/build/tmp/compileJava/compileTransaction/stash-dir/MotorizedFireFighter.class.uniqueId25
index e3a993901cb8aa5f750a56cce948787688ea3a97..7d8817e94bda0cd8245de773217e48c39e5d2108 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/MotorizedFireFighter.class.uniqueId25 and b/build/tmp/compileJava/compileTransaction/stash-dir/MotorizedFireFighter.class.uniqueId25 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Mountain.class.uniqueId26 b/build/tmp/compileJava/compileTransaction/stash-dir/Mountain.class.uniqueId26
index 56c789bda54924d819ddd2b37cfb68833d8c906b..5013ecbf5a932a3fdeb6999d3282c7cade0dcaa7 100644
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Mountain.class.uniqueId26 and b/build/tmp/compileJava/compileTransaction/stash-dir/Mountain.class.uniqueId26 differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Road.class.uniqueId7 b/build/tmp/compileJava/compileTransaction/stash-dir/Road.class.uniqueId7
deleted file mode 100644
index 023bf7fdd61ce631dfb5681682090ef8f651f5f8..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Road.class.uniqueId7 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/Rockery.class.uniqueId14 b/build/tmp/compileJava/compileTransaction/stash-dir/Rockery.class.uniqueId14
deleted file mode 100644
index 1b8e6d4f410b9c144b5ea91b8c2b5f2ec3c4fdde..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/Rockery.class.uniqueId14 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/RockeryFinder.class.uniqueId1 b/build/tmp/compileJava/compileTransaction/stash-dir/RockeryFinder.class.uniqueId1
deleted file mode 100644
index 4a8091d921e39369ed2f732abeb6aae933f6b014..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/RockeryFinder.class.uniqueId1 and /dev/null differ
diff --git a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId4 b/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId4
deleted file mode 100644
index 228b8be064ecf35c69bb788937ce7ff8ab50174e..0000000000000000000000000000000000000000
Binary files a/build/tmp/compileJava/compileTransaction/stash-dir/module-info.class.uniqueId4 and /dev/null differ
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index c10c7ed60a775b507c4b81b1b81e11d626881ef2..4af7b5f944fed88cd680642b32492c3734ddb34c 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/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index 0ff42af2cb55da64fb072e87a0f0dce4aaab89be..e6a5de826c64eccf5c562eba3a0b27d0f59b0bf3 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -23,6 +23,7 @@ public class SimulatorApplication extends javafx.application.Application {
   public static final int INITIAL_MOTORIZEDFIREFIGHTER_COUNT = 2;
   public static final int INITIAL_MOUNTAIN_COUNT = 15;
   public static final int INITIAL_ROAD_COUNT = 10;
+  public static final int INITIAL_ROCKERY_COUNT = 20;
 
   private Stage primaryStage;
   private Parent view;
@@ -48,7 +49,7 @@ public class SimulatorApplication extends javafx.application.Application {
     view = loader.load();
     Controller controller = loader.getController();
     controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT,
-            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT,INITIAL_MOUNTAIN_COUNT,INITIAL_ROAD_COUNT);
+            INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT,INITIAL_MOTORIZEDFIREFIGHTER_COUNT,INITIAL_MOUNTAIN_COUNT,INITIAL_ROAD_COUNT,INITIAL_ROCKERY_COUNT);
   }
 
   private void showScene() {
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 84d8c5e8444272d4befdf4bc615ef1ba0019ca37..9b077cc65fc9479088f4d7ff2c92bbc96e657df2 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -111,9 +111,9 @@ public class Controller {
 
   public void initialize(int squareWidth, int squareHeight, int columnCount, int rowCount, int initialFireCount,
                          int initialFirefighterCount,int initialCloudCount,
-                         int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount ) {
+                         int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount ,int initialRockeryCount  ) {
     grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
-    board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount,initialMountainCount,initialRoadCount);
+    board = new GameBoard(rowCount,columnCount,initialFireCount,initialFirefighterCount,initialCloudCount,initialMotorizedFireFighterCount,initialMountainCount,initialRoadCount,initialRockeryCount);
     board.initializeElements();
     repaintGrid();
   }
diff --git a/src/main/java/model/Builder/GameBuilder.java b/src/main/java/model/Builder/GameBuilder.java
index 840dc3e488f158412055c89ec6a36fb9d1a83f38..e27708ba107a1158a54802fae9fb90e5bf600e45 100644
--- a/src/main/java/model/Builder/GameBuilder.java
+++ b/src/main/java/model/Builder/GameBuilder.java
@@ -65,18 +65,12 @@ public class GameBuilder implements IGameBuilder {
         for(int i=0;i<clouds;i++) {
             Cloud cloud=new Cloud(Color.DARKCYAN);
             cloud.initialize();
-        }/*
-        for(int i=0;i<mountains;i++) { ///la meme chose ici.
-            Mountain mountain=new Mountain(Color.BROWN);
-            mountain.initialize();
         }
-
-
         for(int i=0;i<roads;i++) {
             Road road=new Road(Color.GRAY);
             road.initialize();
-        }*/
-        for(int i=0;i<15;i++) {
+        }
+        for(int i=0;i<rockerys;i++) {
             Rockery rockery=new Rockery( Color.rgb(85, 107, 47));
             rockery.initialize();
         }
@@ -92,6 +86,10 @@ public class GameBuilder implements IGameBuilder {
             FireFighter fireFighter=new FireFighter(Color.BLUE);
             fireFighter.initialize();
         }
+        for(int i=0;i<mountains;i++) {
+            Mountain mountain=new Mountain(Color.BROWN);
+            mountain.initialize();
+        }
     }
 
 }
\ No newline at end of file
diff --git a/src/main/java/model/ExtinguishFire/Cloud.java b/src/main/java/model/ExtinguishFire/Cloud.java
index e3dd9f80c756d8882aac28b5b7ec14ea58ca9235..8584ba4625aa6fccce0d6bf6d83d8f74eb9dbe2a 100644
--- a/src/main/java/model/ExtinguishFire/Cloud.java
+++ b/src/main/java/model/ExtinguishFire/Cloud.java
@@ -12,7 +12,7 @@ import java.util.*;
 import static model.GameBoard.elementPosition;
 import static model.GameBoard.randomPosition;
 
-public class Cloud implements ExtinguishFire{
+public class Cloud implements BoardElement{
 
     private final Color color;
 
diff --git a/src/main/java/model/ExtinguishFire/ExtinguishFire.java b/src/main/java/model/ExtinguishFire/ExtinguishFire.java
deleted file mode 100644
index c65c649b5c27c7a080feb45d9ea25e7f98962907..0000000000000000000000000000000000000000
--- a/src/main/java/model/ExtinguishFire/ExtinguishFire.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package model.ExtinguishFire;
-
-import model.BoardElement;
-import model.GameBoard;
-import util.Position;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public interface ExtinguishFire extends BoardElement {
-
-    //void update(GameBoard gameBoard , Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition);
-
-}
diff --git a/src/main/java/model/ExtinguishFire/FireFighter.java b/src/main/java/model/ExtinguishFire/FireFighter.java
index f244b60b1c23b4af1d1a8d268881daadaee47f8d..6c1b688ca47147bf2f332e471103075609002264 100644
--- a/src/main/java/model/ExtinguishFire/FireFighter.java
+++ b/src/main/java/model/ExtinguishFire/FireFighter.java
@@ -8,7 +8,6 @@ import util.Position;
 
 import java.util.*;
 
-
 public class FireFighter extends FireFighters {
     private final Color color;
 
@@ -25,33 +24,28 @@ public class FireFighter extends FireFighters {
         return visitor.visit(this);
     }
 
-    public void initialize() {
-        super.initialize();
-    }
-    public void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newFirefighterPosition, ArrayList<Position> extinguishPosition, List<Position> firePositions, GameBoard gameBoard) {
+    public void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newFirefighterPosition, ArrayList<Position> extinguishPosition) {
         addElementToElementPosition(newElementPosition, newFirefighterPosition);
         extinguishPosition.add(newFirefighterPosition);
-        List<Position> neighborFirePositions = gameBoard.neighbors(newFirefighterPosition).stream()
+        List<Position> neighborFirePositions = GameBoard.neighbors(newFirefighterPosition).stream()
                 .filter(firePositions()::contains).toList();
         extinguishPosition.addAll(neighborFirePositions);
     }
 
     @Override
     public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) {
-        List<Position> firePositions = firePositions();
         Position newFirefighterPosition = gameBoard.neighborClosestToFire(position);
         extinguishPosition.add(position);
         if(canMove(newFirefighterPosition)){
-            moveAndExtinguish(newElementPosition,newFirefighterPosition,extinguishPosition,firePositions,gameBoard);
+            moveAndExtinguish(newElementPosition,newFirefighterPosition,extinguishPosition);
         }else {
-            List<Position> neighbors = gameBoard.neighbors(position);
+            List<Position> neighbors = GameBoard.neighbors(position);
             for (Position neighbourPosition : neighbors) {
                 if(canMove(neighbourPosition)){
-                    moveAndExtinguish(newElementPosition,neighbourPosition,extinguishPosition,firePositions,gameBoard);
+                    moveAndExtinguish(newElementPosition,neighbourPosition,extinguishPosition);
                     return;
                 }
             }
-            //moveAndExtinguish(newElementPosition,position,extinguishPosition,firePositions,gameBoard);
         }
     }
 
diff --git a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
index f51f45c5ab5630ad198bc0d9c5af94aa0e0fd23e..97ea204ef94fb7ae14eeb00be57fd0a54090cd34 100644
--- a/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
+++ b/src/main/java/model/ExtinguishFire/MotorizedFireFighter.java
@@ -28,20 +28,16 @@ public class MotorizedFireFighter extends FireFighters {
         return visitor.visit(this);
     }
 
-    public void initialize() {
-        super.initialize();    // to delete
-    }
-
     public void moveAndExtinguish(HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> newMotorizedFireFighterPositions,
-                                  ArrayList<Position> extinguishPosition, List<Position> firePositions, GameBoard gameBoard) {
+                                  ArrayList<Position> extinguishPosition, List<Position> firePositions) {
         addElementToElementPosition(newElementPosition, newMotorizedFireFighterPositions.get(1));
 
         extinguishPosition.addAll(newMotorizedFireFighterPositions);
 
         List<Position> neighborFirePositions = new ArrayList<>();
-        neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPositions.get(0)).stream()
+        neighborFirePositions.addAll(GameBoard.neighbors(newMotorizedFireFighterPositions.get(0)).stream()
                 .filter(firePositions::contains).toList());
-        neighborFirePositions.addAll(gameBoard.neighbors(newMotorizedFireFighterPositions.get(1)).stream()
+        neighborFirePositions.addAll(GameBoard.neighbors(newMotorizedFireFighterPositions.get(1)).stream()
                 .filter(firePositions::contains).toList());
         extinguishPosition.addAll(neighborFirePositions);
     }
@@ -57,13 +53,13 @@ public class MotorizedFireFighter extends FireFighters {
 
         if (canMove(newMotorizedFireFighterPosition2)) {
             newMotorizedFireFighterPositions.add(newMotorizedFireFighterPosition2);
-            moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition,firePositions, gameBoard);
+            moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition,firePositions);
         } else {
-            List<Position> neighbors = gameBoard.neighbors(position);
+            List<Position> neighbors = GameBoard.neighbors(position);
             for (Position neighbourPosition : neighbors) {
                 if (canMove(neighbourPosition)) {
                     newMotorizedFireFighterPositions.add(position);
-                    moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition, firePositions, gameBoard);
+                    moveAndExtinguish(newElementPosition, newMotorizedFireFighterPositions, extinguishPosition, firePositions);
                 break;
                 }
             }
diff --git a/src/main/java/model/Flammable/Fire.java b/src/main/java/model/Flammable/Fire.java
index 7b530cd60c30da4d0d6de80e715a9750fccf6766..c1990b1286299aecba8f7572e659e1fc5bd061bd 100644
--- a/src/main/java/model/Flammable/Fire.java
+++ b/src/main/java/model/Flammable/Fire.java
@@ -10,7 +10,7 @@ import java.util.*;
 
 import static model.GameBoard.elementPosition;
 
-public class Fire implements Flammable{
+public class Fire implements BoardElement {
     private int turns=0;
     private final Color color;
 
@@ -57,7 +57,7 @@ public class Fire implements Flammable{
         if(canMove(position,newElementPosition))
             addElementToElementPosition(newElementPosition,position);
         if ((gameBoard.stepNumber() % 2 == 0 && !inRockery(position))||(inRockery(position) && turns==4)) {
-            List<Position> positionsNeighbours = new ArrayList<>(gameBoard.neighbors(position));
+            List<Position> positionsNeighbours = new ArrayList<>(GameBoard.neighbors(position));
             for(Position positionNeighbour : positionsNeighbours){
                 if(!extinguishPosition.contains(positionNeighbour)&& canMove(positionNeighbour,newElementPosition)){
                     addElementToElementPosition(newElementPosition,positionNeighbour);
diff --git a/src/main/java/model/Flammable/Flammable.java b/src/main/java/model/Flammable/Flammable.java
deleted file mode 100644
index 72fb4d693d7e7d1467e839ace1227d2418f67662..0000000000000000000000000000000000000000
--- a/src/main/java/model/Flammable/Flammable.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package model.Flammable;
-
-import model.BoardElement;
-import model.GameBoard;
-import util.Position;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-
-public interface Flammable extends BoardElement{
-
-    //void update(GameBoard gameBoard, Position position,HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition);
-}
diff --git a/src/main/java/model/GameBoard.java b/src/main/java/model/GameBoard.java
index 271faa66900f8073fa339122390a934e3782ca77..fca8a57d14a3f5c4a4900620360e0486ee371485 100644
--- a/src/main/java/model/GameBoard.java
+++ b/src/main/java/model/GameBoard.java
@@ -2,7 +2,6 @@ package model;
 
 import model.Builder.GameBuilder;
 
-import model.Flammable.Flammable;
 import model.Visitor.FireFinder;
 import util.Position;
 
@@ -17,6 +16,7 @@ public class GameBoard implements Board{
     private final int initialMotorizedFireFighterCount;
     private final int initialMountainCount;
     private final int initialRoadCount;
+    private final int initialRockeryCount;
 
     private int step = 0;
     static Random randomGenerator = new Random();
@@ -28,7 +28,7 @@ public class GameBoard implements Board{
 
 
     public GameBoard(int columnCount,int rowCount,int initialFireCount, int initialFirefighterCount,int initialCloudCount,
-                     int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount) {
+                     int initialMotorizedFireFighterCount,int initialMountainCount,int initialRoadCount,int initialRockeryCount) {
         GameBoard.columnCount = columnCount;
         GameBoard.rowCount = rowCount;
         this.initialFireCount = initialFireCount;
@@ -37,6 +37,7 @@ public class GameBoard implements Board{
         this.initialMotorizedFireFighterCount=initialMotorizedFireFighterCount;
         this.initialMountainCount = initialMountainCount;
         this.initialRoadCount = initialRoadCount;
+        this.initialRockeryCount = initialRockeryCount;
     }
 
     public void initializeElements(){
@@ -47,6 +48,7 @@ public class GameBoard implements Board{
                         .setCloud(initialCloudCount)
                         .setMotorizedFireFighter(initialMotorizedFireFighterCount)
                         .setMountain(initialMountainCount)
+                        .setRockery(initialRockeryCount)
                         .build();
     }
 
@@ -69,8 +71,7 @@ public class GameBoard implements Board{
         for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()){
             for(BoardElement element : entry.getValue()){
                 if (element.accept(new FireFinder())){
-                    Flammable element1 = (Flammable) element;
-                    element1.update(this,entry.getKey(),newElementPosition,extinguishPosition);
+                    element.update(this,entry.getKey(),newElementPosition,extinguishPosition);
                 }
             }
         }
@@ -111,7 +112,7 @@ public class GameBoard implements Board{
         return GameBoard.columnCount;
     }
 
-    public List<Position> neighbors(Position position) {
+    public static 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));
@@ -119,14 +120,6 @@ public class GameBoard implements Board{
         if (position.column() < columnCount - 1) list.add(new Position(position.row(), position.column() + 1));
         return list;
     }
-    public static List<Position> neighborsObstacle(Position positionObstacle) {
-        List<Position> list = new ArrayList<>();
-        if (positionObstacle.row() > 0) list.add(new Position(positionObstacle.row() - 1, positionObstacle.column()));
-        if (positionObstacle.column() > 0) list.add(new Position(positionObstacle.row(), positionObstacle.column() - 1));
-        if (positionObstacle.row() < rowCount - 1) list.add(new Position(positionObstacle.row() + 1, positionObstacle.column()));
-        if (positionObstacle.column() < columnCount - 1) list.add(new Position(positionObstacle.row(), positionObstacle.column() + 1));
-        return list;
-    }
 
     public  Position neighborClosestToFire(Position position) {
 
diff --git a/src/main/java/model/Obstacle/Mountain.java b/src/main/java/model/Obstacle/Mountain.java
index 4456ec1763f52c31596cbad1a2e159f750c4038a..baf1e93d9495d5faa1c9e4b018c8ae1b57641bde 100644
--- a/src/main/java/model/Obstacle/Mountain.java
+++ b/src/main/java/model/Obstacle/Mountain.java
@@ -3,14 +3,12 @@ package model.Obstacle;
 import javafx.scene.paint.Color;
 import model.BoardElement;
 import model.GameBoard;
-import model.Visitor.Visitor;
+import model.Visitor.*;
 import util.Position;
 
-import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.*;
 
-import static model.GameBoard.elementPosition;
-import static model.GameBoard.randomPosition;
+import static model.GameBoard.*;
 
 public class Mountain extends Obstacles {
 
@@ -30,20 +28,62 @@ public class Mountain extends Obstacles {
         return visitor.visit(this);
     }
 
-    @Override
-    public void initialize(){
-        Position position=randomPosition();
-        if (elementPosition.containsKey(position))
-            elementPosition.get(position).add(this);
-        else {
+    public void initialize() {
+        ArrayList<Position> mountainsPositions=getMountainsPositions();
+        if(mountainsPositions.isEmpty()){
+            Position position = GameBoard.randomPosition();
+            while(!canInitialise(position)){
+                position = GameBoard.randomPosition();
+            }
+            addElementToElementPosition(elementPosition,position);
+        }else{
+            Random random=new Random();
+            while (true){
+                Position positionMountain=mountainsPositions.get(random.nextInt(mountainsPositions.size()));
+                List<Position> neighbourMountains=GameBoard.neighbors(positionMountain);
+                for (Position position:neighbourMountains){
+                    if(canInitialise(position)){
+                        addElementToElementPosition(elementPosition,position);
+                        return;
+                    }
+                }
+            }
+        }
+
+    }
+
+    private ArrayList<Position> getMountainsPositions() {
+        ArrayList<Position> mountains= new ArrayList<>();
+        for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) {
+            for (BoardElement element : entry.getValue()) {
+                if (element.accept(new MountainFinder())) {
+                    mountains.add(entry.getKey());
+                }
+            }
+        }
+        return mountains;
+    }
+
+    private boolean canInitialise(Position position) {
+        if(elementPosition.containsKey(position)) {
+            for (BoardElement element : GameBoard.elementPosition.get(position)) {
+                if (!element.accept(new CrossableByMountain())) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    private void addElementToElementPosition(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newMountainsPosition) {
+        if (newElementPosition.containsKey(newMountainsPosition) ) {
+            newElementPosition.get(newMountainsPosition).add(this);
+        } else {
             ArrayList<BoardElement> boardElements = new ArrayList<>();
             boardElements.add(this);
-            elementPosition.put(position, boardElements);
+            newElementPosition.put(newMountainsPosition, boardElements);
         }
     }
 
-    @Override
-    public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) {
-        super.update(gameBoard,position,newElementPosition,extinguishPosition);
-    }
 }
+
diff --git a/src/main/java/model/Obstacle/Road.java b/src/main/java/model/Obstacle/Road.java
index cbe4b3bb8b3b8dfca16705676e43137e02e7e5ed..ded19e8d1d1e850a6dfb80e727f836f997c3e488 100644
--- a/src/main/java/model/Obstacle/Road.java
+++ b/src/main/java/model/Obstacle/Road.java
@@ -3,23 +3,19 @@ package model.Obstacle;
 import javafx.scene.paint.Color;
 import model.BoardElement;
 import model.GameBoard;
-import model.Visitor.CrossableByRoad;
-import model.Visitor.Visitor;
+import model.Visitor.*;
 import util.Position;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
-import static model.GameBoard.elementPosition;
-import static model.GameBoard.randomPosition;
+import static model.GameBoard.*;
 
 public class Road extends Obstacles {
+
     private final Color color;
 
     public Road(Color color){
         this.color=color;
-        initialize();
     }
     @Override
     public Color getColor() {
@@ -31,39 +27,104 @@ public class Road extends Obstacles {
         return visitor.visit(this);
     }
 
-    @Override
     public void initialize() {
-        Position position = new Position(0,0);
-        int count = 0 ;
+        ArrayList<Position> roadPositions=getMountainsPositions();
+        if(roadPositions.isEmpty()){
+            Position position = GameBoard.randomPosition();
+            while(!canInitialise(position)){
+                position = GameBoard.randomPosition();
+            }
+            addElementToElementPosition(elementPosition,position);
+        }else{
+            Random random=new Random();
+            while (true){
+                Position positionMountain=roadPositions.get(random.nextInt(roadPositions.size()));
+                List<Position> neighbourMountains=GameBoard.neighbors(positionMountain);
+                for (Position position:neighbourMountains){
+                    if(canInitialise(position) && squareProblem(position)){
+                        addElementToElementPosition(elementPosition,position);
+                        return;
+                    }
+                }
+            }
+
+        }
+
+    }
+
+    private boolean squareProblem(Position position) {
+        int numberOfRoarsAround=0;
+        ArrayList<BoardElement> roadsPositions=getelementAtPositions(new Position(position.row()-1, position.column()),new Position(position.row()-1,position.column()-1),new Position(position.row(), position.column()-1));
+        for (BoardElement boardElement:roadsPositions) {
+            if(boardElement.accept(new RoadFinder())) numberOfRoarsAround++;
+        }
+        if(numberOfRoarsAround==3) return false;
+
+        numberOfRoarsAround=0;
+        roadsPositions=getelementAtPositions(new Position(position.row()-1, position.column()),new Position(position.row()-1,position.column()+1),new Position(position.row(), position.column()+1));
+        for (BoardElement boardElement:roadsPositions) {
+            if(boardElement.accept(new RoadFinder())) numberOfRoarsAround++;
+        }
+        if(numberOfRoarsAround==3) return false;
+
+        numberOfRoarsAround=0;
+        roadsPositions=getelementAtPositions(new Position(position.row(), position.column()-1),new Position(position.row()+1,position.column()-1),new Position(position.row()+1, position.column()));
+        for (BoardElement boardElement:roadsPositions) {
+            if(boardElement.accept(new RoadFinder())) numberOfRoarsAround++;
+        }
+        if(numberOfRoarsAround==3) return false;
+
+        numberOfRoarsAround=0;
+        roadsPositions=getelementAtPositions(new Position(position.row()+1, position.column()),new Position(position.row()+1,position.column()+1),new Position(position.row(), position.column()+1));
+        for (BoardElement boardElement:roadsPositions) {
+            if(boardElement.accept(new RoadFinder())) numberOfRoarsAround++;
+        }
+        if(numberOfRoarsAround==3) return false;
+
+        return true;
+    }
+
+    private ArrayList<BoardElement> getelementAtPositions(Position position, Position position1, Position position2) {
+        ArrayList<BoardElement> mountainsPositions=new ArrayList<>();
+        if(elementPosition.containsKey(position)) mountainsPositions.addAll(elementPosition.get(position)) ;
+        else return mountainsPositions;
+        if(elementPosition.containsKey(position1)) mountainsPositions.addAll(elementPosition.get(position1));
+        else return mountainsPositions;
+        if(elementPosition.containsKey(position2)) mountainsPositions.addAll(elementPosition.get(position2));
+        return mountainsPositions;
+    }
+
+    private ArrayList<Position> getMountainsPositions() {
+        ArrayList<Position> roads= new ArrayList<>();
         for (Map.Entry<Position, ArrayList<BoardElement>> entry : elementPosition.entrySet()) {
-            ArrayList<BoardElement> boardElements = entry.getValue();
-            for(BoardElement boardElement : boardElements){
-                if(!boardElement.accept(new CrossableByRoad())){
-                    position=entry.getKey();
-                    count++;
+            for (BoardElement element : entry.getValue()) {
+                if (element.accept(new RoadFinder())) {
+                    roads.add(entry.getKey());
                 }
             }
         }
-        if(count!=0){
-            Position newPosition = new Position(position.row(),position.column()+1);
-            if (elementPosition.containsKey(newPosition)) {
-                elementPosition.get(newPosition).add(this);
-
-            } else {
-                ArrayList<BoardElement> boardElements = new ArrayList<>();
-                boardElements.add(this);
-                elementPosition.put(newPosition, boardElements);
+        return roads;
+    }
+
+    private boolean canInitialise(Position position) {
+        if(elementPosition.containsKey(position)) {
+            for (BoardElement element : GameBoard.elementPosition.get(position)) {
+                if (!element.accept(new CrossableByRoad())) {
+                    return false;
+                }
             }
         }
-        else {
+        return true;
+    }
+
+    private void addElementToElementPosition(HashMap<Position, ArrayList<BoardElement>> newElementPosition, Position newRoadPosition) {
+        if (newElementPosition.containsKey(newRoadPosition) ) {
+            newElementPosition.get(newRoadPosition).add(this);
+        } else {
             ArrayList<BoardElement> boardElements = new ArrayList<>();
             boardElements.add(this);
-            elementPosition.put(randomPosition(), boardElements);
+            newElementPosition.put(newRoadPosition, boardElements);
         }
     }
 
-    @Override
-    public void update(GameBoard gameBoard, Position position, HashMap<Position, ArrayList<BoardElement>> newElementPosition, ArrayList<Position> extinguishPosition) {
-        super.update(gameBoard,position,newElementPosition,extinguishPosition);
-    }
-}
\ No newline at end of file
+}
diff --git a/src/main/java/model/Rockery.java b/src/main/java/model/Rockery.java
index e94e2ae0bc7fc6bac29b06a6760ee394152836a1..7e9d515bb3118b6c11679925fef2977e5cecf522 100644
--- a/src/main/java/model/Rockery.java
+++ b/src/main/java/model/Rockery.java
@@ -1,7 +1,6 @@
 package model;
 
 import javafx.scene.paint.Color;
-import model.Visitor.CrossableByFire;
 import model.Visitor.CrossableByRockery;
 import model.Visitor.Visitor;
 import util.Position;
diff --git a/src/main/java/model/Visitor/MountainFinder.java b/src/main/java/model/Visitor/MountainFinder.java
new file mode 100644
index 0000000000000000000000000000000000000000..b89f4ddacb80ff07fb933348eec7f172f06b2767
--- /dev/null
+++ b/src/main/java/model/Visitor/MountainFinder.java
@@ -0,0 +1,46 @@
+package model.Visitor;
+
+import model.ExtinguishFire.Cloud;
+import model.ExtinguishFire.FireFighter;
+import model.ExtinguishFire.MotorizedFireFighter;
+import model.Flammable.Fire;
+import model.Obstacle.Mountain;
+import model.Obstacle.Road;
+import model.Rockery;
+
+public class MountainFinder implements Visitor{
+    @Override
+    public boolean visit(Fire fire) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(FireFighter fireFighter) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Cloud cloud) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(MotorizedFireFighter motorizedFireFighter) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Mountain mountain) {
+        return true;
+    }
+
+    @Override
+    public boolean visit(Road road) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Rockery rockery) {
+        return false;
+    }
+}
diff --git a/src/main/java/model/Visitor/RoadFinder.java b/src/main/java/model/Visitor/RoadFinder.java
new file mode 100644
index 0000000000000000000000000000000000000000..523dd645f55511b691112b6ee72fee55d5fc2c56
--- /dev/null
+++ b/src/main/java/model/Visitor/RoadFinder.java
@@ -0,0 +1,46 @@
+package model.Visitor;
+
+import model.ExtinguishFire.Cloud;
+import model.ExtinguishFire.FireFighter;
+import model.ExtinguishFire.MotorizedFireFighter;
+import model.Flammable.Fire;
+import model.Obstacle.Mountain;
+import model.Obstacle.Road;
+import model.Rockery;
+
+public class RoadFinder implements Visitor{
+    @Override
+    public boolean visit(Fire fire) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(FireFighter fireFighter) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Cloud cloud) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(MotorizedFireFighter motorizedFireFighter) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Mountain mountain) {
+        return false;
+    }
+
+    @Override
+    public boolean visit(Road road) {
+        return true;
+    }
+
+    @Override
+    public boolean visit(Rockery rockery) {
+        return false;
+    }
+}
diff --git a/src/main/java/view/FirefighterGrid.java b/src/main/java/view/FirefighterGrid.java
index 1091bebfb81bf8990409ab5439f96d844af7440d..38d4317ebb5bad295924280a4837d01fe294608d 100644
--- a/src/main/java/view/FirefighterGrid.java
+++ b/src/main/java/view/FirefighterGrid.java
@@ -12,7 +12,6 @@ import java.util.List;
 
 public class FirefighterGrid extends Canvas implements Grid<model.BoardElement>{
 
-
     private void paintElementAtPosition(ArrayList<BoardElement> elementsAtPosition, Position position) {
         paintSquare(position.row(), position.column(), elementsAtPosition);
     }