diff --git a/pom.xml b/pom.xml
index 28e3de1e62dd55223da8bee198c9132cc761bdfe..b5be8144ba3a05072c3ab6c4f28851ceb31fbf36 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,14 +31,14 @@
         <dependency>
             <groupId>com.fasterxml.jackson.core</groupId>
             <artifactId>jackson-databind</artifactId>
-            <version>2.13.2.2</version>
+            <version>2.13.3</version>
         </dependency>
 
         <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->
         <dependency>
             <groupId>com.fasterxml.jackson.dataformat</groupId>
             <artifactId>jackson-dataformat-yaml</artifactId>
-            <version>2.13.2</version>
+            <version>2.13.3</version>
         </dependency>
     </dependencies>
 
diff --git a/src/main/java/agents/Agent.java b/src/main/java/agents/Agent.java
index c4b9c12ddbcf33182028b28f270a63ec16e3b278..7117a8fcb8694728e1cee8ff79f1cb38e6c30f64 100644
--- a/src/main/java/agents/Agent.java
+++ b/src/main/java/agents/Agent.java
@@ -1,7 +1,5 @@
 package agents;
 
-import behaviors.Cyclic;
-
 public sealed interface Agent
 permits CyclicAgent, ThreePhasedAgent{
 
diff --git a/src/main/java/agents/RandomWalkingAgent3P.java b/src/main/java/agents/RandomWalkingAgent3P.java
index 7edbcae221f05cc1e16523883015f7263383d016..720f46613108b067a41c9cdb717653dfc6cfeb39 100644
--- a/src/main/java/agents/RandomWalkingAgent3P.java
+++ b/src/main/java/agents/RandomWalkingAgent3P.java
@@ -8,7 +8,7 @@ import java.awt.*;
 
 public class RandomWalkingAgent3P extends RandomWakingAgent implements ThreePhasedSEIRSAgent {
 
-    private String id;
+    private final String id;
 
     public RandomWalkingAgent3P(Point position, long seed, SEIRSEnvironment environment) {
         super(position, seed, environment);
diff --git a/src/main/java/agents/seirs/CyclicSEIRSAgent.java b/src/main/java/agents/seirs/CyclicSEIRSAgent.java
index 135b9f805acd4d660bff23a909a819d5d7e9198c..09fe34a2537c0bfd1383b02ad500336d643ab3ac 100644
--- a/src/main/java/agents/seirs/CyclicSEIRSAgent.java
+++ b/src/main/java/agents/seirs/CyclicSEIRSAgent.java
@@ -1,9 +1,6 @@
 package agents.seirs;
 
 import agents.CyclicAgent;
-import agents.states.SEIRSState;
-import behaviors.Infectious;
-import behaviors.Positionable2D;
 
 public interface CyclicSEIRSAgent extends CyclicAgent, SEIRSAgent {
 
diff --git a/src/main/java/agents/seirs/FairInfectionRWAgent.java b/src/main/java/agents/seirs/FairInfectionRWAgent.java
index 2aebf28e8763a562f185ed36e88a1fa2e40236c2..10a8d1cf0f07ab074b435b4ccb1384cc7bcd0e7c 100644
--- a/src/main/java/agents/seirs/FairInfectionRWAgent.java
+++ b/src/main/java/agents/seirs/FairInfectionRWAgent.java
@@ -45,9 +45,13 @@ public abstract class FairInfectionRWAgent extends Randomized implements SEIRSAg
 
     @Override
     public boolean isExposed() {
+        return rollExposition(environment, position, r.nextInt(10000));
+    }
+
+    static boolean rollExposition(SEIRSEnvironment environment, Point position, int i2) {
         boolean isExposed = false;
-        for (int i = 0 ; i<environment.getInfectedNeighbors(position).size() ; i++) {
-            int roll = r.nextInt(10000)+1;
+        for (int i = 0; i< environment.getInfectedNeighbors(position).size() ; i++) {
+            int roll = i2 +1;
             if (roll <= YamlReader.getParams().infectionRate()*10000) {
                 isExposed = true;
             }
diff --git a/src/main/java/agents/seirs/FairInfectionRWAgent3P.java b/src/main/java/agents/seirs/FairInfectionRWAgent3P.java
index e69c6fd026325cdf7f6a1afc486ee99a3997d5d3..a2865f546b428a2451b24c41014a9acd04ccda56 100644
--- a/src/main/java/agents/seirs/FairInfectionRWAgent3P.java
+++ b/src/main/java/agents/seirs/FairInfectionRWAgent3P.java
@@ -1,13 +1,12 @@
 package agents.seirs;
 
-import agents.ThreePhasedAgent;
 import environment.SEIRSEnvironment;
 
 import java.awt.*;
 
 public class FairInfectionRWAgent3P extends FairInfectionRWAgent implements ThreePhasedSEIRSAgent {
 
-    private String id;
+    private final String id;
 
     public FairInfectionRWAgent3P(Point position, long seed, SEIRSEnvironment environment) {
         super(position, seed, environment);
diff --git a/src/main/java/agents/seirs/FairInfectionRWAgentCyclic.java b/src/main/java/agents/seirs/FairInfectionRWAgentCyclic.java
index 707f1d7505b3e92758c7b75e166b42ef76e25538..195d1cbedd26087e22bfc70bc92ca2177653e9ea 100644
--- a/src/main/java/agents/seirs/FairInfectionRWAgentCyclic.java
+++ b/src/main/java/agents/seirs/FairInfectionRWAgentCyclic.java
@@ -1,13 +1,12 @@
 package agents.seirs;
 
 import environment.SEIRSEnvironment;
-import utils.YamlReader;
 
 import java.awt.*;
 
 public class FairInfectionRWAgentCyclic extends FairInfectionRWAgent implements CyclicSEIRSAgent {
 
-    private String id;
+    private final String id;
     public FairInfectionRWAgentCyclic(Point position, long seed, SEIRSEnvironment environment) {
         super(position, seed, environment);
         this.id = String.valueOf(seed);
diff --git a/src/main/java/agents/seirs/RandomWakingAgent.java b/src/main/java/agents/seirs/RandomWakingAgent.java
index bccdf5d4a69f0a291829689afeaaf1ad9a9403ef..cef450d6fac8fcb1206f0f171ee72bc594e1c77e 100644
--- a/src/main/java/agents/seirs/RandomWakingAgent.java
+++ b/src/main/java/agents/seirs/RandomWakingAgent.java
@@ -9,6 +9,8 @@ import utils.YamlReader;
 import java.awt.*;
 import java.util.List;
 
+import static agents.seirs.FairInfectionRWAgent.rollExposition;
+
 public abstract class RandomWakingAgent extends Randomized implements SEIRSAgent {
 
     protected Point position;
@@ -46,14 +48,7 @@ public abstract class RandomWakingAgent extends Randomized implements SEIRSAgent
 
     @Override
     public boolean isExposed() {
-        boolean isExposed = false;
-        for (int i = 0 ; i<environment.getInfectedNeighbors(position).size() ; i++) {
-            int roll = r.nextInt(10000)+1;
-            if (roll <= YamlReader.getParams().infectionRate()*10000) {
-                isExposed = true;
-            }
-        }
-        return isExposed;
+        return rollExposition(environment, position, r.nextInt(10000));
     }
 
     @Override
diff --git a/src/main/java/agents/seirs/RandomWalkingAgentCyclic.java b/src/main/java/agents/seirs/RandomWalkingAgentCyclic.java
index 6c1874cb898ea5f04b76ab3edbee1d19339d9b89..42cdb7fea89c3255402a85f31daf7e5c7698100c 100644
--- a/src/main/java/agents/seirs/RandomWalkingAgentCyclic.java
+++ b/src/main/java/agents/seirs/RandomWalkingAgentCyclic.java
@@ -1,17 +1,12 @@
 package agents.seirs;
 
-import agents.states.SEIRSState;
-import agents.states.SuceptibleSEIRSState;
-import behaviors.Randomized;
 import environment.SEIRSEnvironment;
-import utils.YamlReader;
 
 import java.awt.Point;
-import java.util.List;
 
 public class RandomWalkingAgentCyclic extends RandomWakingAgent implements CyclicSEIRSAgent {
 
-    private String id;
+    private final String id;
 
     public RandomWalkingAgentCyclic(Point position, long seed, SEIRSEnvironment environment) {
         super(position, seed, environment);
diff --git a/src/main/java/agents/states/ExposedSEIRSState.java b/src/main/java/agents/states/ExposedSEIRSState.java
index b24651c0247761252d9589d5ebbc21ce66aad8f2..848e943c4deca9b948e29d559e24f260e1909fe2 100644
--- a/src/main/java/agents/states/ExposedSEIRSState.java
+++ b/src/main/java/agents/states/ExposedSEIRSState.java
@@ -1,6 +1,5 @@
 package agents.states;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 
 public class ExposedSEIRSState extends SEIRSState {
diff --git a/src/main/java/agents/states/InfectedSEIRSState.java b/src/main/java/agents/states/InfectedSEIRSState.java
index d8c18f291b233e4aa8c109cf15ec1341fc9234d7..b7ef749348924fd9f48699aee8dcffe770a093b7 100644
--- a/src/main/java/agents/states/InfectedSEIRSState.java
+++ b/src/main/java/agents/states/InfectedSEIRSState.java
@@ -1,6 +1,5 @@
 package agents.states;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 
 public class InfectedSEIRSState extends SEIRSState {
diff --git a/src/main/java/agents/states/RecoveredSEIRSState.java b/src/main/java/agents/states/RecoveredSEIRSState.java
index 0a05430d3368b05fc059ac3cfa3b70597a7fcbbc..c434926d51858d677417e076c7967f6afb6a6413 100644
--- a/src/main/java/agents/states/RecoveredSEIRSState.java
+++ b/src/main/java/agents/states/RecoveredSEIRSState.java
@@ -1,6 +1,5 @@
 package agents.states;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 
 public class RecoveredSEIRSState extends SEIRSState {
diff --git a/src/main/java/agents/states/SuceptibleSEIRSState.java b/src/main/java/agents/states/SuceptibleSEIRSState.java
index 87c5335c6ef7ce42db23d6c454eb79de17119887..890d486f11222d3cdf4c03589e8de727f00e7f0f 100644
--- a/src/main/java/agents/states/SuceptibleSEIRSState.java
+++ b/src/main/java/agents/states/SuceptibleSEIRSState.java
@@ -1,6 +1,5 @@
 package agents.states;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 
 public class SuceptibleSEIRSState extends SEIRSState {
diff --git a/src/main/java/environment/ChunkedSEIRSEnvironment.java b/src/main/java/environment/ChunkedSEIRSEnvironment.java
index d489eac3482fc4e1bd0d438eee72d14a0aa8e983..5e3e498793019c75c1afc3c20c7bb887d9ceab5b 100644
--- a/src/main/java/environment/ChunkedSEIRSEnvironment.java
+++ b/src/main/java/environment/ChunkedSEIRSEnvironment.java
@@ -1,7 +1,6 @@
 package environment;
 
 import agents.Agent;
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 import agents.states.InfectedSEIRSState;
 import agents.states.SEIRSState;
@@ -50,8 +49,8 @@ public class ChunkedSEIRSEnvironment implements SEIRSEnvironment {
 
     private Point getRelativePoint(int relativeTo, Point p) {
         return switch (relativeTo) {
-            case LEFT -> new Point(p.x-1,p.y);
-            case RIGHT -> new Point(p.x+1,p.y);
+            //case LEFT -> new Point(p.x-1,p.y);
+            case LEFT, RIGHT -> new Point(p.x+1,p.y);
             case UP -> new Point(p.x,p.y-1);
             case DOWN -> new Point(p.x,p.y+1);
             case CENTER -> p;
diff --git a/src/main/java/environment/SEIRSEnvironment.java b/src/main/java/environment/SEIRSEnvironment.java
index 7e2a804885d784ac46aed87fea5b3d118c12639e..445e0d142d07350cd32f435ec0fc0a526c042fce 100644
--- a/src/main/java/environment/SEIRSEnvironment.java
+++ b/src/main/java/environment/SEIRSEnvironment.java
@@ -1,6 +1,5 @@
 package environment;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 
 import java.awt.*;
diff --git a/src/main/java/environment/WrappingChunkedSEIRSEnvironment.java b/src/main/java/environment/WrappingChunkedSEIRSEnvironment.java
index 024638e8d46adcaf775118cb6b8005abb5ea79f4..84f15d0e9583a63586ce981c4bd9e025d794b790 100644
--- a/src/main/java/environment/WrappingChunkedSEIRSEnvironment.java
+++ b/src/main/java/environment/WrappingChunkedSEIRSEnvironment.java
@@ -1,6 +1,5 @@
 package environment;
 
-import agents.seirs.CyclicSEIRSAgent;
 import agents.seirs.SEIRSAgent;
 import behaviors.Positionable2D;
 
diff --git a/src/main/java/sma/SEIRS_SMA.java b/src/main/java/sma/SEIRS_SMA.java
index 50afb577fa495a13b51d765b75e9430401e5ebf7..5894c1174ab699ed0e1f228a6f870531282c3ed9 100644
--- a/src/main/java/sma/SEIRS_SMA.java
+++ b/src/main/java/sma/SEIRS_SMA.java
@@ -178,6 +178,7 @@ public class SEIRS_SMA extends Randomized implements SMA{
 
     @Override
     public void run() {
+        calculateDensity();
         Instant startTime = Instant.now();
         System.out.println("Starting simulation at : "+ Date.from(startTime));
         if (parameters.nbOfCycles() <0) {
@@ -203,6 +204,12 @@ public class SEIRS_SMA extends Randomized implements SMA{
         }
     }
 
+    private void calculateDensity() {
+        int pixels = parameters.size()*parameters.size();
+        int agents = parameters.population();
+        System.out.println("Population density is : " + (float)agents/pixels + " agents per pixel.");
+    }
+
     public static void main(String[] args) {
         SMA sma = new SEIRS_SMA(YamlReader.getParams());
         sma.run();
diff --git a/src/main/resources/output.png b/src/main/resources/output.png
index 5e7cdf00725107ea0c5b20b6ef6f2d7b66652287..310181f96fff737b9bfe5c206b8691e159e4082e 100644
Binary files a/src/main/resources/output.png and b/src/main/resources/output.png differ
diff --git a/src/main/resources/parameters.yaml b/src/main/resources/parameters.yaml
index 10385d74094ca86c9982e3347bb5d240eb9bda0a..5d744438cd440a1aea3c1a6816509b579276e685 100644
--- a/src/main/resources/parameters.yaml
+++ b/src/main/resources/parameters.yaml
@@ -1,17 +1,17 @@
 graphicalMode: true
-incubationRate: 0.3
-infectionRate: 0.8
-looseImmunityRate: 0.008
-recoveryRate: 0.14
-nbOfCycles: 2000
+incubationRate: 0.33
+infectionRate: 0.5
+looseImmunityRate: 0.0027
+recoveryRate: 0.10
+nbOfCycles: 720
 nbOfPatientZero: 1
-population: 3000
+population: 1000
 recordExperiment: false
 playRecord: false
 seed: 120
-size: 1000
+size: 400
 wrappingWorld : true
 synchronousMode: false
 timeBetweenCycles: 0
-infectionStacks : false
+infectionStacks : true
 threePhased : false
\ No newline at end of file