diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin
index 1b9f8fbd468ce72efa20e531dcbccf6fc9c93588..890726ca24b67bc996fb6ba6710d2478c220c32d 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 3ad2f8137f4dd9953229e800ab30840e189d45e5..6e7254dff416c1282e363eb60aff371e15496928 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 93297f489ce7c0dc7a0f241d17d3d933d010ac00..c5726a2eda9592c3d19f99286cd3d924a22fdf93 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 7f6a2d812e3bfbee3147cc2985e35216a647fc87..de14264c78d0fcca541794779cdbc82e240751f8 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 b6256803b0f11f9d905dc80febe26d03a3c9629a..f07316dcb181bc4ce1181c65d6d59da90898321c 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 1f7191f3ec063b0e7aa6a3e9c8002b0984d63547..93d013839980d107e7e1773eefd8c0af8af92f38 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe
index 177b638e36f899ff65fdfbdf0fb2b363a7f6029f..0b3866e8d86aeea5717cc9afd2d4313e988a8876 100644
Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ
diff --git a/build/classes/java/main/app/SimulatorApplication.class b/build/classes/java/main/app/SimulatorApplication.class
index 710b7e449b80cc57d3fca16a1745b5d38726aa73..0c2201dd16cef43b342c37c68917a4746ce613f5 100644
Binary files a/build/classes/java/main/app/SimulatorApplication.class and b/build/classes/java/main/app/SimulatorApplication.class differ
diff --git a/build/classes/java/main/controller/SettingsController.class b/build/classes/java/main/controller/SettingsController.class
deleted file mode 100644
index 1b434a4e40460f52ce64d262cb01216682f498ff..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/controller/SettingsController.class and /dev/null differ
diff --git a/build/classes/java/main/controller/controllerMenu.class b/build/classes/java/main/controller/controllerMenu.class
index ed9af87af0de6df99351facf1f1c637eee16495f..a5941003c47022cf1f31bf237a79d37b1e74d406 100644
Binary files a/build/classes/java/main/controller/controllerMenu.class and b/build/classes/java/main/controller/controllerMenu.class differ
diff --git a/build/classes/java/main/controller/fireFigther/ControllerFireFigtherBord.class b/build/classes/java/main/controller/fireFigther/ControllerFireFigtherBord.class
deleted file mode 100644
index f488ab73b0d3a83ae71afcf7d32b537b4091b18c..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/controller/fireFigther/ControllerFireFigtherBord.class and /dev/null differ
diff --git a/build/classes/java/main/controller/fireFigther/PersistentToggleGroup.class b/build/classes/java/main/controller/fireFigther/PersistentToggleGroup.class
deleted file mode 100644
index 2e4bfd31af0cd5e71a813e7d3a4392cf9643e118..0000000000000000000000000000000000000000
Binary files a/build/classes/java/main/controller/fireFigther/PersistentToggleGroup.class and /dev/null differ
diff --git a/build/classes/java/main/model/FirefighterBoard.class b/build/classes/java/main/model/FirefighterBoard.class
index 22c5e7237e4ea669a27d68a9ab99bb1dd1ffa5f4..0221dd6af6afbf4b7fdb9a91c10ec2f82c2bf860 100644
Binary files a/build/classes/java/main/model/FirefighterBoard.class and b/build/classes/java/main/model/FirefighterBoard.class differ
diff --git a/build/resources/main/view/Settings.fxml b/build/resources/main/view/Settings.fxml
deleted file mode 100644
index 71254c0a3ee78ade5fa70ae154f1f8f02aec4d14..0000000000000000000000000000000000000000
--- a/build/resources/main/view/Settings.fxml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.Label?>
-<?import javafx.scene.control.Spinner?>
-<?import javafx.scene.layout.GridPane?>
-
-<GridPane xmlns:fx="http://javafx.com/fxml"
-          fx:controller="controller.SettingsController" alignment="center" hgap="10" vgap="10" padding="20">
-    <Label text="Settings" style="-fx-font-size: 16;" GridPane.columnIndex="0" GridPane.rowIndex="0" GridPane.columnSpan="2"/>
-
-    <!-- Row Count -->
-    <Label text="Row Count:" GridPane.columnIndex="0" GridPane.rowIndex="1"/>
-    <Spinner fx:id="rowCountSpinner" value="10" min="1" max="100" GridPane.columnIndex="1" GridPane.rowIndex="1"/>
-
-    <!-- Column Count -->
-    <Label text="Column Count:" GridPane.columnIndex="0" GridPane.rowIndex="2"/>
-    <Spinner fx:id="columnCountSpinner" value="10" min="1" max="100" GridPane.columnIndex="1" GridPane.rowIndex="2"/>
-</GridPane>
diff --git a/build/resources/main/view/fireFigtherView/fireFigtherBord.fxml b/build/resources/main/view/fireFigtherView/fireFigtherBord.fxml
deleted file mode 100644
index 7e1c179c34759e686122a03577556f25d189aece..0000000000000000000000000000000000000000
--- a/build/resources/main/view/fireFigtherView/fireFigtherBord.fxml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.Button?>
-<?import javafx.scene.layout.HBox?>
-<?import javafx.scene.layout.VBox?>
-<?import view.FirefighterGrid?>
-
-<?import javafx.scene.control.ToggleButton?>
-<?import javafx.scene.control.Separator?>
-<?import javafx.scene.control.Label?>
-<HBox styleClass="background" stylesheets="@DarkTheme.css"
-      xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
-      fx:controller="controller.fireFigther.ControllerFireFigtherBord">
-  <VBox>
-    <Separator maxHeight="-Infinity" maxWidth="-Infinity"
-               prefHeight="24.0" prefWidth="200.0"/>
-    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
-           text="Generation number"/>
-    <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY"
-           maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
-    <Separator maxHeight="-Infinity" maxWidth="-Infinity"
-               prefHeight="24.0" prefWidth="200.0"/>
-    <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
-            mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
-            text="Restart"/>
-    <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity"
-            mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0"
-            text="One step"/>
-    <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
-                  mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0"
-                  prefWidth="200.0" styleClass="button" text="Play"/>
-    <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
-                  mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
-                  prefWidth="200.0" styleClass="button" text="Pause"/>
-  </VBox>
-  <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
-                   xmlns="http://javafx.com/javafx"
-                   xmlns:fx="http://javafx.com/fxml">
-  </FirefighterGrid>
-</HBox>
diff --git a/build/resources/main/view/fireFigtherView/putElementCount.fxml b/build/resources/main/view/fireFigtherView/putElementCount.fxml
deleted file mode 100644
index 3d8003d6466fe273c17056ff7be7d0abc7d6f623..0000000000000000000000000000000000000000
--- a/build/resources/main/view/fireFigtherView/putElementCount.fxml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.*?>
-<?import javafx.scene.image.*?>
-<?import javafx.scene.layout.*?>
-
-<AnchorPane fx:id="putElementCount" fx:controller="controller.fireFigther.ControllerPutElementCountController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="434.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1">
-   <children>
-      <Spinner fx:id="fire" editable="true" layoutX="106.0" layoutY="31.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Label layoutX="265.0" layoutY="14.0" text="Fire" />
-      <Label layoutX="245.0" layoutY="64.0" text="Fire Fighter" />
-      <Spinner fx:id="firefighter" layoutX="106.0" layoutY="82.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Cloud" layoutX="102.0" layoutY="134.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Spinner fx:id="MotorisedFireFighter" layoutX="106.0" layoutY="186.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Spinner fx:id="Mountain" layoutX="102.0" layoutY="234.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Road" layoutX="101.0" layoutY="286.0" prefHeight="25.0" prefWidth="355.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Rockerie" layoutX="100.0" layoutY="335.0" prefHeight="25.0" prefWidth="355.0" value="10" min="1" max="100"/>
-      <Button layoutX="229.0" layoutY="376.0" mnemonicParsing="false" prefHeight="55.0" prefWidth="92.0" text="Button" />
-      <Label layoutX="259.0" layoutY="116.0" text="Cloud" />
-      <Label layoutX="215.0" layoutY="169.0" text="Motorised Fire Fighter" />
-      <Label layoutX="249.0" layoutY="217.0" text="Mountain" />
-      <Label layoutX="260.0" layoutY="269.0" text="Road" />
-      <Label layoutX="251.0" layoutY="318.0" text="Rockerie" />
-      <ImageView fitHeight="62.0" fitWidth="102.0" layoutX="223.0" layoutY="373.0" pickOnBounds="true" preserveRatio="true" />
-   </children>
-</AnchorPane>
diff --git a/build/resources/main/view/menu.fxml b/build/resources/main/view/menu.fxml
index e974135e404bb15ad97b487aec3080719a8f7dc3..801d37f6d36cd94a1166ca094238783591e5f85d 100644
--- a/build/resources/main/view/menu.fxml
+++ b/build/resources/main/view/menu.fxml
@@ -3,11 +3,10 @@
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 
-<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.controllerMenu">
+<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.ControllerMenu">
    <children>
