diff --git a/src/main/java/lab/App.java b/src/main/java/lab/App.java
index 71244dbfc7ef2b558e09052b2172a825b83a576d..d5f60893d77939385c4e01f8a2803aea4c54f790 100644
--- a/src/main/java/lab/App.java
+++ b/src/main/java/lab/App.java
@@ -1,7 +1,10 @@
 package lab;
 
+import java.util.Random;
+
 import javafx.application.Application;
 import javafx.fxml.FXMLLoader;
+import javafx.geometry.Point2D;
 import javafx.scene.Scene;
 import javafx.scene.layout.BorderPane;
 import javafx.stage.Stage;
@@ -13,6 +16,7 @@ import javafx.stage.WindowEvent;
  */
 public class App extends Application {
 
+	private static final int DEFAULT_NUMBER_OF_DRAGONS = 2;
 	public static void main(String[] args) {
 		launch(args);
 	}
@@ -32,10 +36,11 @@ public class App extends Application {
 			
 			primaryStage.setScene(scene);
 			primaryStage.resizableProperty().set(false);
-			primaryStage.setTitle("Java 1 - 6th laboratory");
+			primaryStage.setTitle("Java 1");
 			primaryStage.show();
 			controller = loader.getController();
-			controller.startGame();
+			Point2D[][] dragonsInit = getDragonsInit(scene.getWidth(), scene.getHeight()); 
+			controller.startGame(dragonsInit);
 			//Exit program when main window is closed
 			primaryStage.setOnCloseRequest(this::exitProgram);
 		} catch (Exception e) {
@@ -45,6 +50,34 @@ public class App extends Application {
 	
 
 	
+	private Point2D[][] getDragonsInit(double width, double height) {
+		
+		//ask whether would like to enter dragons
+		
+		//return default
+		return getDefaultDragonsInit(width, height);
+		
+	}
+
+
+
+	private Point2D[][] getDefaultDragonsInit(double width, double height) {
+		Random rnd = new Random();
+		Point2D[][] result = new Point2D[DEFAULT_NUMBER_OF_DRAGONS][];
+		for (int i = 0; i < result.length; i++) {
+			int x = rnd.nextInt((int) width);
+			int y = rnd.nextInt((int) height);
+			int vel_x = (rnd.nextInt(10) - 5) * 10;
+			int vel_y = (rnd.nextInt(10) - 5) * 10;
+			result[i] = new Point2D[2];
+			result[i][0] = new Point2D(x, y);
+			result[i][1] = new Point2D(vel_x, vel_y);
+		}
+		return result;
+	}
+
+
+
 	private void exitProgram(WindowEvent evt) {
 		controller.stopGame();
 		System.exit(0);
diff --git a/src/main/java/lab/GameController.java b/src/main/java/lab/GameController.java
index a13d5192cb718e83d99735c0b14d569253de3d18..4519477afdda718ccaa1c3e62e8db1506eec2bef 100644
--- a/src/main/java/lab/GameController.java
+++ b/src/main/java/lab/GameController.java
@@ -3,6 +3,7 @@
 import javafx.animation.AnimationTimer;
 import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
+import javafx.geometry.Point2D;
 import javafx.scene.canvas.Canvas;
 import javafx.scene.control.Label;
 import javafx.scene.control.Slider;
@@ -31,8 +32,8 @@ public class GameController {
 	public GameController() {
 	}
 	
-	public void startGame() {
-		this.world = new World(canvas.getWidth(), canvas.getHeight());	
+	public void startGame(Point2D[][] dragonInit) {
+		this.world = new World(canvas.getWidth(), canvas.getHeight(), dragonInit);	
 		//Draw scene on a separate thread to avoid blocking UI.
 		animationTimer = new DrawingThread(canvas, world);
 		angleSlider.valueProperty().addListener(this::angleChanged);
diff --git a/src/main/java/lab/World.java b/src/main/java/lab/World.java
index 817ed95fa86f528fa9878800f2a6126d816533ac..b233dcdfa5a5a23c7b8b76ccb45c08c4a1cc53f5 100644
--- a/src/main/java/lab/World.java
+++ b/src/main/java/lab/World.java
@@ -1,13 +1,10 @@
 package lab;
 
-import java.util.Random;
-
 import javafx.geometry.Point2D;
 import javafx.scene.canvas.GraphicsContext;
 
 public class World {
 	
-	private final static int NUMBER_OF_DRAGONS = 2;
 	
 	private double width;
 	private double height;
@@ -20,22 +17,18 @@ public class World {
 	
 	private DrawableSimulable []entities; 
 	
-	public World(double width, double height) {
+	public World(double width, double height, Point2D [][]dragonInit) {
 		super();
 		this.width = width;
 		this.height = height;
 		Cannon cannon = new Cannon(this, new Point2D(50, 50), new Point2D(100, 20));
-		entities = new DrawableSimulable[2 + NUMBER_OF_DRAGONS];
+		entities = new DrawableSimulable[2 + dragonInit.length];
 		entities[0] = cannon;
 		entities[1] = new BulletAnimated(this, cannon, new Point2D(30, 60), new Point2D(0, 0), 40);
-		Random rnd = new Random();
 		
 		for (int i = 2; i < entities.length; i++) {
-			int x = rnd.nextInt((int) width);
-			int y = rnd.nextInt((int) height);
-			int vel_x = (rnd.nextInt(10) - 5) * 10;
-			int vel_y = (rnd.nextInt(10) - 5) * 10;
-			entities[i] = new Dragon(this, new Point2D(x, y), new Point2D(vel_x, vel_y));
+		
+			entities[i] = new Dragon(this, dragonInit[i - 2][0], dragonInit[i - 2][1]);
 		}
 	}