diff --git a/.idea/modules.xml b/.idea/modules.xml
index 722074489e1d19681e8975994651dae27db5d04c..98a92b36271b27f6aa2da69c83c041f7fbffc5ba 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,6 +2,7 @@
 <project version="4">
   <component name="ProjectModuleManager">
     <modules>
+      <module fileurl="file://$PROJECT_DIR$/.idea/modules/app/notes-multi.app.main.iml" filepath="$PROJECT_DIR$/.idea/modules/app/notes-multi.app.main.iml" />
       <module fileurl="file://$PROJECT_DIR$/.idea/modules/utilities/notes-multi.utilities.test.iml" filepath="$PROJECT_DIR$/.idea/modules/utilities/notes-multi.utilities.test.iml" />
     </modules>
   </component>
diff --git a/.idea/modules/app/notes-multi.app.main.iml b/.idea/modules/app/notes-multi.app.main.iml
new file mode 100644
index 0000000000000000000000000000000000000000..ba64c93b498dce5f00a15869a5b5efb37ace3196
--- /dev/null
+++ b/.idea/modules/app/notes-multi.app.main.iml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4">
+  <component name="NewModuleRootManager">
+    <content url="file://$MODULE_DIR$/../../../app/src/main">
+      <sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/java" isTestSource="false" />
+    </content>
+  </component>
+</module>
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index 7ef02b6b26f539fe28c064fc851f74fd2fa60e8d..b6c24f6726e00354fb42b7c2a48b552021ab1540 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -8,6 +8,15 @@ plugins {
     id 'application'
     id 'org.jetbrains.kotlin.jvm'
     id 'org.openjfx.javafxplugin' version '0.0.13'
+    id 'org.beryx.jlink' version '2.26.0'
+}
+
+jlink {
+    forceMerge("kotlin")
+    launcher {
+        name = "notes-app"
+        moduleName = "notes.multi.app"
+    }
 }
 
 java {
@@ -36,6 +45,7 @@ dependencies {
 
 application {
     // Define the main class for the application.
+    mainModule = 'notes.multi.app'
     mainClass = 'notes.multi.app.AppKt'
 }
 
diff --git a/app/src/main/java/module-info.java b/app/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..a18ec31c4a8dbeb245ebc1d4b9ddc1cf64195814
--- /dev/null
+++ b/app/src/main/java/module-info.java
@@ -0,0 +1,8 @@
+module notes.multi.app {
+    requires kotlin.stdlib;
+    requires javafx.graphics;
+    requires javafx.controls;
+    requires notes.multi.utilities;
+    requires java.xml.crypto;
+    exports notes.multi.app;
+}
\ No newline at end of file
diff --git a/console/src/main/java/module-info.java b/console/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..ab7b92379fc486a4f217679116aa156a9f55cbe6
--- /dev/null
+++ b/console/src/main/java/module-info.java
@@ -0,0 +1,8 @@
+module notes.multi.console {
+    requires kotlin.stdlib;
+    requires javafx.graphics;
+    requires javafx.controls;
+    requires exposed.core;
+    requires notes.multi.utilities;
+    exports notes.multi.console;
+}
\ No newline at end of file
diff --git a/utilities/src/main/java/module-info.java b/utilities/src/main/java/module-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..e05f91a7aa9cbae4df2468ff8477666850f09901
--- /dev/null
+++ b/utilities/src/main/java/module-info.java
@@ -0,0 +1,4 @@
+module notes.multi.utilities {
+    requires kotlin.stdlib;
+    exports notes.multi.utilities;
+}
\ No newline at end of file