-      <Button fx:id="FireFighter" layoutX="36.0" layoutY="119.0" mnemonicParsing="false" onAction="#FireFighter" prefHeight="106.0" prefWidth="259.0" text="firefiter" />
+      <Button fx:id="FireFighter" layoutX="36.0" layoutY="119.0" mnemonicParsing="false" onAction="#FireFighter" prefHeight="106.0" prefWidth="259.0" text="FireFighter" />
       <Button fx:id="Virus" layoutX="321.0" layoutY="119.0" mnemonicParsing="false" onAction="#Virus" prefHeight="106.0" prefWidth="259.0" text="virus" />
-      <Button fx:id="Settings" layoutX="541.0" layoutY="14.0" mnemonicParsing="false" onAction="#Settings" prefHeight="41.0" prefWidth="45.0" text="setting" />
-      <Button layoutX="14.0" layoutY="14.0" mnemonicParsing="false" onAction="#exit" prefHeight="35.0" prefWidth="96.0" text="exit" />
+      <Button layoutX="14.0" layoutY="14.0" mnemonicParsing="false"  prefHeight="35.0" prefWidth="96.0" text="exit" onAction="#exit" />
    </children>
 </AnchorPane>
diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin
index 0794c21f5857e1712377974470c887937b65a54f..71c8af93e6b47cab67d4982b842e2084b12ebf32 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/Diagramme de classe.png b/src/Diagramme de classe.png
new file mode 100644
index 0000000000000000000000000000000000000000..a611011c6751cf7faf9545441f5147539ec381ce
Binary files /dev/null and b/src/Diagramme de classe.png differ
diff --git a/src/descriptif du projet.txt b/src/descriptif du projet.txt
new file mode 100644
index 0000000000000000000000000000000000000000..95f7e39d8ec6ba1ab88774b2350934f680f9f701
--- /dev/null
+++ b/src/descriptif du projet.txt	
@@ -0,0 +1,28 @@
+décrit le projet
+ le projet vise a faire une simulation tout enrespectant les principes SOLID
+quand on lance progrme on atterie sur un meun qui nous permet de choisir le mode de jeu 
+	si on choisi fire Fighter on dois selectionner le nombre d element qui sera dans notre grille
+	si on choisi virus on sera amener a une simuation de virus
+	sinon on clique sur exit et le programme se ferme  
+
+expliqué les différents jeux
+	fire Fighter 
+		le feu se propage sur tout les case vide et les case rocaille 
+		le pompier etain les 4 case autour de lui 
+		le nuage se balade sur la grille et etain le feu en desous de lui
+		le pompier motoriser etain les 4 case autour de lui et se deplace de 2 case 
+		la monatin le pompier , le feu et le pompier motoriser ne peuvent pas aller sur cette case 
+		la route le feu ne peut pas de propager sur cette case 
+	virus 
+		le virus transphorme l humain en virus 
+		le humain se balade sur le grille 
+		le medecin le medecin elimine le virus 
+
+expliqué comment on a structuré notre code
+	tout les element sur la grie implement l interface model element compose de 2 metode update qui gere les deplacement et getviewelement 
+	au lieu de faire 2 liste dans le pojet fourni j ai prefere faire une map avec les positions comme cle et une liste de model element 
+	j ai une class tool dans utile avec des methode staique que je reutlise partout qui ont pour but de eviter la duplication de code j ai essayer de respeter le plus le open close principer en faisant ces methodes   
+ 
+parlé des difficultés rencontrées
+diffuclter a gere les scenes 
+diffuculter a faire les pompier motorise 
\ No newline at end of file
diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index 9ff1a94dd60cecea170ff69707c0a32cb35c7948..070407ddb9ab1379687e902ef157834850565a1c 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -1,6 +1,8 @@
 package app;
 
