diff --git a/src/main/java/engine/graphic/GraphicEngine.java b/src/main/java/engine/graphic/GraphicEngine.java
index c284e0a37c1a90fbe5fb0fc5783f640a0b3297f5..f78e8cb320cb71b68b4cf57da1a1a56484b0e2f8 100644
--- a/src/main/java/engine/graphic/GraphicEngine.java
+++ b/src/main/java/engine/graphic/GraphicEngine.java
@@ -40,8 +40,9 @@ public class GraphicEngine extends JFrame implements Engine {
             } catch (IOException e) {
                 throw new RuntimeException(e);
             }
-
         }
+        repaint();
+        revalidate();
     }
 
 
diff --git a/src/main/java/engine/physic/Entity.java b/src/main/java/engine/physic/Entity.java
index 578ef153cc30fde9863c5f894043886f1046aacd..9b1fd46dcfa9ff995df296cd3bf0d41a796773dd 100644
--- a/src/main/java/engine/physic/Entity.java
+++ b/src/main/java/engine/physic/Entity.java
@@ -78,4 +78,7 @@ public interface Entity {
      */
     public void halt();
 
+    int getWidth();
+
+    int getHeight();
 }
diff --git a/src/main/java/engine/physic/Movable.java b/src/main/java/engine/physic/Movable.java
index beb4b7ecde76179b66eb8d49a5bae2da93961bcb..b62d88a86e2f5ccb856773fcfd62dd27f5376c28 100644
--- a/src/main/java/engine/physic/Movable.java
+++ b/src/main/java/engine/physic/Movable.java
@@ -97,4 +97,14 @@ public class Movable implements Entity {
         }
 
     }
+
+    @Override
+    public int getWidth() {
+        return width;
+    }
+
+    @Override
+    public int getHeight() {
+        return height;
+    }
 }
diff --git a/src/main/java/engine/physic/NotMovable.java b/src/main/java/engine/physic/NotMovable.java
index f6ecdb13bad69cf8c20cd0de4f066fd4af69e056..8b7e9aaa853e4dccc672dbc17c05e5a41c3fceea 100644
--- a/src/main/java/engine/physic/NotMovable.java
+++ b/src/main/java/engine/physic/NotMovable.java
@@ -68,4 +68,14 @@ public class NotMovable implements Entity {
 
     }
 
+    @Override
+    public int getWidth() {
+        return 0;
+    }
+
+    @Override
+    public int getHeight() {
+        return 0;
+    }
+
 }
diff --git a/src/main/java/engine/physic/PhysicEngine.java b/src/main/java/engine/physic/PhysicEngine.java
index b9dce4cc9f1d1968ebf2172bf0ad0e7f01d886f3..64ac67034aa26fdb99a7e5c5d57dd54ebe414349 100644
--- a/src/main/java/engine/physic/PhysicEngine.java
+++ b/src/main/java/engine/physic/PhysicEngine.java
@@ -9,6 +9,8 @@ import java.util.HashMap;
 
 public class PhysicEngine implements Engine {
     public HashMap<PongObject, Entity> pongObjectEntityHashMap = new HashMap<>();
+
+    private HashMap<Coordinates2D, PongObject> positions = new HashMap<>();
     public PhysicEngine(){
         for (PongObject pongObject: Kernel.gameObjects) {
             Coordinates2D speed = new Coordinates2D(0, 0);
@@ -17,20 +19,21 @@ public class PhysicEngine implements Engine {
             }
             //Coordinates2D speed = new Coordinates2D(random.nextInt(2) - 1, random.nextInt(2) - 1);
             pongObjectEntityHashMap.put(pongObject, new Movable(1, pongObject.getPosition(), speed, new Coordinates2D(0, 0), pongObject.getWidth(), pongObject.getHeight()));
-            /*if(pongObject.getName().equals("Left racket")){
-                pongObjectEntityHashMap.put(pongObject, new Movable(1, pongObject.getPosition(), new Coordinates2D(0,1), new Coordinates2D(0, 0), pongObject.getWidth(), pongObject.getHeight()));
-            }
+            positions.put(pongObject.getPosition(), pongObject);
 
-            if(pongObject.getName().equals("Right racket")){
-                pongObjectEntityHashMap.put(pongObject, new Movable(1, pongObject.getPosition(), new Coordinates2D(0,1), new Coordinates2D(0, 0), pongObject.getWidth(), pongObject.getHeight()));
-            }*/
         }
     }
     @Override
     public void update(){
         for (PongObject pongObject: Kernel.gameObjects) {
             pongObjectEntityHashMap.get(pongObject).updatePosition(); // Updating of the associated movable position
+            //checkCollision();
             pongObject.setPosition(pongObjectEntityHashMap.get(pongObject).getPosition()); // Updating of the pong object position
         }
     }
+
+    public void checkCollision(Entity firstObject, Entity secondObject){
+        //TODO: check collision between two objects
+    }
+
 }
diff --git a/src/main/java/pong/PongApp.java b/src/main/java/pong/PongApp.java
index fe1bba22dfc620a88b13ae8bb5f6661ff3f87d1e..3a4d16043fa8bfe3c461ebd7d08d98c140dff06a 100644
--- a/src/main/java/pong/PongApp.java
+++ b/src/main/java/pong/PongApp.java
@@ -5,8 +5,6 @@ import engine.Kernel;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Timer;
-import java.util.TimerTask;
 
 public class PongApp {
 
@@ -32,15 +30,14 @@ public class PongApp {
         Kernel kernel = new Kernel("Pong", width, height, components);
         //kernel.setGameObject(components);
 
-        Timer timer = new Timer();
-        int delay = 0; // Délai initial avant la première exécution (en millisecondes)
-        int interval = 1; // Intervalle entre les exécutions (en millisecondes)
 
-        timer.schedule(new TimerTask() {
-            @Override
-            public void run() {
+        while(true){
+            try {
                 kernel.update();
+                Thread.sleep(1);
+            } catch (InterruptedException e) {
+                e.printStackTrace();
             }
-        }, delay, interval);
+        }
     }
 }