diff --git a/build/classes/java/main/model/Fire.class b/build/classes/java/main/model/Fire.class
index a5cf903e81972d9987dda78d61de40208314c219..12744497c0b4168a756584b31df839866c40bdf5 100644
Binary files a/build/classes/java/main/model/Fire.class and b/build/classes/java/main/model/Fire.class differ
diff --git a/build/classes/java/main/model/FireFactory.class b/build/classes/java/main/model/FireFactory.class
index 868087536e9613fb1ae9bcfc3a45cc9d78803851..1663c2261a007eb99f47e6a3815e106f4ad6eca7 100644
Binary files a/build/classes/java/main/model/FireFactory.class and b/build/classes/java/main/model/FireFactory.class differ
diff --git a/src/main/java/model/Fire.java b/src/main/java/model/Fire.java
index 74e606852174dfeb8848e9a6e40753bbe2d0ccdf..388e294c81231ad175d7d6ffe18df8c174fa39d7 100644
--- a/src/main/java/model/Fire.java
+++ b/src/main/java/model/Fire.java
@@ -2,23 +2,19 @@ package model;
 
 import util.Position;
 
-public class Fire {
-    private final Position position; // Position du feu sur le plateau.
-
+public class Fire  extends BoardElement{
     public Fire(Position position) {
-        this.position = position;
-
+        super(position);
     }
 
-    // Récupère la position du feu.
-    public Position getPosition() {
-        return position;
+    @Override
+    public String getType() {
+        return "FIRE";
     }
 
 
 
 
-
     @Override
     public String toString() {
         return "Fire{" +
diff --git a/src/main/java/model/FireFactory.java b/src/main/java/model/FireFactory.java
index 44bc19838bff6dd2ae138f89beaa58398d569308..5b066af06cefbd9a6c91c5215bed2679f79ea43e 100644
--- a/src/main/java/model/FireFactory.java
+++ b/src/main/java/model/FireFactory.java
@@ -6,23 +6,24 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
 
-public class FireFactory {
+public class FireFactory implements ElementFactory<Fire>,PositionGenerator{
     private final Random random;
+    private int count;
 
-    public FireFactory(Random random) {
+    public FireFactory(Random random, int count) {
         this.random = random; // Injecte un générateur aléatoire pour une flexibilité.
+        this.count=count;
     }
 
     /**
      * Crée une liste de feux avec des positions et intensités aléatoires.
      *
-     * @param count      Le nombre de feux à générer.
      * @param rowCount   Nombre de lignes du plateau.
      * @param columnCount Nombre de colonnes du plateau.
 
      * @return Une liste d'objets `Fire`.
      */
-    public List<Fire> createFires(int count, int rowCount, int columnCount) {
+    public List<Fire> createElements(int rowCount, int columnCount) {
         List<Fire> fires = new ArrayList<>();
         for (int i = 0; i < count; i++) {
             Position randomPosition = generateRandomPosition(rowCount, columnCount);
@@ -38,9 +39,14 @@ public class FireFactory {
      * @param columnCount Nombre de colonnes.
      * @return Une position aléatoire.
      */
-    private Position generateRandomPosition(int rowCount, int columnCount) {
+    @Override
+    public Position generateRandomPosition(int rowCount, int columnCount) {
         int row = random.nextInt(rowCount);
         int column = random.nextInt(columnCount);
         return new Position(row, column);
     }
+
+    public int getCount() {
+        return count;
+    }
 }