diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 2e1bcfd682265d997a9b584efb4cad7b56d9d8e3..0f9ace194e81e59ca563623cbfd9aabcdcbfa97f 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -4,6 +4,7 @@
     <file url="file://$PROJECT_DIR$/PlayWall" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWall/PlayWallComponents" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWall/PlayWallComponents" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/PlayWallComponents" charset="UTF-8" />
     <file url="file://$PROJECT_DIR$/PlayWallCore" charset="UTF-8" />
     <file url="PROJECT" charset="UTF-8" />
   </component>
diff --git a/PlayWall/PlayWall.iml b/PlayWall/PlayWall.iml
index acda03de677f5fe35e8c56d2447ceecdcf5cc58d..fb368148be4fb34713698b4ced6fc487a5f6d0ff 100644
--- a/PlayWall/PlayWall.iml
+++ b/PlayWall/PlayWall.iml
@@ -51,6 +51,7 @@
     <orderEntry type="library" name="Maven: com.neovisionaries:nv-websocket-client:2.5" level="project" />
     <orderEntry type="library" name="Maven: javazoom:jlayer:1.0.1" level="project" />
     <orderEntry type="library" name="Maven: net.minidev:json-smart:1.2" level="project" />
+    <orderEntry type="module" module-name="PlayWallComponents" />
     <orderEntry type="library" name="Maven: net.java.dev.jna:jna:4.5.0" level="project" />
     <orderEntry type="library" name="Maven: net.java.dev.jna:jna-platform:4.5.0" level="project" />
     <orderEntry type="library" name="Maven: com.itextpdf:itextpdf:5.5.13" level="project" />
diff --git a/PlayWall/pom.xml b/PlayWall/pom.xml
index 9fe7d4b35760c99a98af9f683bb714c6714544ec..c68fa069c9f2e1d815a699828c00aec069f90323 100644
--- a/PlayWall/pom.xml
+++ b/PlayWall/pom.xml
@@ -170,6 +170,11 @@
             <artifactId>PlayWallCore</artifactId>
             <version>1.0.1</version>
         </dependency>
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>PlayWallCompoents</artifactId>
+            <version>1.0.0</version>
+        </dependency>
 
         <dependency>
             <groupId>net.java.dev.jna</groupId>
diff --git a/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java b/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
index 379a2b3528ba3412f3ba4bc0ddbc8727069a2f3b..c567a02b458d4e6c9d5320cfb921c9f50787cf74 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/PlayPadImpl.java
@@ -243,4 +243,9 @@ public class PlayPadImpl implements PlayPad {
 	public Session getSession() {
 		return session;
 	}
+
+	@Override
+	public ResourceBundle getUIResourceBundle() {
+		return PlayPadMain.getUiResourceBundle();
+	}
 }
diff --git a/PlayWallComponents/pom.xml b/PlayWallComponents/pom.xml
index fb228b519c7a6b4ffdf6fe355f88952842017a9b..424b87ffc12f4172ec5899b2b5f4f85aebe7ec9f 100644
--- a/PlayWallComponents/pom.xml
+++ b/PlayWallComponents/pom.xml
@@ -8,5 +8,24 @@
     <artifactId>PlayWallCompoents</artifactId>
     <version>1.0.0</version>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>8</source>
+                    <target>8</target>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 
+    <dependencies>
+        <dependency>
+            <groupId>de.tobias</groupId>
+            <artifactId>PlayWallCore</artifactId>
+            <version>1.0.1</version>
+        </dependency>
+    </dependencies>
 </project>
\ No newline at end of file
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXAudioHandler.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/JavaFXHandlerFactory.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandler.java
diff --git a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
similarity index 94%
rename from PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
index 107922eb6f21eade89302034a0e9d7f2381a875b..9375d339547ff3e26d84ff48df2594e8d11195a4 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
+++ b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
@@ -1,8 +1,8 @@
 package de.tobias.playpad.audio;
 
+import de.tobias.playpad.audio.viewcontroller.TinySoundSettingsViewController;
 import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.playpad.viewcontroller.audio.TinySoundSettingsViewController;
 
 public class TinyAudioHandlerFactory extends AudioHandlerFactory implements AutoCloseable {
 
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
similarity index 96%
rename from PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
index 313639d2b4fdb8570d4aaa18fcea17160d3fce0c..76d50d3f86209ab276575c0fec1b497e4033b7a7 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
+++ b/PlayWallComponents/src/main/java/de/tobias/playpad/audio/viewcontroller/TinySoundSettingsViewController.java
@@ -1,6 +1,6 @@
-package de.tobias.playpad.viewcontroller.audio;
+package de.tobias.playpad.audio.viewcontroller;
 
-import de.tobias.playpad.PlayPadMain;
+import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.audio.TinyAudioHandler;
 import de.tobias.playpad.profile.Profile;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
@@ -35,7 +35,7 @@ public class TinySoundSettingsViewController extends AudioHandlerViewController
 	private Clip clip;
 
 	public TinySoundSettingsViewController() {
-		super("tinySoundSettings", "de/tobias/playpad/assets/view/audio/", PlayPadMain.getUiResourceBundle());
+		super("tinySoundSettings", "de/tobias/playpad/assets/view/audio/", PlayPadPlugin.getImplementation().getUIResourceBundle());
 
 		// Mixer (ohne Port)
 		List<Info> infos = Arrays.stream(AudioSystem.getMixerInfo()).filter(info -> !info.getName().startsWith("Port"))
diff --git a/PlayWall/src/main/java/de/tobias/playpad/midi/PD12.java b/PlayWallComponents/src/main/java/de/tobias/playpad/midi/PD12.java
similarity index 100%
rename from PlayWall/src/main/java/de/tobias/playpad/midi/PD12.java
rename to PlayWallComponents/src/main/java/de/tobias/playpad/midi/PD12.java
diff --git a/PlayWall/src/main/resources/components/AudioHandler.xml b/PlayWallComponents/src/main/resources/components/AudioHandler.xml
similarity index 100%
rename from PlayWall/src/main/resources/components/AudioHandler.xml
rename to PlayWallComponents/src/main/resources/components/AudioHandler.xml
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java b/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
index e47db5ef348f23d5b73c91e523fa6f900fa60775..2cb51720c0c037f75757172dcc4480aa43867f4c 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/PlayPad.java
@@ -10,6 +10,7 @@ import javafx.scene.image.Image;
 
 import java.util.List;
 import java.util.Optional;
+import java.util.ResourceBundle;
 
 /**
  * Hauptfunktionen für Listener und zur Programmsteuerung für Plugins.
@@ -19,6 +20,8 @@ import java.util.Optional;
  */
 public interface PlayPad {
 
+	ResourceBundle getUIResourceBundle();
+
 	/**
 	 * Fügt einen Listener für das Hauptfenster hinzu.
 	 *