diff --git a/build/resources/main/view/DarkTheme.css b/build/resources/main/view/DarkTheme.css
index 46b78aaf90972dd435399466c9fd861ca73fc59f..7122e922d48c04aaa31064526ad32644dd927164 100644
--- a/build/resources/main/view/DarkTheme.css
+++ b/build/resources/main/view/DarkTheme.css
@@ -113,7 +113,7 @@
     -fx-background-color: #3a3a3a;
 }
 
-.button:pressed, .button:default:hover:pressed {
+.button:default:hover:pressed {
   -fx-background-color: white;
   -fx-text-fill: #1d1d1d;
 }
diff --git a/src/main/java/app/SimulatorApplication.java b/src/main/java/app/SimulatorApplication.java
index 6da0500df1c935db754b7df35e7a65c1e9e5cff5..2411a42152ad89d81cc8e56c5fe2482e245409ca 100644
--- a/src/main/java/app/SimulatorApplication.java
+++ b/src/main/java/app/SimulatorApplication.java
@@ -13,16 +13,24 @@ import javafx.stage.Stage;
 public class SimulatorApplication extends javafx.application.Application {
   private static final String VIEW_RESOURCE_PATH = "/view/view.fxml";
   private static final String APP_NAME = "Firefighter simulator";
-  private static final int ROW_COUNT = 40;
-  private static final int COLUMN_COUNT = 40;
-  private static final int BOX_WIDTH = 25;
-  private static final int BOX_HEIGHT = 25;
+  public static final int ROW_COUNT = 40;
+  public static final int COLUMN_COUNT = 40;
+  public static final int BOX_WIDTH = 25;
+  public static final int BOX_HEIGHT = 25;
   public static final int INITIAL_FIRE_COUNT = 8;
   public static final int INITIAL_FIREFIGHTER_COUNT = 12;
   public static final int INITIAL_MOTORIZED_FIREFIGHTER_COUNT = 8;
   public static final int INITIAL_CLOUD_COUNT = 8;
   public static final int INITIAL_MOUNTAIN_COUNT= 6;
+  public static final int INITIAL_ROCKERTY_COUNT= 3;
   public static final int TURNS_FOR_SPAWNING_AIRTANKER = 10;
+  public static final int PAPER_COUNT = 10;
+  public static final int ROCK_COUNT = 10;
+  public static final int CISOR_COUNT = 10;
+  public static final int DOCTOR_COUNT = 10;
+  public static final int PATIENT_COUNT = 70;
+  public static final int VIRUS_COUNT = 6;
+
 
   private Stage primaryStage;
   private Parent view;
@@ -48,8 +56,20 @@ public class SimulatorApplication extends javafx.application.Application {
     loader.setLocation(location);
     view = loader.load();
     Controller controller = loader.getController();
-    controller.initialize(BOX_WIDTH, BOX_HEIGHT, COLUMN_COUNT, ROW_COUNT,
-        INITIAL_FIRE_COUNT, INITIAL_FIREFIGHTER_COUNT, INITIAL_MOTORIZED_FIREFIGHTER_COUNT, INITIAL_CLOUD_COUNT, INITIAL_MOUNTAIN_COUNT, TURNS_FOR_SPAWNING_AIRTANKER);
+    if(SimulatorMain.arguments == null){
+      SimulatorMain.arguments = new String[1];
+      SimulatorMain.arguments[0] = "firefighter";
+      System.out.println("No argument were provided, starting firefighter");
+    }
+    switch(SimulatorMain.arguments[0]){
+      case "pfc":
+        controller.initializePfc();
+      case "firefighter":
+        controller.initializeFireFighter();
+      case "doctor":
+        controller.initializeDoctor();
+    }
+
   }
 
   private void showScene() {
diff --git a/src/main/java/app/SimulatorMain.java b/src/main/java/app/SimulatorMain.java
index f2e49f262ebec4136cf57d3b50fea3987b3b69fc..15019a64bcf6bccf90d99b2acd17dbb18e0a1c1c 100644
--- a/src/main/java/app/SimulatorMain.java
+++ b/src/main/java/app/SimulatorMain.java
@@ -1,7 +1,10 @@
 package app;
 
 public class SimulatorMain {
+  public static String[] arguments;
   public static void main(String[] args){
     SimulatorApplication.main(args);
+    arguments = args;
+
   }
 }
diff --git a/src/main/java/controller/Controller.java b/src/main/java/controller/Controller.java
index 71390712a6d8a1546e548cee9ca985896c1d081e..c65b0388bf1f1fe6a9bf2c29a8cf5cbcfd536d08 100644
--- a/src/main/java/controller/Controller.java
+++ b/src/main/java/controller/Controller.java
@@ -25,17 +25,10 @@ import model.Entity;
 import model.EntityFactory;
 import model.Model;
 import model.Square;
-import model.firefighterscenario.Cloud;
-import model.firefighterscenario.Fire;
-import model.firefighterscenario.FireFighter;
-import model.firefighterscenario.FireFighterScenario;
-import model.firefighterscenario.MotorizedFireFighter;
-import model.firefighterscenario.Mountain;
-import model.firefighterscenario.Rockery;
 import util.Position;
 import view.Grid;
 import view.ViewElement;
-
+import app.SimulatorApplication;
 
 public class Controller {
 
@@ -138,32 +131,61 @@ public class Controller {
     repaintGrid();
   }
 
-  public void initialize(int squareWidth, int squareHeight, int columnCount,
-      int rowCount, int initialFireCount, int initialFirefighterCount, int initialMotorizedFirefightersCount, int initialcloudCount, int initialmountaincount, int turnsForSpawningAirTanker) {
-    grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
+  public void initializeDoctor() {
+    int columnCount = SimulatorApplication.COLUMN_COUNT;
+    int rowCount = SimulatorApplication.ROW_COUNT;
+    int squareWidth = SimulatorApplication.BOX_WIDTH;
+    int squareHeight = SimulatorApplication.BOX_HEIGHT;
+        grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
     
     Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
-    /*
-    entityCounts.put((pos, b) -> new Fire(pos), initialFireCount);
-    entityCounts.put((pos, b) -> new FireFighter(pos,b), initialFirefighterCount);
-    entityCounts.put((pos, b) -> new MotorizedFireFighter(pos, b), initialMotorizedFirefightersCount);
-    entityCounts.put((pos, b) -> new Cloud(pos, b), initialcloudCount);
-    entityCounts.put((pos, b) -> new Mountain(pos), initialmountaincount);
-    entityCounts.put((pos, b) -> new Rockery(pos), 3);
-     */
+
+    
+    entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), SimulatorApplication.PATIENT_COUNT);
+    entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), SimulatorApplication.VIRUS_COUNT);
+    entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), SimulatorApplication.DOCTOR_COUNT);
     