-import controller.fireFigther.ControllerFireFigtherBord;
+import controller.ControllerBord;
+import controller.ControllerMenu;
+import controller.ControllerPutElementCount;
 import javafx.application.Platform;
 import javafx.fxml.FXMLLoader;
 import javafx.scene.Parent;
@@ -14,11 +16,11 @@ import java.net.URL;
 import java.util.Map;
 
 public class SimulatorApplication extends javafx.application.Application {
-  private static final String VIEW_RESOURCE_PATH = "/view/fireFigtherView/fireFigtherBord.fxml";
+  private static final String VIEW_RESOURCE_PATH = "/view/menu.fxml";
 
   private static final String APP_NAME = "Firefighter simulator";
-  private static final int ROW_COUNT = 20;
-  private static final int COLUMN_COUNT = 20;
+  private static  int ROW_COUNT = 20;
+  private static  int COLUMN_COUNT = 20;
   private static final int SQUARE_WIDTH = 40;
   private static final int SQUARE_HEIGHT = 40;
   private Map<ModelElement,Integer> INITIAL_ELEMENTS_COUNT;
@@ -38,20 +40,10 @@ public class SimulatorApplication extends javafx.application.Application {
   @Override
   public void start(Stage primaryStage) throws IOException {
     initializePrimaryStage(primaryStage);
-    initializeInitialElementCount();
     initializeView();
     showScene();
   }
-  private void initializeInitialElementCount() {
-    INITIAL_ELEMENTS_COUNT = new HashMap<>();
-    INITIAL_ELEMENTS_COUNT.put(new Fire(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new FireFigther(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new Cloud(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new MotorisedFirefigther(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new Mountain(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new Road(), 10);
-    INITIAL_ELEMENTS_COUNT.put(new Rockerie(), 10);
-  }
+
 
 
     private void initializeView() throws IOException {
@@ -59,9 +51,6 @@ public class SimulatorApplication extends javafx.application.Application {
     URL location = SimulatorApplication.class.getResource(VIEW_RESOURCE_PATH);
     loader.setLocation(location);
     view = loader.load();
-    ControllerFireFigtherBord controller = loader.getController();
-    controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT,INITIAL_ELEMENTS_COUNT
-            );
   }
 
   private void showScene() {
diff --git a/src/main/java/controller/fireFigther/ControllerFireFigtherBord.java b/src/main/java/controller/ControllerBord.java
similarity index 94%
rename from src/main/java/controller/fireFigther/ControllerFireFigtherBord.java
rename to src/main/java/controller/ControllerBord.java
index 7577440bc4e149bea00c875aa2574963dbc7d44d..154911f5a8a670271ffb40d1b2ce80932294e657 100644
--- a/src/main/java/controller/fireFigther/ControllerFireFigtherBord.java
+++ b/src/main/java/controller/ControllerBord.java
@@ -1,6 +1,6 @@
-package controller.fireFigther;
+package controller;
 
-import controller.fireFigther.PersistentToggleGroup;
+import controller.PersistentToggleGroup;
 import javafx.animation.Animation;
 import javafx.animation.KeyFrame;
 import javafx.animation.Timeline;
@@ -26,7 +26,7 @@ import java.util.Map;
 
 import static java.util.Objects.requireNonNull;
 
-public class ControllerFireFigtherBord {
+public class ControllerBord {
 
   public static final int PERIOD_IN_MILLISECONDS = 50;
   @FXML
@@ -97,7 +97,7 @@ public class ControllerFireFigtherBord {
 
 
   private void initializeTimeline() {
-    Duration duration = new Duration(ControllerFireFigtherBord.PERIOD_IN_MILLISECONDS);
+    Duration duration = new Duration(ControllerBord.PERIOD_IN_MILLISECONDS);
     EventHandler<ActionEvent> eventHandler =
             event -> updateBoard();
     KeyFrame keyFrame = new KeyFrame(duration, eventHandler);
diff --git a/src/main/java/controller/ControllerMenu.java b/src/main/java/controller/ControllerMenu.java
new file mode 100644
index 0000000000000000000000000000000000000000..ca173c1be7bedabc0bac133ca736d0e15e5543aa
--- /dev/null
+++ b/src/main/java/controller/ControllerMenu.java
@@ -0,0 +1,63 @@
+package controller;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.stage.Stage;
+
+import java.net.URL;
+
+public class ControllerMenu {
+    @FXML
+    private Button FireFighter;
+    @FXML
+    private Button Virus;
+
+
+    @FXML
+    public void exit() {
+        System.exit(0);
+    }
+
+    public void FireFighter() {
+        try {
+            FXMLLoader loader = new FXMLLoader();
+            URL location = getClass().getResource("/view/putElementCount.fxml");
+            loader.setLocation(location);
+            Parent parent = loader.load();
+
+
+            Stage stage = new Stage();
+            stage.setTitle("Put Element Count");
+            stage.setScene(new Scene(parent));
+            Stage currentStage = (Stage) FireFighter.getScene().getWindow();
+            currentStage.close();
+            stage.show();
+        } catch (Exception e) {
+            e.printStackTrace();
+
+        }
+    }
+
+    public void Virus() {
+        try {
+            FXMLLoader loader = new FXMLLoader();
+            URL location = getClass().getResource("/view/virusElementCount.fxml");
+            loader.setLocation(location);
+            Parent parent = loader.load();
+
+
+            Stage stage = new Stage();
+            stage.setTitle("Put Element Count");
+            stage.setScene(new Scene(parent));
+            Stage currentStage = (Stage) Virus.getScene().getWindow();
+            currentStage.close();
+            stage.show();
+        } catch (Exception e) {
+            e.printStackTrace();
+
+        }
+    }
+
+}
diff --git a/src/main/java/controller/ControllerPutElementCount.java b/src/main/java/controller/ControllerPutElementCount.java
new file mode 100644
index 0000000000000000000000000000000000000000..1dc0b3eff56b1a3f1e3c28179bc7ff6078b0b666
--- /dev/null
+++ b/src/main/java/controller/ControllerPutElementCount.java
@@ -0,0 +1,102 @@
+package controller;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.stage.Stage;
+import model.Element.*;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ControllerPutElementCount {
+    private static final int ROW_COUNT = 20;
+    private static final int COLUMN_COUNT = 20;
+    private static final int SQUARE_WIDTH = 40;
+    private static final int SQUARE_HEIGHT = 40;
+
+    @FXML
+    private TextField fire;
+
+    @FXML
+    private TextField firefighter;
+
+    @FXML
+    private TextField cloud;
+
+    @FXML
+    private TextField motorisedFireFighter;
+
+    @FXML
+    private TextField mountain;
+
+    @FXML
+    private TextField road;
+
+    @FXML
+    private TextField rockerie;
+
+    @FXML
+    private Button button;
+
+
+    @FXML
+    private void initialize() {
+        Map<ModelElement, Integer> INITIAL_ELEMENTS_COUNT = new HashMap<>();
+
+        int fireCount = parseIntOrDefault(fire.getText());
+        int firefighterCount = parseIntOrDefault(firefighter.getText());
+        int cloudCount = parseIntOrDefault(cloud.getText());
+        int motorisedFirefighterCount = parseIntOrDefault(motorisedFireFighter.getText());
+        int mountainCount = parseIntOrDefault(mountain.getText());
+        int roadCount = parseIntOrDefault(road.getText());
+        int rockerieCount = parseIntOrDefault(rockerie.getText());
+
+        INITIAL_ELEMENTS_COUNT.put(new Fire(), fireCount);
+        INITIAL_ELEMENTS_COUNT.put(new FireFigther(), firefighterCount);
+        INITIAL_ELEMENTS_COUNT.put(new Cloud(), cloudCount);
+        INITIAL_ELEMENTS_COUNT.put(new MotorisedFirefigther(), motorisedFirefighterCount);
+        INITIAL_ELEMENTS_COUNT.put(new Mountain(), mountainCount);
+        INITIAL_ELEMENTS_COUNT.put(new Road(), roadCount);
+        INITIAL_ELEMENTS_COUNT.put(new Rockerie(), rockerieCount);
+
+        loadScene(INITIAL_ELEMENTS_COUNT);
+    }
+
+    private int parseIntOrDefault(String input) {
+        try {
+            return input.isEmpty() ? 0 : Integer.parseInt(input);
+        } catch (NumberFormatException e) {
+            return 0;
+        }
+    }
+
+
+
+    @FXML
+    private void loadScene(Map<ModelElement, Integer> initialElementCount) {
+        try {
+            FXMLLoader loader = new FXMLLoader();
+            URL location = getClass().getResource("/view/viewBord.fxml");
+            loader.setLocation(location);
+            Parent parent = loader.load();
+            ControllerBord controller = loader.getController();
+            controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT, initialElementCount);
+
+            Stage currentStage = (Stage) fire.getScene().getWindow();
+            currentStage.close();
+
+            Stage newStage = new Stage();
+            newStage.setTitle("Fire Fighter");
+            newStage.setScene(new Scene(parent));
+            newStage.show();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}
diff --git a/src/main/java/controller/ControllerVirusElementCount.java b/src/main/java/controller/ControllerVirusElementCount.java
new file mode 100644
index 0000000000000000000000000000000000000000..3ca4222d7874fa6384fc800f772a74dd8e04d65a
--- /dev/null
+++ b/src/main/java/controller/ControllerVirusElementCount.java
@@ -0,0 +1,64 @@
+package controller;
+
+import javafx.event.ActionEvent;
+import javafx.fxml.FXML;
+import javafx.fxml.FXMLLoader;
+import javafx.scene.Parent;
+import javafx.scene.Scene;
+import javafx.scene.control.Button;
+import javafx.scene.control.TextField;
+import javafx.stage.Stage;
+import model.Element.*;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+public class ControllerVirusElementCount {
+    private static final int ROW_COUNT = 20;
+    private static final int COLUMN_COUNT = 20;
+    private static final int SQUARE_WIDTH = 40;
+    private static final int SQUARE_HEIGHT = 40;
+
+    @FXML
+    private TextField doctorsTextField;
+    @FXML
+    private TextField virusesTextField;
+    @FXML
+    private TextField humansTextField;
+    @FXML
+    private Button button;
+
+
+    @FXML
+    private void validate() {
+        Map<ModelElement, Integer> INITIAL_ELEMENTS_COUNT = new HashMap<>();
+        INITIAL_ELEMENTS_COUNT.put(new Doctor(), Integer.parseInt(doctorsTextField.getText()));
+        INITIAL_ELEMENTS_COUNT.put(new Virus(), Integer.parseInt(virusesTextField.getText()));
+        INITIAL_ELEMENTS_COUNT.put(new Humain(), Integer.parseInt(humansTextField.getText()));
+
+        loadScene(INITIAL_ELEMENTS_COUNT);
+    }
+
+
+    @FXML
+    private void loadScene(Map<ModelElement, Integer> initialElementCount) {
+        try {
+            FXMLLoader loader = new FXMLLoader();
+            URL location = getClass().getResource("/view/virusBoard.fxml");
+            loader.setLocation(location);
+            Parent parent = loader.load();
+            ControllerBord controller = loader.getController();
+            controller.initialize(SQUARE_WIDTH, SQUARE_HEIGHT, COLUMN_COUNT, ROW_COUNT,initialElementCount);
+
+            Stage currentStage = (Stage) doctorsTextField.getScene().getWindow();
+            currentStage.close();
+
+            Stage stage = new Stage();
+            stage.setTitle("Virus");
+            stage.setScene(new Scene(parent));
+            stage.show();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/main/java/controller/fireFigther/PersistentToggleGroup.java b/src/main/java/controller/PersistentToggleGroup.java
similarity index 96%
rename from src/main/java/controller/fireFigther/PersistentToggleGroup.java
rename to src/main/java/controller/PersistentToggleGroup.java
index 30ba8b2b05d3c5df1a832142a8483eb7c6b04139..7c2c4b5c79d6ff65e0bfbe53c2fb7e9fd5944a1b 100644
--- a/src/main/java/controller/fireFigther/PersistentToggleGroup.java
+++ b/src/main/java/controller/PersistentToggleGroup.java
@@ -1,4 +1,4 @@
-package controller.fireFigther;
+package controller;
 
 import javafx.collections.ListChangeListener.Change;
 import javafx.scene.control.Toggle;
diff --git a/src/main/java/controller/SettingsController.java b/src/main/java/controller/SettingsController.java
deleted file mode 100644
index 1f601978aaee01b0b677c3119e212466a35b048f..0000000000000000000000000000000000000000
--- a/src/main/java/controller/SettingsController.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package controller;
-
-import javafx.fxml.FXML;
-import javafx.scene.control.Spinner;
-
-public class SettingsController {
-
-    @FXML
-    private Spinner<Integer> rowCountSpinner;
-
-    @FXML
-    private Spinner<Integer> columnCountSpinner;
-
-    public int getRowCount() {
-        return rowCountSpinner.getValue();
-    }
-
-    public int getColumnCount() {
-        return columnCountSpinner.getValue();
-    }
-}
diff --git a/src/main/java/controller/controllerMenu.java b/src/main/java/controller/controllerMenu.java
deleted file mode 100644
index e496355801f11a6ab5ba89774a7667ae97b6fe12..0000000000000000000000000000000000000000
--- a/src/main/java/controller/controllerMenu.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package controller;
-
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.scene.control.Button;
-
-
-public class controllerMenu {
-    @FXML
-    private Button fireFighter;
-
-
-    @FXML
-    public void exit(ActionEvent actionEvent) {
-        System.exit(0);
-
-    }
-    public void FireFighter(ActionEvent actionEvent){
-
-
-
-    }
-    public void Virus(ActionEvent actionEvent){
-
-    }
-    public void Settings(ActionEvent actionEvent){
-
-
-    }
-
-}
diff --git a/src/main/java/controller/fireFigther/ControllerPutElementCountController.java b/src/main/java/controller/fireFigther/ControllerPutElementCountController.java
deleted file mode 100644
index a309dce886ad8ae15da8991b270e905dc708b69e..0000000000000000000000000000000000000000
--- a/src/main/java/controller/fireFigther/ControllerPutElementCountController.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package controller.fireFigther;
-
-import javafx.event.ActionEvent;
-import javafx.fxml.FXML;
-import javafx.scene.control.Button;
-import javafx.scene.control.Label;
-import javafx.scene.control.Spinner;
-import javafx.scene.image.ImageView;
-
-public class ControllerPutElementCountController {
-
-    @FXML
-    private Spinner<Integer> fire;
-
-    @FXML
-    private Spinner<Integer> firefighter;
-
-    @FXML
-    private Spinner<Integer> cloud;
-
-    @FXML
-    private Spinner<Integer> motorisedFireFighter;
-
-    @FXML
-    private Spinner<Integer> mountain;
-
-    @FXML
-    private Spinner<Integer> road;
-
-    @FXML
-    private Spinner<Integer> rockerie;
-
-    @FXML
-    private Button button;
-
-    @FXML
-    private Label cloudLabel;
-
-    @FXML
-    private Label motorisedFireFighterLabel;
-
-    @FXML
-    private Label mountainLabel;
-
-    @FXML
-    private Label roadLabel;
-
-    @FXML
-    private Label rockerieLabel;
-
-    @FXML
-    private ImageView imageView;
-
-    @FXML
-    private void initialize() {
-    }
-
-    @FXML
-    private void handleButtonClick(ActionEvent event) {
-        System.out.println("Button clicked!");
-    }
-}
diff --git a/src/main/java/model/Element/Doctor.java b/src/main/java/model/Element/Doctor.java
index cce6d07472b464735cc2727984a7dea411c40fd7..c2d4a0886d7d895ed590bb49f32ca13396bd85f1 100644
--- a/src/main/java/model/Element/Doctor.java
+++ b/src/main/java/model/Element/Doctor.java
@@ -16,6 +16,7 @@ public class Doctor implements ModelElement {
             removeElement(position, board, new Doctor());
             addElement(newPositionStep, board, new Doctor());
             extinguishneighbor(newPositionStep,board,new Virus(),rowCount,columnCount);
+
         }
     }
 
diff --git a/src/main/java/model/Element/Virus.java b/src/main/java/model/Element/Virus.java
index d125bff0f488606b0b7dffd7d2edfdae9d288f5f..960c038ec7792df6b93146f5a886c23f74d1b2f3 100644
--- a/src/main/java/model/Element/Virus.java
+++ b/src/main/java/model/Element/Virus.java
@@ -9,17 +9,25 @@ import java.util.Random;
 
 import static util.Tools.*;
 
-public class Virus implements ModelElement{
+public class Virus implements ModelElement {
+
     @Override
     public void update(Position position, Map<Position, List<ModelElement>> board, int step, int columnCount, int rowCount) {
         List<Position> neighbors = neighbors(position, rowCount, columnCount);
+
         if (!neighbors.isEmpty()) {
             Random nextCloud = new Random();
             Position randomNeighbor = neighbors.get(nextCloud.nextInt(neighbors.size()));
-            if (board.get(randomNeighbor).contains(new Humain())) {
-                removeElement(randomNeighbor,board,new Humain());
-                addElement(randomNeighbor, board, new Virus());
+
+            if (board.containsKey(randomNeighbor)) {
+                List<ModelElement> elementsAtRandomNeighbor = board.get(randomNeighbor);
+
+                if (elementsAtRandomNeighbor.contains(new Humain())) {
+                    removeElement(randomNeighbor, board, new Humain());
+                    addElement(randomNeighbor, board, new Virus());
+                }
             }
+
             addElement(randomNeighbor, board, new Virus());
         }
 
diff --git a/build/resources/main/view/fireFigtherView/DarkTheme.css b/src/main/resources/view/DarkTheme.css
similarity index 100%
rename from build/resources/main/view/fireFigtherView/DarkTheme.css
rename to src/main/resources/view/DarkTheme.css
diff --git a/src/main/resources/view/Settings.fxml b/src/main/resources/view/Settings.fxml
deleted file mode 100644
index 71254c0a3ee78ade5fa70ae154f1f8f02aec4d14..0000000000000000000000000000000000000000
--- a/src/main/resources/view/Settings.fxml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.Label?>
-<?import javafx.scene.control.Spinner?>
-<?import javafx.scene.layout.GridPane?>
-
-<GridPane xmlns:fx="http://javafx.com/fxml"
-          fx:controller="controller.SettingsController" alignment="center" hgap="10" vgap="10" padding="20">
-    <Label text="Settings" style="-fx-font-size: 16;" GridPane.columnIndex="0" GridPane.rowIndex="0" GridPane.columnSpan="2"/>
-
-    <!-- Row Count -->
-    <Label text="Row Count:" GridPane.columnIndex="0" GridPane.rowIndex="1"/>
-    <Spinner fx:id="rowCountSpinner" value="10" min="1" max="100" GridPane.columnIndex="1" GridPane.rowIndex="1"/>
-
-    <!-- Column Count -->
-    <Label text="Column Count:" GridPane.columnIndex="0" GridPane.rowIndex="2"/>
-    <Spinner fx:id="columnCountSpinner" value="10" min="1" max="100" GridPane.columnIndex="1" GridPane.rowIndex="2"/>
-</GridPane>
diff --git a/src/main/resources/view/fireFigtherView/DarkTheme.css b/src/main/resources/view/fireFigtherView/DarkTheme.css
deleted file mode 100644
index 46b78aaf90972dd435399466c9fd861ca73fc59f..0000000000000000000000000000000000000000
--- a/src/main/resources/view/fireFigtherView/DarkTheme.css
+++ /dev/null
@@ -1,142 +0,0 @@
-.background {
-    -fx-background-color: #1d1d1d;
-}
-
-.label {
-    -fx-font-size: 11pt;
-    -fx-font-family: "Segoe UI Semibold";
-    -fx-text-fill: white;
-    -fx-opacity: 0.6;
-}
-
-.label-bright {
-    -fx-font-size: 11pt;
-    -fx-font-family: "Segoe UI Semibold";
-    -fx-text-fill: white;
-    -fx-opacity: 1;
-}
-
-.label-header {
-    -fx-font-size: 32pt;
-    -fx-font-family: "Segoe UI Light";
-    -fx-text-fill: white;
-    -fx-opacity: 1;
-}
-
-.table-view {
-    -fx-base: #1d1d1d;
-    -fx-control-inner-background: #1d1d1d;
-    -fx-background-color: #1d1d1d;
-    -fx-table-cell-border-color: transparent;
-    -fx-table-header-border-color: transparent;
-    -fx-padding: 5;
-}
-
-.table-view .column-header-background {
-    -fx-background-color: transparent;
-}
-
-.table-view .column-header, .table-view .filler {
-    -fx-border-width: 0 0 1 0;
-    -fx-background-color: transparent;
-    -fx-border-color: 
-        transparent
-        transparent
-        derive(-fx-base, 80%) 
-        transparent;
-    -fx-border-insets: 0 10 1 0;
-}
-
-.table-view .column-header .label {
-    -fx-font-size: 20pt;
-    -fx-font-family: "Segoe UI Light";
-    -fx-text-fill: white;
-    -fx-alignment: center-left;
-    -fx-opacity: 1;
-}
-
-.table-view:focused .table-row-cell:filled:focused:selected {
-    -fx-background-color: -fx-focus-color;
-}
-
-.split-pane:horizontal > .split-pane-divider {
-    -fx-border-color: transparent #1d1d1d transparent #1d1d1d;
-    -fx-background-color: transparent, derive(#1d1d1d,20%);
-}
-
-.split-pane {
-    -fx-padding: 1 0 0 0;
-}
-
-.menu-bar {
-    -fx-background-color: derive(#1d1d1d,20%);
-}
-
-.context-menu {
-    -fx-background-color: derive(#1d1d1d,50%);
-}
-
-.menu-bar .label {
-    -fx-font-size: 14pt;
-    -fx-font-family: "Segoe UI Light";
-    -fx-text-fill: white;
-    -fx-opacity: 0.9;
-}
-
-.menu .left-container {
-    -fx-background-color: black;
-}
-
-.text-field {
-    -fx-font-size: 12pt;
-    -fx-font-family: "Segoe UI Semibold";
-}
-
-/* 
- * Metro style Push Button
- * Author: Pedro Duque Vieira
- * http://pixelduke.wordpress.com/2012/10/23/jmetro-windows-8-controls-on-java/
- */
-.button {
-    -fx-padding: 5 22 5 22;   
-    -fx-border-color: #e2e2e2;
-    -fx-border-width: 2;
-    -fx-background-radius: 0;
-    -fx-background-color: #1d1d1d;
-    -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif;
-    -fx-font-size: 11pt;
-    -fx-text-fill: #d8d8d8;
-    -fx-background-insets: 0 0 0 0, 0, 1, 2;
-}
-
-.button:hover {
-    -fx-background-color: #3a3a3a;
-}
-
-.button:pressed, .button:default:hover:pressed {
-  -fx-background-color: white;
-  -fx-text-fill: #1d1d1d;
-}
-
-.button:focused {
-    -fx-border-color: white, white;
-    -fx-border-width: 1, 1;
-    -fx-border-style: solid;
-    -fx-border-radius: 0, 0;
-    -fx-border-insets: 1 1 1 1, 0;
-}
-
-.button:disabled, .button:default:disabled {
-    -fx-opacity: 0.4;
-    -fx-background-color: #1d1d1d;
-    -fx-text-fill: white;
-}
-
-.button:default {
-    -fx-background-color: -fx-focus-color;
-    -fx-text-fill: #ffffff;
-}
-
-.button:default:hover {
-    -fx-background-color: derive(-fx-focus-color,30%);
-}
\ No newline at end of file
diff --git a/src/main/resources/view/fireFigtherView/fireFigtherBord.fxml b/src/main/resources/view/fireFigtherView/fireFigtherBord.fxml
deleted file mode 100644
index 7e1c179c34759e686122a03577556f25d189aece..0000000000000000000000000000000000000000
--- a/src/main/resources/view/fireFigtherView/fireFigtherBord.fxml
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.Button?>
-<?import javafx.scene.layout.HBox?>
-<?import javafx.scene.layout.VBox?>
-<?import view.FirefighterGrid?>
-
-<?import javafx.scene.control.ToggleButton?>
-<?import javafx.scene.control.Separator?>
-<?import javafx.scene.control.Label?>
-<HBox styleClass="background" stylesheets="@DarkTheme.css"
-      xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
-      fx:controller="controller.fireFigther.ControllerFireFigtherBord">
-  <VBox>
-    <Separator maxHeight="-Infinity" maxWidth="-Infinity"
-               prefHeight="24.0" prefWidth="200.0"/>
-    <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
-           text="Generation number"/>
-    <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY"
-           maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
-    <Separator maxHeight="-Infinity" maxWidth="-Infinity"
-               prefHeight="24.0" prefWidth="200.0"/>
-    <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
-            mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
-            text="Restart"/>
-    <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity"
-            mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0"
-            text="One step"/>
-    <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
-                  mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0"
-                  prefWidth="200.0" styleClass="button" text="Play"/>
-    <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
-                  mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
-                  prefWidth="200.0" styleClass="button" text="Pause"/>
-  </VBox>
-  <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
-                   xmlns="http://javafx.com/javafx"
-                   xmlns:fx="http://javafx.com/fxml">
-  </FirefighterGrid>
-</HBox>
diff --git a/src/main/resources/view/fireFigtherView/putElementCount.fxml b/src/main/resources/view/fireFigtherView/putElementCount.fxml
deleted file mode 100644
index 3d8003d6466fe273c17056ff7be7d0abc7d6f623..0000000000000000000000000000000000000000
--- a/src/main/resources/view/fireFigtherView/putElementCount.fxml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.*?>
-<?import javafx.scene.image.*?>
-<?import javafx.scene.layout.*?>
-
-<AnchorPane fx:id="putElementCount" fx:controller="controller.fireFigther.ControllerPutElementCountController" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="434.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1">
-   <children>
-      <Spinner fx:id="fire" editable="true" layoutX="106.0" layoutY="31.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Label layoutX="265.0" layoutY="14.0" text="Fire" />
-      <Label layoutX="245.0" layoutY="64.0" text="Fire Fighter" />
-      <Spinner fx:id="firefighter" layoutX="106.0" layoutY="82.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Cloud" layoutX="102.0" layoutY="134.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Spinner fx:id="MotorisedFireFighter" layoutX="106.0" layoutY="186.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100" />
-      <Spinner fx:id="Mountain" layoutX="102.0" layoutY="234.0" prefHeight="25.0" prefWidth="363.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Road" layoutX="101.0" layoutY="286.0" prefHeight="25.0" prefWidth="355.0" value="10" min="1" max="100"/>
-      <Spinner fx:id="Rockerie" layoutX="100.0" layoutY="335.0" prefHeight="25.0" prefWidth="355.0" value="10" min="1" max="100"/>
-      <Button layoutX="229.0" layoutY="376.0" mnemonicParsing="false" prefHeight="55.0" prefWidth="92.0" text="Button" />
-      <Label layoutX="259.0" layoutY="116.0" text="Cloud" />
-      <Label layoutX="215.0" layoutY="169.0" text="Motorised Fire Fighter" />
-      <Label layoutX="249.0" layoutY="217.0" text="Mountain" />
-      <Label layoutX="260.0" layoutY="269.0" text="Road" />
-      <Label layoutX="251.0" layoutY="318.0" text="Rockerie" />
-      <ImageView fitHeight="62.0" fitWidth="102.0" layoutX="223.0" layoutY="373.0" pickOnBounds="true" preserveRatio="true" />
-   </children>
-</AnchorPane>
diff --git a/src/main/resources/view/menu.fxml b/src/main/resources/view/menu.fxml
index e974135e404bb15ad97b487aec3080719a8f7dc3..801d37f6d36cd94a1166ca094238783591e5f85d 100644
--- a/src/main/resources/view/menu.fxml
+++ b/src/main/resources/view/menu.fxml
@@ -3,11 +3,10 @@
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
 
-<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.controllerMenu">
+<AnchorPane prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/17.0.2-ea" xmlns:fx="http://javafx.com/fxml/1" fx:controller="controller.ControllerMenu">
    <children>
-      <Button fx:id="FireFighter" layoutX="36.0" layoutY="119.0" mnemonicParsing="false" onAction="#FireFighter" prefHeight="106.0" prefWidth="259.0" text="firefiter" />
+      <Button fx:id="FireFighter" layoutX="36.0" layoutY="119.0" mnemonicParsing="false" onAction="#FireFighter" prefHeight="106.0" prefWidth="259.0" text="FireFighter" />
       <Button fx:id="Virus" layoutX="321.0" layoutY="119.0" mnemonicParsing="false" onAction="#Virus" prefHeight="106.0" prefWidth="259.0" text="virus" />
-      <Button fx:id="Settings" layoutX="541.0" layoutY="14.0" mnemonicParsing="false" onAction="#Settings" prefHeight="41.0" prefWidth="45.0" text="setting" />
-      <Button layoutX="14.0" layoutY="14.0" mnemonicParsing="false" onAction="#exit" prefHeight="35.0" prefWidth="96.0" text="exit" />
+      <Button layoutX="14.0" layoutY="14.0" mnemonicParsing="false"  prefHeight="35.0" prefWidth="96.0" text="exit" onAction="#exit" />
    </children>
 </AnchorPane>
diff --git a/src/main/resources/view/putElementCount.fxml b/src/main/resources/view/putElementCount.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..8d5b2e6fb42035ca40cbb6f7864c70056e674b13
--- /dev/null
+++ b/src/main/resources/view/putElementCount.fxml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<AnchorPane xmlns="http://javafx.com/javafx"
+            xmlns:fx="http://javafx.com/fxml"
+            fx:controller="controller.ControllerPutElementCount"
+            prefHeight="400.0" prefWidth="600.0">
+
+      <VBox alignment="CENTER" spacing="20">
+
+            <Label text="Enter the Number of Elements" />
+
+            <HBox spacing="10">
+                  <Label text="Fire:" />
+                  <TextField fx:id="fire" text="3" />
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="FireFighter:" />
+                  <TextField fx:id="firefighter" text="5" />
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="Motorised FireFighter:" />
+                  <TextField fx:id="motorisedFireFighter" text="7" />
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="Mountain:" />
+                  <TextField fx:id="mountain" text="5"/>
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="Cloud:" />
+                  <TextField fx:id="cloud" text="5" />
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="Road:" />
+                  <TextField fx:id="road" text="5" />
+            </HBox>
+
+            <HBox spacing="10">
+                  <Label text="Rockerie:" />
+                  <TextField fx:id="rockerie" text="5" />
+            </HBox>
+
+            <Button text="Validate" onAction="#initialize" />
+
+      </VBox>
+
+</AnchorPane>
diff --git a/src/main/resources/view/viewBord.fxml b/src/main/resources/view/viewBord.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..4cb6ca2d2163ccc40b2b8441370cbd68667caec9
--- /dev/null
+++ b/src/main/resources/view/viewBord.fxml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import view.FirefighterGrid?>
+
+<?import javafx.scene.control.ToggleButton?>
+<?import javafx.scene.control.Separator?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.layout.StackPane?>
+<?import javafx.scene.shape.Rectangle?>
+
+<HBox styleClass="background" stylesheets="@DarkTheme.css"
+      xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
+      fx:controller="controller.ControllerBord">
+    <VBox spacing="5"> <!-- Added spacing to VBox -->
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+               text="Generation number"/>
+        <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="Restart"/>
+        <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="One step"/>
+        <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Play"/>
+        <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Pause"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="Légende :"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="rouge = fire"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="bleu = firefighter"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="gris = cloud"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="noir = road"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="orange = motorisedFireFighter"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="marron = mountain"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="gris clair = rockerie"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+    </VBox>
+    <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
+                     xmlns="http://javafx.com/javafx"
+                     xmlns:fx="http://javafx.com/fxml">
+    </FirefighterGrid>
+</HBox>
diff --git a/src/main/resources/view/virusBoard.fxml b/src/main/resources/view/virusBoard.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..6ddb08070ea423798f9d474fc4eb78a0a31f9c92
--- /dev/null
+++ b/src/main/resources/view/virusBoard.fxml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.Button?>
+<?import javafx.scene.layout.HBox?>
+<?import javafx.scene.layout.VBox?>
+<?import view.FirefighterGrid?>
+
+<?import javafx.scene.control.ToggleButton?>
+<?import javafx.scene.control.Separator?>
+<?import javafx.scene.control.Label?>
+<?import javafx.scene.layout.StackPane?>
+<?import javafx.scene.shape.Rectangle?>
+
+<HBox styleClass="background" stylesheets="@DarkTheme.css"
+      xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml"
+      fx:controller="controller.ControllerBord">
+    <VBox spacing="5"> <!-- Added spacing to VBox -->
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Label maxHeight="-Infinity" maxWidth="-Infinity" alignment="CENTER" prefHeight="24.0" prefWidth="200.0"
+               text="Generation number"/>
+        <Label fx:id="generationNumberLabel" alignment="CENTER" contentDisplay="TEXT_ONLY"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Separator maxHeight="-Infinity" maxWidth="-Infinity"
+                   prefHeight="24.0" prefWidth="200.0"/>
+        <Button fx:id="restartButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#restartButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="Restart"/>
+        <Button fx:id="oneStepButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                mnemonicParsing="false" onAction="#oneStepButtonAction" prefHeight="24.0" prefWidth="200.0"
+                text="One step"/>
+        <ToggleButton fx:id="playToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#playToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Play"/>
+        <ToggleButton fx:id="pauseToggleButton" maxHeight="-Infinity" maxWidth="-Infinity"
+                      mnemonicParsing="false" onAction="#pauseToggleButtonAction" prefHeight="24.0"
+                      prefWidth="200.0" styleClass="button" text="Pause"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="Légende :"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="mauve = virus"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="bleu clair = doctor"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+        <Label alignment="CENTER" contentDisplay="TEXT_ONLY" text="noir = humain"
+               maxHeight="-Infinity" maxWidth="-Infinity" prefHeight="24.0" prefWidth="200.0"/>
+    </VBox>
+    <FirefighterGrid fx:id="grid" width="1000.0" height="1000.0"
+                     xmlns="http://javafx.com/javafx"
+                     xmlns:fx="http://javafx.com/fxml">
+    </FirefighterGrid>
+</HBox>
diff --git a/src/main/resources/view/virusElementCount.fxml b/src/main/resources/view/virusElementCount.fxml
new file mode 100644
index 0000000000000000000000000000000000000000..651f3df09e792f39b56b00016c6c123e94bbd98e
--- /dev/null
+++ b/src/main/resources/view/virusElementCount.fxml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<?import javafx.scene.control.*?>
+<?import javafx.scene.layout.*?>
+
+<AnchorPane xmlns="http://javafx.com/javafx"
+            xmlns:fx="http://javafx.com/fxml"
+            fx:controller="controller.ControllerVirusElementCount"
+            prefHeight="400.0" prefWidth="600.0">
+
+    <VBox alignment="CENTER" spacing="20">
+
+        <Label text="Enter the Number of Elements" />
+
+        <HBox spacing="10">
+            <Label text="Doctors:" />
+            <TextField fx:id="doctorsTextField" text="3"/>
+        </HBox>
+
+        <HBox spacing="10">
+            <Label text="Viruses:" />
+            <TextField fx:id="virusesTextField" text="3" />
+        </HBox>
+
+        <HBox spacing="10">
+            <Label text="Humans:" />
+            <TextField fx:id="humansTextField" text="10" />
+        </HBox>
+
+        <Button text="Validate" onAction="#validate" />
+
+    </VBox>
+
+</AnchorPane>