diff --git a/pom.xml b/pom.xml
index 02b261f254499f527e085437fa928af5442b2231..b5b6fd8e2b51fd76224531dfc96c3f332219d47a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,19 +6,24 @@
     <version>0.0.1</version>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <maven.compiler.source>11</maven.compiler.source>
-        <maven.compiler.target>11</maven.compiler.target>
+        <!--region[useage]-->
+        <use.java.version>11</use.java.version>
+        <use.javafx.version>11.0.2</use.javafx.version>
+        <use.app.main.class>Enigma.Main</use.app.main.class>
+        <!--endregion[useage]-->
+        <maven.compiler.source>${use.java.version}</maven.compiler.source>
+        <maven.compiler.target>${use.java.version}</maven.compiler.target>
     </properties>
     <dependencies>
         <dependency>
             <groupId>org.openjfx</groupId>
             <artifactId>javafx-controls</artifactId>
-            <version>11.0.2</version>
+            <version>${use.javafx.version}</version>
         </dependency>
         <dependency>
             <groupId>org.openjfx</groupId>
             <artifactId>javafx-fxml</artifactId>
-            <version>11.0.2</version>
+            <version>${use.javafx.version}</version>
         </dependency>
     </dependencies>
     <build>
@@ -28,15 +33,39 @@
                 <artifactId>maven-compiler-plugin</artifactId>
                 <version>3.8.0</version>
                 <configuration>
-                    <release>11</release>
+                    <release>${use.java.version}</release>
                 </configuration>
             </plugin>
+
+            <plugin>
+                <artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <appendAssemblyId>false</appendAssemblyId>
+                    <descriptorRefs>
+                        <descriptorRef>jar-with-dependencies</descriptorRef>
+                    </descriptorRefs>
+                    <archive>
+                        <manifest>
+                            <mainClass>${use.app.main.class}</mainClass>
+                        </manifest>
+                    </archive>
+                </configuration>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>attached</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
             <plugin>
                 <groupId>org.openjfx</groupId>
                 <artifactId>javafx-maven-plugin</artifactId>
                 <version>0.0.1</version>
                 <configuration>
-                    <mainClass>Enigma.App</mainClass>
+                    <mainClass>${use.app.main.class}</mainClass>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/src/main/java/Enigma/App.java b/src/main/java/Enigma/App.java
index 29d6c4f08c4e7a2f9ede7bc58fc52d68cdc03652..86a05b3cdfa21633d460dd4cfdc3e0e2a91185fb 100644
--- a/src/main/java/Enigma/App.java
+++ b/src/main/java/Enigma/App.java
@@ -32,7 +32,7 @@ public class App extends Application {
     }
 
     public static void main(String[] args) {
-        launch();
+        Application.launch();
     }
 
 }
\ No newline at end of file
diff --git a/src/main/java/Enigma/Main.java b/src/main/java/Enigma/Main.java
new file mode 100644
index 0000000000000000000000000000000000000000..37c9833e5330d953580ce896ef61cfbb30be991e
--- /dev/null
+++ b/src/main/java/Enigma/Main.java
@@ -0,0 +1,9 @@
+package Enigma;
+
+public class Main {
+
+        public static void main(String[] args) {
+            App.main(args);
+        }
+
+}