diff --git a/src/main/java/lab/Level.java b/src/main/java/lab/Level.java
index d8645b95a126523edbaa8c640a5abf4634b85bb7..f4a0be293d3d4822b5a6bf4de70972303f7d0a8b 100644
--- a/src/main/java/lab/Level.java
+++ b/src/main/java/lab/Level.java
@@ -13,6 +13,7 @@ public class Level {
 	private Player player;
 	private double width;
 	private double height;
+	private Monster[] monsters;
 
 	public Level(double width, double height) {
 		this.width = width;
@@ -21,6 +22,10 @@ public class Level {
 		obstacle1 = new Obstacle(this, new Point2D(300, 200), new Dimension2D(80, 40));
 		obstacle2 = new Obstacle(this);
 		player = new Player(this, new Point2D(20, 250), new Point2D(100, -20));
+		monsters = new Monster[5];
+		for (int i = 0; i < monsters.length; i++) {
+			monsters[i] = new Monster(this);
+		}
 	}
 
 	public void draw(GraphicsContext gc) {
@@ -30,10 +35,26 @@ public class Level {
 		obstacle1.draw(gc);
 		obstacle2.draw(gc);
 		player.draw(gc);
+		for (Monster monster : monsters) {
+			monster.draw(gc);
+		}
 	}
 
 	public void simulate(double delay) {
 		player.simulate(delay);
+		for (Monster monster : monsters) {
+			monster.simulate(delay);
+			if (monster.getBoundingBox().intersects(player.getBoundingBox())) {
+				monster.changeDirection();
+			}
+		}
 	}
 
+	public double getWidth() {
+		return width;
+	}
+
+	public double getHeight() {
+		return height;
+	}
 }
diff --git a/src/main/java/lab/Monster.java b/src/main/java/lab/Monster.java
new file mode 100644
index 0000000000000000000000000000000000000000..88144d128fbcfe9ea6e9933c0ce4111c7553fda3
--- /dev/null
+++ b/src/main/java/lab/Monster.java
@@ -0,0 +1,49 @@
+package lab;
+
+import java.util.Random;
+
+import javafx.geometry.Point2D;
+import javafx.geometry.Rectangle2D;
+import javafx.scene.canvas.GraphicsContext;
+import javafx.scene.image.Image;
+
+public class Monster {
+
+	private static final Random RANDOM = new Random();
+
+	private Level level;
+	private Image image;
+	private Point2D position;
+	private Point2D speed;
+
+	public Monster(Level level) {
+		this.level = level;
+		image = new Image(getClass().getResourceAsStream("red-monster.gif"));
+		position = new Point2D(level.getWidth() * 0.5 + RANDOM.nextDouble(level.getWidth() * 0.5 - image.getWidth()),
+				RANDOM.nextDouble(level.getHeight()));
+		speed = new Point2D(0, RANDOM.nextDouble(50, 150));
+	}
+
+	public Monster(Level level, Point2D position) {
+		this.level = level;
+		this.position = position;
+		image = new Image(getClass().getResourceAsStream("spike.gif"));
+	}
+
+	public void draw(GraphicsContext gc) {
+		gc.drawImage(image, position.getX(), position.getY());
+	}
+
+	public void changeDirection() {
+		speed = speed.multiply(-1);
+	}
+	public void simulate(double delay) {
+		position = position.add(speed.multiply(delay / 1_000_000_000));
+		position = new Point2D(position.getX(), position.getY() % level.getHeight());
+	}
+
+	public Rectangle2D getBoundingBox() {
+		return new Rectangle2D(position.getX(), position.getY(), image.getWidth(), image.getHeight());
+	}
+
+}
diff --git a/src/main/java/lab/Player.java b/src/main/java/lab/Player.java
index 92f7fd6342eff98dfa61f3e09d0a4a1d0d02aaf7..db14f4ad79dcf628d8f9d8717dab67b8a80bef06 100644
--- a/src/main/java/lab/Player.java
+++ b/src/main/java/lab/Player.java
@@ -1,6 +1,7 @@
 package lab;
 
 import javafx.geometry.Point2D;
+import javafx.geometry.Rectangle2D;
 import javafx.scene.canvas.GraphicsContext;
 import javafx.scene.paint.Color;
 import javafx.scene.transform.Affine;
@@ -37,7 +38,11 @@ public class Player {
 
 	public void simulate(double delay) {
 		position = position.add(speed.multiply(delay/1_000_000_000));
-		speed = speed.multiply(0.9994);
+//		speed = speed.multiply(0.9994);
+	}
+
+	public Rectangle2D getBoundingBox() {
+		return new Rectangle2D(position.getX(), position.getY(), 20, 50);
 	}
 
 }
diff --git a/src/main/resources/lab/red-monster.gif b/src/main/resources/lab/red-monster.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c545c2220ec3a52e9b046308ea4a1c1620db0f40
Binary files /dev/null and b/src/main/resources/lab/red-monster.gif differ