diff --git a/src/main/java/lab/Cannon.java b/src/main/java/lab/Cannon.java
index 92c54310524127224b89db59c3b840b7709df328..f62ad473e01ef3ebeb3d8d0ba4bd2afce514c063 100644
--- a/src/main/java/lab/Cannon.java
+++ b/src/main/java/lab/Cannon.java
@@ -13,7 +13,7 @@ public class Cannon {
 	private Point2D size;
 	private World world;
 	
-	
+	private final double speed = 20;
 	 
 
 	public Cannon(World world, Point2D position, Point2D size) {
@@ -24,7 +24,7 @@ public class Cannon {
 	}
 
 	public void simulate(double timeStep) {
-		angle = angle + direction*0.8;
+		angle = angle + direction*speed*timeStep;
 		if(angle <=-90 || angle >= 0) {
 			direction*=-1;
 		}
diff --git a/src/main/java/lab/Dragon.java b/src/main/java/lab/Dragon.java
new file mode 100644
index 0000000000000000000000000000000000000000..e44374b06b3b5aaf01a63b24133e0811c9b9f707
--- /dev/null
+++ b/src/main/java/lab/Dragon.java
@@ -0,0 +1,41 @@
+package lab;
+
+import javafx.geometry.Point2D;
+import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.image.Image;
+
+public class Dragon {
+	private static final int SIZE_OF_DRAGON = 50;
+
+	private final World world; 
+	
+	private Point2D position;
+	
+	private final Point2D velocity;
+	
+	private final Point2D dimension;
+	
+	private final Image image;
+
+	public Dragon(World world, Point2D position, Point2D velocity) {
+		this(world, position, velocity, new Point2D(SIZE_OF_DRAGON, SIZE_OF_DRAGON));
+	}
+	
+	public Dragon(World world, Point2D position, Point2D velocity, Point2D dimension) {
+		this.world = world;
+		this.position = position;
+		this.velocity = velocity;
+		this.dimension = dimension;
+		this.image = Constants.DRAGON_IMAGE;
+	}
+	
+	public void draw(GraphicsContext gc) {
+		Point2D p = world.getCanvasPoint(position);
+		gc.drawImage(image, p.getX(), p.getY(), dimension.getX(), dimension.getY());
+	}
+	
+	
+	public void simulate(double deltaT) {
+		position = position.add(velocity.multiply(deltaT));
+	}
+}
diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java
index 32e29063760794dc58a65e7060e1ad47a5f17cf0..7ae56d21a87d433a38aa342bdf0b9f05adcb807b 100644
--- a/src/main/java/lab/World.java
+++ b/src/main/java/lab/World.java
@@ -8,12 +8,14 @@ public class World {
 	private double height;
 	private BulletAnimated bulletAnimatted;
 	private Cannon cannon;
+	private Dragon dragon;
 	
 	public World(double width, double height) {
 		this.width = width;
 		this.height = height;
 		cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20));
 		bulletAnimatted = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
+		dragon = new Dragon(this, new Point2D(100, 100), new Point2D(40, 40));
 	}
 
 	public Point2D getCanvasPoint(Point2D worldPoint) {
@@ -24,11 +26,13 @@ public class World {
 		gc.clearRect(0, 0, width, height);
 		cannon.draw(gc);
 		bulletAnimatted.draw(gc);
+		dragon.draw(gc);
 	}
 
 	public void simulate(double timeDelta) {
 		bulletAnimatted.simulate(timeDelta);
 		cannon.simulate(timeDelta);
+		dragon.simulate(timeDelta);
 	}
 
 	public double getWidth() {