diff --git a/src/main/java/lab/BulletAnimated.java b/src/main/java/lab/BulletAnimated.java
index d23228736b2a041317f29330b446d46a0572257a..0120333824cb9650b60cdbbaf4bb798b460d61a9 100644
--- a/src/main/java/lab/BulletAnimated.java
+++ b/src/main/java/lab/BulletAnimated.java
@@ -113,4 +113,9 @@ public class BulletAnimated  implements DrawableSimulable, Collisionable{
 		speed = initialSpeed;
 	}
 	
+	public void setHitListener(HitListener hitListener) {
+		this.hitListener = hitListener;
+		System.out.println(hitListener.getClass());
+	}
+	
 }
diff --git a/src/main/java/lab/HitListener.java b/src/main/java/lab/HitListener.java
index 51cc8dd80725b18868a8000d5eba9764598395d2..5e58e3e2cdc1cc412a4baba3e915b1ecb4cf9ddd 100644
--- a/src/main/java/lab/HitListener.java
+++ b/src/main/java/lab/HitListener.java
@@ -1,5 +1,7 @@
 package lab;
 
+@FunctionalInterface
 public interface HitListener {
 	void hit();
+	
 }
diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java
index f73df601576a2b5379934322d951e64136862f5e..18896e1b0863c4797c55aaa0756056487875ae5c 100644
--- a/src/main/java/lab/World.java
+++ b/src/main/java/lab/World.java
@@ -27,7 +27,9 @@ public class World {
 		Cannon cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20));
 		entities = new DrawableSimulable[2 + NUMBER_OF_DRAGONS];
 		entities[0] = cannon;
-		entities[1] = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
+		BulletAnimated bulletAnimated;
+		entities[1] = bulletAnimated = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
+		bulletAnimated.setHitListener(this::hit);
 		Random rnd = new Random();
 		
 		for (int i = 2; i < entities.length; i++) {
@@ -118,5 +120,11 @@ public class World {
 	public void setGameListener(GameListener gameListener) {
 		this.gameListener = gameListener;
 	}
+	
+	
+	private void hit() {
+		hits++;
+		gameListener.stateChanged(shoots, hits);
+	}
 
 }