diff --git a/pom.xml b/pom.xml
index 23bdce1edbac5bb248323c73b21bab7097b18c9d..53176fe98a76b0a14c970153c59045ffb8f913f1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,8 +2,8 @@
 	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 	<modelVersion>4.0.0</modelVersion>
-	<groupId>vsb-cs-java1</groupId>
-	<artifactId>lab11v3</artifactId>
+	<groupId>cz.vsb.fei.java2</groupId>
+	<artifactId>java2-lab02-v3</artifactId>
 	<version>0.0.1-SNAPHOST</version>
 	<packaging>jar</packaging>
 	<properties>
diff --git a/src/main/java/lab/App.java b/src/main/java/lab/App.java
index 9a2c2db85648a36072ae4149a7d08ed00c682f31..d9b260928b49e77c2ae47234b841b5ffbcad7609 100644
--- a/src/main/java/lab/App.java
+++ b/src/main/java/lab/App.java
@@ -31,8 +31,7 @@ public class App extends Application {
 		try {
 			this.primaryStage = primaryStage;
 			switchToMenu();
-			primaryStage.resizableProperty().set(false);
-			primaryStage.setTitle("Java 1 - 1th laboratory");
+			primaryStage.setTitle("Java 2 - 2th laboratory");
 			primaryStage.show();
 			// Exit program when main window is closed
 			primaryStage.setOnCloseRequest(this::exitProgram);
diff --git a/src/main/java/lab/DbConnector.java b/src/main/java/lab/DbConnector.java
index 9aba4e9d79f07386e26e3b024bde198495a235b2..d7a0594cf69ca3baa2910308fc4b8b8d1cb5b0bb 100644
--- a/src/main/java/lab/DbConnector.java
+++ b/src/main/java/lab/DbConnector.java
@@ -13,15 +13,15 @@ public class DbConnector {
 
 	private static final String JDBC_CONECTIN_STRING = "jdbc:h2:file:./scoreDB";
 
-	public static List<Score> getAll() {
+	public List<Score> getAll() {
 		return queryScore("select * from scores;");
 	}
 
-	public static List<Score> getFirstTen() {
+	public List<Score> getFirstTen() {
 		return queryScore("select * from scores order by points  desc limit 10;");
 	}
 
-	private static List<Score> queryScore(String query) {
+	private List<Score> queryScore(String query) {
 		List<Score> result = new ArrayList<>();
 		try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
 				Statement stm = con.createStatement();
@@ -35,7 +35,7 @@ public class DbConnector {
 		return result;
 	}
 
-	public static void createTable() {
+	public void init() {
 		try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
 				Statement stm = con.createStatement();) {
 			stm.executeUpdate("CREATE TABLE if not exists scores (nick VARCHAR(50) NOT NULL, points INT NOT NULL);");
@@ -44,7 +44,7 @@ public class DbConnector {
 		}
 	}
 
-	public static void insertScore(Score score) {
+	public void insertScore(Score score) {
 		try (Connection con = DriverManager.getConnection(JDBC_CONECTIN_STRING);
 				PreparedStatement stm = con.prepareStatement("INSERT INTO scores VALUES (?, ?)");) {
 			stm.setString(1, score.getName());
diff --git a/src/main/java/lab/GameController.java b/src/main/java/lab/GameController.java
index d48fecd0a82017a82c5505f253decabd9bc3ae0e..7e5b0b9fc514dab18015fd89f7771f77b7abf52c 100644
--- a/src/main/java/lab/GameController.java
+++ b/src/main/java/lab/GameController.java
@@ -73,17 +73,17 @@ public class GameController {
     void btnGenerateScoreAction(ActionEvent event) {
     	Score score = Score.generate();
     	this.scores.getItems().add(score);
-    	DbConnector.insertScore(score);
+    	ScoreStorageFactory.getInstance().insertScore(score);
     }
 
     @FXML
     void btnLoadAllAction(ActionEvent event) {
-    	updateScoreTable(DbConnector.getAll());
+    	updateScoreTable(ScoreStorageFactory.getInstance().getAll());
     }
 
     @FXML
     void btnLoadFirstTenAction(ActionEvent event) {
-    	updateScoreTable(DbConnector.getFirstTen());
+    	updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
     }
     
     private void updateScoreTable(List<Score> scores) {
diff --git a/src/main/java/lab/MainScreenController.java b/src/main/java/lab/MainScreenController.java
index 5f844a1ec66882498838666957b2adc919268a5b..56d87154f200b48229f3e3fdd048c667754f3e9f 100644
--- a/src/main/java/lab/MainScreenController.java
+++ b/src/main/java/lab/MainScreenController.java
@@ -67,17 +67,17 @@ public class MainScreenController {
 	void btnGenerateScoreAction(ActionEvent event) {
 		Score score = Score.generate();
 		this.scores.getItems().add(score);
-		DbConnector.insertScore(score);
+		ScoreStorageFactory.getInstance().insertScore(score);
 	}
 
 	@FXML
 	void btnLoadAllAction(ActionEvent event) {
-		updateScoreTable(DbConnector.getAll());
+		updateScoreTable(ScoreStorageFactory.getInstance().getAll());
 	}
 
 	@FXML
 	void btnLoadFirstTenAction(ActionEvent event) {
-		updateScoreTable(DbConnector.getFirstTen());
+		updateScoreTable(ScoreStorageFactory.getInstance().getFirstTen());
 	}
 
 	private void updateScoreTable(List<Score> scores) {
@@ -101,8 +101,8 @@ public class MainScreenController {
 
 	private void initDB() {
 		// Stream.generate(Score::generate).limit(10).toList();
-		DbConnector.createTable();
-		scores.getItems().addAll(DbConnector.getAll());
+		ScoreStorageFactory.getInstance().init();
+		scores.getItems().addAll(ScoreStorageFactory.getInstance().getAll());
 	}
 
 }
diff --git a/src/main/java/lab/ScoreStorageFactory.java b/src/main/java/lab/ScoreStorageFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..3346de6eb41a256e171e1a9bfb3d6af18ad1b464
--- /dev/null
+++ b/src/main/java/lab/ScoreStorageFactory.java
@@ -0,0 +1,13 @@
+package lab;
+
+public class ScoreStorageFactory {
+
+	private static DbConnector instance;
+	
+	public static DbConnector getInstance() {
+		if(instance	== null) {
+			instance = new DbConnector();
+		}
+		return instance;
+	}
+}
diff --git a/src/main/resources/lab/mainScreen.fxml b/src/main/resources/lab/mainScreen.fxml
index 69c55644281846932963325b133d7b89e288934a..63e59ab2a2cea51bc8a1ee7c547c3b765500d751 100644
--- a/src/main/resources/lab/mainScreen.fxml
+++ b/src/main/resources/lab/mainScreen.fxml
@@ -13,7 +13,7 @@
 <?import javafx.scene.layout.VBox?>
 <?import javafx.scene.text.Font?>
 
-<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="436.0" prefWidth="660.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController">
+<BorderPane fx:id="menuPanel" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="519.0" prefWidth="830.0" xmlns="http://javafx.com/javafx/21" xmlns:fx="http://javafx.com/fxml/1" fx:controller="lab.MainScreenController">
    <top>
       <HBox prefWidth="200.0" BorderPane.alignment="CENTER">
          <children>
@@ -29,45 +29,47 @@
          </font></Button>
    </bottom>
    <center>
-      <HBox prefHeight="100.0" prefWidth="200.0" BorderPane.alignment="CENTER">
+      <VBox prefHeight="200.0" prefWidth="100.0" BorderPane.alignment="CENTER">
          <children>
-            <RadioButton fx:id="easy" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Easy" HBox.hgrow="ALWAYS">
-               <toggleGroup>
-                  <ToggleGroup fx:id="difficult" />
-               </toggleGroup>
-               <HBox.margin>
-                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
-               </HBox.margin>
-            </RadioButton>
-            <RadioButton fx:id="medium" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" selected="true" styleClass="difficultButton" text="Medium" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
-               <HBox.margin>
-                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
-               </HBox.margin>
-            </RadioButton>
-            <RadioButton fx:id="hard" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Hard" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
-               <HBox.margin>
-                  <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
-               </HBox.margin>
-            </RadioButton>
-         </children>
-      </HBox>
-   </center>
-   <right>
-      <VBox prefHeight="267.0" prefWidth="156.0" BorderPane.alignment="CENTER">
-         <children>
-            <TableView fx:id="scores" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308">
-              <columns>
-                <TableColumn fx:id="nickColumn" prefWidth="75.0" text="Nick" />
-                <TableColumn fx:id="pointsColumn" prefWidth="75.0" text="Points" />
-              </columns>
-               <columnResizePolicy>
-                  <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
-               </columnResizePolicy>
-            </TableView>
-            <Button fx:id="btnGenerateScore" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnGenerateScoreAction" text="Generate new score" />
-            <Button fx:id="btnLoadAll" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadAllAction" text="Load all from DB" />
-            <Button fx:id="btnLoadFirstTen" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadFirstTenAction" text="Load first 10 from DB" />
+            <HBox prefHeight="100.0" prefWidth="200.0">
+               <children>
+                  <RadioButton fx:id="easy" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Easy" HBox.hgrow="ALWAYS">
+                     <toggleGroup>
+                        <ToggleGroup fx:id="difficult" />
+                     </toggleGroup>
+                     <HBox.margin>
+                        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+                     </HBox.margin>
+                  </RadioButton>
+                  <RadioButton fx:id="medium" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" selected="true" styleClass="difficultButton" text="Medium" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
+                     <HBox.margin>
+                        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+                     </HBox.margin>
+                  </RadioButton>
+                  <RadioButton fx:id="hard" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" mnemonicParsing="false" styleClass="difficultButton" text="Hard" toggleGroup="$difficult" HBox.hgrow="ALWAYS">
+                     <HBox.margin>
+                        <Insets bottom="20.0" left="20.0" right="20.0" top="20.0" />
+                     </HBox.margin>
+                  </RadioButton>
+               </children>
+            </HBox>
+            <VBox>
+               <children>
+                  <TableView fx:id="scores" maxHeight="1.7976931348623157E308" maxWidth="1.7976931348623157E308" prefHeight="2000.0">
+                    <columns>
+                      <TableColumn fx:id="nickColumn" prefWidth="75.0" text="Nick" />
+                      <TableColumn fx:id="pointsColumn" prefWidth="75.0" text="Points" />
+                    </columns>
+                     <columnResizePolicy>
+                        <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
+                     </columnResizePolicy>
+                  </TableView>
+                  <Button fx:id="btnGenerateScore" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnGenerateScoreAction" text="Generate new score" />
+                  <Button fx:id="btnLoadAll" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadAllAction" text="Load all from DB" />
+                  <Button fx:id="btnLoadFirstTen" maxWidth="1.7976931348623157E308" mnemonicParsing="false" onAction="#btnLoadFirstTenAction" text="Load first 10 from DB" />
+               </children>
+            </VBox>
          </children>
       </VBox>
-   </right>
+   </center>
 </BorderPane>