-    /*
-    entityCounts.put((pos, b) -> new Rock(pos), 10);
-    entityCounts.put((pos, b) -> new Cisor(pos), 10);
-    entityCounts.put((pos, b) -> new Paper(pos), 10);
-    */
+    Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
+    this.setModel(model);
+    repaintGrid();
+  }
+  public void initializePfc() {
+    int columnCount = SimulatorApplication.COLUMN_COUNT;
+    int rowCount = SimulatorApplication.ROW_COUNT;
+    int squareWidth = SimulatorApplication.BOX_WIDTH;
+    int squareHeight = SimulatorApplication.BOX_HEIGHT;
+        grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
+    
+    Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
 
     
-    entityCounts.put((pos, b) -> new model.doctorviruspatient.Patient(pos), 70);
-    entityCounts.put((pos, b) -> new model.doctorviruspatient.Virus(pos), 6);
-    entityCounts.put((pos, b) -> new model.doctorviruspatient.Doctor(pos), 3);
+    entityCounts.put((pos, b) -> new model.rockpapercisor.Rock(pos), SimulatorApplication.ROCK_COUNT);
+    entityCounts.put((pos, b) -> new model.rockpapercisor.Paper(pos), SimulatorApplication.PAPER_COUNT);
+    entityCounts.put((pos, b) -> new model.rockpapercisor.Cisor(pos), SimulatorApplication.CISOR_COUNT);
+    
+    Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
+    this.setModel(model);
+    repaintGrid();
+  }
+  public void initializeFireFighter() {
+    int columnCount = SimulatorApplication.COLUMN_COUNT;
+    int rowCount = SimulatorApplication.ROW_COUNT;
+    int squareWidth = SimulatorApplication.BOX_WIDTH;
+    int squareHeight = SimulatorApplication.BOX_HEIGHT;
+        grid.setDimensions(columnCount, rowCount, squareWidth, squareHeight);
+    
+    Map<EntityFactory, Integer> entityCounts = new HashMap<EntityFactory, Integer>();
+
+    
+    entityCounts.put((pos, b) -> new model.firefighterscenario.Fire(pos), SimulatorApplication.INITIAL_FIRE_COUNT);
+    entityCounts.put((pos, b) -> new model.firefighterscenario.FireFighter(pos,b), SimulatorApplication.INITIAL_FIREFIGHTER_COUNT);
+    entityCounts.put((pos, b) -> new model.firefighterscenario.MotorizedFireFighter(pos, b), SimulatorApplication.INITIAL_MOTORIZED_FIREFIGHTER_COUNT);
+    entityCounts.put((pos, b) -> new model.firefighterscenario.Cloud(pos, b), SimulatorApplication.INITIAL_CLOUD_COUNT);
+    entityCounts.put((pos, b) -> new model.firefighterscenario.Mountain(pos), SimulatorApplication.INITIAL_MOUNTAIN_COUNT);
+    entityCounts.put((pos, b) -> new model.firefighterscenario.Rockery(pos), SimulatorApplication.INITIAL_ROCKERTY_COUNT);
+
     
-    Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(columnCount, rowCount, entityCounts);
+    Model model = new model.doctorviruspatient.DoctorVirusPatientScenario(SimulatorApplication.COLUMN_COUNT, SimulatorApplication.ROW_COUNT, entityCounts);
     this.setModel(model);
     repaintGrid();
   }
diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css
index 46b78aaf90972dd435399466c9fd861ca73fc59f..7122e922d48c04aaa31064526ad32644dd927164 100644
--- a/src/main/resources/view/DarkTheme.css
+++ b/src/main/resources/view/DarkTheme.css
@@ -113,7 +113,7 @@
     -fx-background-color: #3a3a3a;
 }
 
-.button:pressed, .button:default:hover:pressed {
+.button:default:hover:pressed {
   -fx-background-color: white;
   -fx-text-fill: #1d1d1d;
 }