diff --git a/src/main/java/model/Board.java b/src/main/java/model/Board.java
index f5686246697e6c6f4339e6b2be9bc4e99008b0e8..17d28ba0cb02f399f6261c2efae6200fc8de33cd 100644
--- a/src/main/java/model/Board.java
+++ b/src/main/java/model/Board.java
@@ -36,7 +36,7 @@ public interface Board<S> {
   Map<Position, Extinguisher> getExtinguishers();
 
   Map<Position, Fire> getFires();
-   Neighbour getNeighbor();
+
 
 
   /**
diff --git a/src/main/java/model/Cloud.java b/src/main/java/model/Cloud.java
index c11fd8bcfd1c9a3ca572aa70b0777ff95adcb81e..b61a5a4e07894e6a57e737552867e59ead2095f2 100644
--- a/src/main/java/model/Cloud.java
+++ b/src/main/java/model/Cloud.java
@@ -1,5 +1,6 @@
 package model;
 
+import util.Neighbour;
 import util.Position;
 
 import java.util.ArrayList;
@@ -14,10 +15,12 @@ public class Cloud extends Extinguisher {
     }
 
     public List<Position>update(Board<List<ModelElement>> firefighterBoard){
+
+        this.neighbour = new Neighbour(firefighterBoard);
         List<Position> modifiedPositions = new ArrayList<>();
 
         Position currentPosition = this.getPosition();
-        Position newPosition = firefighterBoard.getNeighbor().randomNeighbor(currentPosition);
+        Position newPosition = this.neighbour.randomNeighbor(currentPosition);
         this.setPosition(newPosition);
         modifiedPositions.add(currentPosition);
         modifiedPositions.add(newPosition);
diff --git a/src/main/java/model/Extinguisher.java b/src/main/java/model/Extinguisher.java
index 9c7904801936be7e3e13695d0054f30e45d81802..4983ad2f2c6f745850b6c2417e242bff742008a0 100644
--- a/src/main/java/model/Extinguisher.java
+++ b/src/main/java/model/Extinguisher.java
@@ -1,10 +1,12 @@
 package model;
 
+import util.Neighbour;
 import util.Position;
 
 import java.util.List;
 
 public abstract class Extinguisher implements Element{
+    protected Neighbour neighbour;
 
     protected Position position;
     protected ModelElement element;
diff --git a/src/main/java/model/FireFighter.java b/src/main/java/model/FireFighter.java
index 0eb1614946e20f1f29e2d77bbee12279057d4765..f07b2f8108812830c9fd5815d69495b99977517c 100644
--- a/src/main/java/model/FireFighter.java
+++ b/src/main/java/model/FireFighter.java
@@ -5,14 +5,13 @@ import util.Position;
 import util.TargetStrategy;
 
 import java.util.ArrayList;
-import java.util.HashMap;
+
 import java.util.List;
-import java.util.Map;
+
 
 
 public class FireFighter extends Extinguisher {
 
-    private Neighbour neighbour;
     private final TargetStrategy targetStrategy = new TargetStrategy();
 
 
diff --git a/src/main/java/model/FirefighterBoard.java b/src/main/java/model/FirefighterBoard.java
index 0b31a0103ee91f034ac75401760e9b087b56859b..74c43387c4d0fa7b01aced010a5fe715477f7fed 100644
--- a/src/main/java/model/FirefighterBoard.java
+++ b/src/main/java/model/FirefighterBoard.java
@@ -1,6 +1,5 @@
 package model;
 
-import util.Neighbour;
 import util.Position;
 
 import java.util.*;
@@ -12,16 +11,17 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
   private Map<Position, Fire> fires = new HashMap<>();
   private Map<Position, Extinguisher> extinguishers = new HashMap<>();
   private Map<Position, Obstacle> obstacles = new HashMap<>();
-  private final Neighbour neighbour;
+
   private final Position[][] positions;
   private int step = 0;
   private final Random randomGenerator = new Random();
 
+
   public FirefighterBoard(int columnCount, int rowCount) {
     this.columnCount = columnCount;
     this.rowCount = rowCount;
     this.positions = new Position[rowCount][columnCount];
-    this.neighbour = new Neighbour(this);
+
     initializePositions();
     initializeElements();
   }
@@ -85,8 +85,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     return columnCount;
   }
 
-
-
   public List<Position> updateToNextGeneration() {
 
     Fire fire = new Fire(randomPosition());
@@ -101,11 +99,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     return modifiedPositions;
   }
 
-
-  public Neighbour getNeighbor() {
-    return neighbour;
-  }
-
   @Override
   public int stepNumber() {
     return step;
@@ -131,7 +124,6 @@ public class FirefighterBoard implements Board<List<ModelElement>> {
     initializeElements();
   }
 
-
   @Override
   public void setState(List<ModelElement> state, Position position) {