diff --git a/src/main/java/engine/Kernel.java b/src/main/java/engine/Kernel.java
index ce338264263a030a2f71a7b2142b5baadaa2ff41..14abde27555311a3c24a1e3b914dd13b6c6cfd56 100644
--- a/src/main/java/engine/Kernel.java
+++ b/src/main/java/engine/Kernel.java
@@ -3,24 +3,24 @@ package engine;
 import engine.graphic.GraphicEngine;
 import engine.physic.Coordinates2D;
 import engine.physic.Entity;
-import engine.physic.Movable;
+import engine.sound.SoundEngine;
 import engine.physic.PhysicEngine;
-import pong.PongApp;
 import pong.PongObject;
-import pong.PongRacket;
 
 import javax.swing.*;
 import java.awt.event.ActionEvent;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Random;
 
 public class Kernel {
 
     ArrayList<Engine> engines = new ArrayList<Engine>();
     PhysicEngine physicEngine;
     GraphicEngine graphicEngine;
+    SoundEngine soundEngine =new SoundEngine();
+    public static boolean isCollision = false;
+
 
     //public HashMap<PongObject, ImageComponent> pongObjectImageComponentHashMap = new HashMap<>();
 
@@ -39,10 +39,12 @@ public class Kernel {
         engines.add(this.graphicEngine);//
         this.physicEngine = new PhysicEngine();
         engines.add(physicEngine);
+        engines.add(soundEngine);
         pongObjectEntityHashMap = physicEngine.pongObjectEntityHashMap;
 
         this.update();
         this.setKeysAndKeyReleasedListeners((JPanel) this.graphicEngine.getContentPane());
+        soundEngine = new SoundEngine();
     }
 
     /**
@@ -74,9 +76,7 @@ public class Kernel {
              ) {
             engine.update();
         }
-        // Repainting the grid
-        graphicEngine.repaint();
-        graphicEngine.revalidate();
+
     }
 
     /**
diff --git a/src/main/java/engine/graphic/GraphicEngine.java b/src/main/java/engine/graphic/GraphicEngine.java
index 551b88ca9a3c62475b0db2787e1883023c6a4fab..8fef044b2c1960c7c1a2b48aeda836a88c59baa4 100644
--- a/src/main/java/engine/graphic/GraphicEngine.java
+++ b/src/main/java/engine/graphic/GraphicEngine.java
@@ -2,6 +2,7 @@ package engine.graphic;
 
 import engine.Engine;
 import engine.Kernel;
+import engine.physic.Coordinates2D;
 import pong.PongApp;
 import pong.PongObject;
 
@@ -48,6 +49,7 @@ public class GraphicEngine extends JFrame implements Engine {
                 throw new RuntimeException(e);
             }
         }
+        getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(670, 100), PongApp.score1, PongApp.score2));
         repaint();
         revalidate();
     }
@@ -63,5 +65,8 @@ public class GraphicEngine extends JFrame implements Engine {
         this.getContentPane().add(new RectangleComponent(100, 100, PongApp.rectWidth, PongApp.rectHeight));
     }
 
+    public void drawScore(int score1, int score2){
+        this.getContentPane().add(new ScoreComponent(new Coordinates2D(100, 100), new Coordinates2D(500, 100), score1, score2));
+    }
 
 }
diff --git a/src/main/java/engine/graphic/ScoreComponent.java b/src/main/java/engine/graphic/ScoreComponent.java
new file mode 100644
index 0000000000000000000000000000000000000000..bbde00a41f19145c8c9539d62be101a659029f56
--- /dev/null
+++ b/src/main/java/engine/graphic/ScoreComponent.java
@@ -0,0 +1,33 @@
+package engine.graphic;
+
+import engine.physic.Coordinates2D;
+import pong.PongApp;
+
+import javax.swing.*;
+import java.awt.*;
+
+public class ScoreComponent extends JComponent {
+    private int score1;
+    private int score2;
+    Coordinates2D position1;
+    Coordinates2D position2;
+
+    public ScoreComponent(Coordinates2D position1, Coordinates2D position2, int score1, int score2) {
+        this.score1 = score1;
+        this.score2 = score2;
+        this.position1 = position1;
+        this.position2 = position2;
+        this.setSize(PongApp.width, PongApp.height);
+        this.setVisible(true);
+        this.setLayout(null);
+    }
+
+    @Override
+    public void paintComponent(Graphics g) {
+        super.paintComponent(g);
+        g.setColor(Color.WHITE);
+        g.setFont(new Font("Anton", Font.PLAIN, 50));
+        g.drawString(String.valueOf(score1), position1.getX(), position1.getY());
+        g.drawString(String.valueOf(score2), position2.getX(), position2.getY());
+    }
+}
diff --git a/src/main/java/engine/physic/PhysicEngine.java b/src/main/java/engine/physic/PhysicEngine.java
index cb371dc4888765ac395986d653acf96ac6fca36b..f56f2e8335a3af1a724221d959bf399e7d68f734 100644
--- a/src/main/java/engine/physic/PhysicEngine.java
+++ b/src/main/java/engine/physic/PhysicEngine.java
@@ -2,7 +2,6 @@ package engine.physic;
 
 import engine.Engine;
 import engine.Kernel;
-import engine.Sound;
 import pong.PongObject;
 
 import java.util.HashMap;
@@ -37,8 +36,9 @@ public class PhysicEngine implements Engine {
                     if(!po2.getName().equals("Ball")){
                         if(checkCollision(pongObjectEntityHashMap.get(pongObject), pongObjectEntityHashMap.get(po2))){
                             i++;
-                            String collisionPath = "src/main/resources/Sound/collision.wav";
-                            Sound.playMusic(collisionPath);
+                            //String collisionPath = "src/main/resources/Sound/collision.wav";
+                            //Sound.playMusic(collisionPath);
+                            Kernel.isCollision = true;
                             System.out.println("Collision " + i);
                             pongObjectEntityHashMap.get(pongObject).setPosition(previousPosition);
                             if(i % 2 == 0){
diff --git a/src/main/java/engine/Sound.java b/src/main/java/engine/sound/SoundEngine.java
similarity index 61%
rename from src/main/java/engine/Sound.java
rename to src/main/java/engine/sound/SoundEngine.java
index c3ddf0b89bf53cb36739e921389bf2deecc427db..edb29546648c4de244816d1bfc0767ef6391e0b4 100644
--- a/src/main/java/engine/Sound.java
+++ b/src/main/java/engine/sound/SoundEngine.java
@@ -1,11 +1,16 @@
-package engine;
+package engine.sound;
+
+import engine.Engine;
+import engine.Kernel;
 
 import java.io.File;
 import javax.sound.sampled.AudioInputStream;
 import javax.sound.sampled.AudioSystem;
 import javax.sound.sampled.Clip;
 
-public class Sound {
+public class SoundEngine implements Engine {
+
+    public SoundEngine(){}
     public static void playMusic(String location){
         try {
             File musicPath = new File(location);
@@ -23,5 +28,19 @@ public class Sound {
             System.out.println(e);
         }
     }
+
+    @Override
+    public void update() {
+        if (Kernel.isCollision){
+            String collisionPath = "src/main/resources/Sound/collision.wav";
+            SoundEngine.playMusic(collisionPath);
+            Kernel.isCollision = false;
+        }
+    }
+
+    @Override
+    public void restart() {
+
+    }
 }
 
diff --git a/src/main/java/pong/PongApp.java b/src/main/java/pong/PongApp.java
index 85645faff61452efab51882091a8c65ec9b23926..51b1521cdaa7c4106fecaa79db6d3c5f5bc82e54 100644
--- a/src/main/java/pong/PongApp.java
+++ b/src/main/java/pong/PongApp.java
@@ -1,6 +1,5 @@
 package pong;
 
-import engine.Sound;
 import engine.physic.Coordinates2D;
 import engine.Kernel;
 
@@ -36,8 +35,6 @@ public class PongApp {
 
         int ballWidth = 32;
 
-        String son = "src/main/resources/Sound/minecraft_butdrill.wav";
-        Sound.playMusic(son);
         PongRacket leftRacket = new PongRacket("Left racket", "src/main/resources/pong/raquette.png", new Coordinates2D(widthDiff + 5, height/2 - racketHeight/2), racketWidth, racketHeight);
         components.add(leftRacket);