diff --git a/src/main/java/newmodel/Extinguisher.java b/src/main/java/newmodel/Extinguisher.java
index 5d5abacf6d40f598f71573490f6256479866ad5f..e9f7c6eb8981de8155ca54af8426c0a85dfed0c5 100644
--- a/src/main/java/newmodel/Extinguisher.java
+++ b/src/main/java/newmodel/Extinguisher.java
@@ -1,17 +1,17 @@
 package newmodel;
-
 import newmodel.Fboard;
 import util.Position;
-
 import java.util.List;
+public abstract class Extinguisher implements item {
+
+        public abstract List<Position> update();
+        public abstract void extinguish(Position position);
+        public abstract void setState();
+        public abstract String getState();
 
-public interface Extinguisher {
-    public List<Position> updateExtinguisher();
-    public void extinguish(Position position);
-    public void setState();
-    public String getState();
+        public abstract void initialize();
+        public abstract List<Position> getPositions();
 
-    public void initialize();
-    public List<Position> getPositions();
+    }
 
 }
diff --git a/src/main/java/newmodel/Fboard.java b/src/main/java/newmodel/Fboard.java
index d86ef42a8362783db2c3d98e327514eab8402cc2..6199065d0949be983024c9637822e761c5a3c8ea 100644
--- a/src/main/java/newmodel/Fboard.java
+++ b/src/main/java/newmodel/Fboard.java
@@ -10,15 +10,13 @@ public class Fboard {
     protected final int columnCount;
     protected final int rowCount;
     private int step = 0;
-    private FireManager fire;
-    private List<Extinguisher> extinguishers;
 
-    public Fboard(int columnCount, int rowCount, Fire fire ,List<Extinguisher> Extinguishers) {
+    private List<item> items;
+
+    public Fboard(int columnCount, int rowCount, Fire fire ,List<item> items) {
         this.columnCount = columnCount;
         this.rowCount = rowCount;
-        this.extinguishers=new ArrayList<>();
-        this.fire=fire;
-        extinguishers.addAll(Extinguishers);
+        this.items=items;
         }
 
     public int rowCount() {
@@ -31,10 +29,8 @@ public class Fboard {
 
     public List<Position> updateToNextGeneration() {
         List<Position> result = new ArrayList<>();
-           result.addAll(fire.updateFire());
-        for(Extinguisher e : extinguishers) {
-            result.addAll(e.updateExtinguisher());
-        }
+        for(item item : items)
+           result.addAll(item.update());
         step++;
         return result;
     }
@@ -48,7 +44,7 @@ public class Fboard {
     }
     public void initializeElements() {
         fire.initialize();
-        for(Extinguisher e: extinguishers) {
+        for(item e: extinguishers) {
             e.initialize();
         }
     }
diff --git a/src/main/java/newmodel/Fire.java b/src/main/java/newmodel/Fire.java
index 44532b09088819d6f2249666ad44eb3afe1302d3..2876058b92720b6efecc25adbba5556dcab399bd 100644
--- a/src/main/java/newmodel/Fire.java
+++ b/src/main/java/newmodel/Fire.java
@@ -4,7 +4,7 @@ import util.Position;
 
 import java.util.*;
 
-public class Fire implements FireManager {
+public class Fire extends FireManager {
 
     private final int initialFireCount;
 
@@ -19,7 +19,7 @@ public class Fire implements FireManager {
     }
 
 
-    public List<Position> updateFire() {
+    public List<Position> update() {
         List<Position> result = new ArrayList<>();
         if (board.getStep() % 2 == 0) {
             List<Position> newFirePositions = new ArrayList<>();
@@ -37,12 +37,11 @@ public class Fire implements FireManager {
         state="Fire";
     }
 
-    @Override
+
     public String getState() {
         return state;
     }
 
-    @Override
     public void initialize() {
         firePositions = new HashSet<>();
         for (int index = 0; index < initialFireCount; index++)
diff --git a/src/main/java/newmodel/FireFighter.java b/src/main/java/newmodel/FireFighter.java
index ce04b21553592726847cd858765cbc74295a2302..82a638d06ee1412cb31babbae8b24489d75d64d5 100644
--- a/src/main/java/newmodel/FireFighter.java
+++ b/src/main/java/newmodel/FireFighter.java
@@ -17,7 +17,7 @@ public class FireFighter implements Extinguisher {
     }
 
 
-    public List<Position> updateExtinguisher() {
+    public List<Position> update() {
             List<Position> result = new ArrayList<>();
             List<Position> firefighterNewPositions = new ArrayList<>();
             for (Position firefighterPosition : firefighterPositions) {
diff --git a/src/main/java/newmodel/FireManager.java b/src/main/java/newmodel/FireManager.java
index 11969a89057c71a6fee5e9e3e2b8d55a68434dcf..096730c0a42391b4d3bf0c9e0c854a0f4788cd72 100644
--- a/src/main/java/newmodel/FireManager.java
+++ b/src/main/java/newmodel/FireManager.java
@@ -1,19 +1,15 @@
 package newmodel;
 
-import newmodel.Fboard;
 import util.Position;
 
 import java.util.List;
 import java.util.Set;
 
-public interface FireManager {
-    public List<Position> updateFire();
-    public void setState();
-    public String getState();
-    public void extinguish(Position position);
-    public void initialize();
-
-    public Set<Position> getFirepositions();
-
-    public boolean containsFire(Position position);
+public abstract class FireManager implements item{
+    public abstract List<Position> update();
+    public abstract void extinguish(Position position);
+    public abstract Set<Position> getFirepositions();
+    public abstract boolean containsFire(Position position);
+    public abstract void setState();
+    public abstract String getState();
 }
diff --git a/src/main/java/newmodel/MotoFireFighter.java b/src/main/java/newmodel/MotoFireFighter.java
index 040ef171f85ae16821a337e59a50d7e4753d0c49..bc4e60f6e448593b532fbf76a9516b49b74cb82f 100644
--- a/src/main/java/newmodel/MotoFireFighter.java
+++ b/src/main/java/newmodel/MotoFireFighter.java
@@ -1,4 +1,37 @@
 package newmodel;
 
-public class MotoFireFighter {
+import util.Position;
+
+import java.util.List;
+
+public class MotoFireFighter extends Extinguisher {
+    @Override
+    public List<Position> update() {
+        return null;
+    }
+
+    @Override
+    public void extinguish(Position position) {
+
+    }
+
+    @Override
+    public void setState() {
+
+    }
+
+    @Override
+    public String getState() {
+        return null;
+    }
+
+    @Override
+    public void initialize() {
+
+    }
+
+    @Override
+    public List<Position> getPositions() {
+        return null;
+    }
 }
diff --git a/src/main/java/newmodel/Nuages.java b/src/main/java/newmodel/Nuages.java
index 340f966e7955198eb4b1ec7137ba82d09d0120c9..fa2182eaf727cb7b64afbc40c9eddc0a36e603ec 100644
--- a/src/main/java/newmodel/Nuages.java
+++ b/src/main/java/newmodel/Nuages.java
@@ -6,7 +6,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class Nuages implements Extinguisher{
+public class Nuages extends Extinguisher{
     private String state;
     private final Fboard board;
     private List<Position> nuagesPositions;
@@ -19,8 +19,20 @@ public class Nuages implements Extinguisher{
         this.board=b;
     }
 
-    public List<Position> updateExtinguisher() {
-
+    public List<Position> update() {
+        List<Position> result = new ArrayList<>();
+        List<Position> NuagesNewPositions = new ArrayList<>();
+        for (Position NuageNewPosition: nuagesPositions) {
+            NuagesNewPositions.add(randomPosition());
+        }
+            for(Position nuage : NuagesNewPositions) {
+                extinguish(nuage);
+            }
+            result.addAll(nuagesPositions);
+            result.addAll(NuagesNewPositions);
+
+        nuagesPositions = NuagesNewPositions;
+        return result;
     }
 
 
@@ -48,7 +60,7 @@ public class Nuages implements Extinguisher{
 
 
     public List<Position> getPositions() {
-        return null;
+        return this.nuagesPositions;
     }
     private Position randomPosition() {
         return new Position(randomGenerator.nextInt(board.rowCount), randomGenerator.nextInt(board.columnCount));
diff --git a/src/main/java/newmodel/Pompiers.java b/src/main/java/newmodel/Pompiers.java
new file mode 100644
index 0000000000000000000000000000000000000000..2cb99ea3f72cddee045627412621721aba9a2cf9
--- /dev/null
+++ b/src/main/java/newmodel/Pompiers.java
@@ -0,0 +1,52 @@
+package newmodel;
+
+import util.Position;
+
+import java.util.List;
+import java.util.Random;
+
+
+public class Pompiers extends Extinguisher{
+    private String state;
+    private final Fboard board;
+    private List<Position> Pompiers;
+    private final Random randomGenerator = new Random();
+
+    private final int initialPompiersCount;
+
+
+    public Pompiers(int count,Fboard b){
+        this.board=b;
+        this.initialPompiersCount=count;
+
+    }
+
+    public List<Position> updateExtinguisher() {
+        return null;
+    }
+
+
+    public void extinguish(Position position) {
+
+    }
+
+
+    public void setState() {
+        this.state="Pompiers";
+    }
+
+
+    public String getState() {
+        return state;
+    }
+
+
+    public void initialize() {
+
+    }
+
+
+    public List<Position> getPositions() {
+        return Pompiers;
+    }
+}
diff --git a/src/main/java/newmodel/item.java b/src/main/java/newmodel/item.java
new file mode 100644
index 0000000000000000000000000000000000000000..8fd8c6876dc14e809d62d3c92b329c0086dd35bf
--- /dev/null
+++ b/src/main/java/newmodel/item.java
@@ -0,0 +1,11 @@
+package newmodel;
+
+import util.Position;
+
+import java.util.List;
+
+public interface item {
+    public List<Position> update();
+    void setState();
+    String getState();
+}