diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/Module.java b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/Module.java
index e280d35ea2fa6bb15fb6551389f8b1f05ac088ba..2ecbf572caa51f27d5e153a533ceaf46dc6ecade 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/Module.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/Module.java
@@ -1,9 +1,11 @@
 package de.tobias.playpad.plugin;
 
+import java.util.Objects;
+
 /**
- * Ein Modul beschreibt ein Plugin. Es wird verwendet, um Components der Registry einem Mpdul zuzuordnen.
+ * Definition a plugin module content. Plugin components are registered with its module.
  *
- * @author tobias - s0553746
+ * @author tobias
  */
 public class Module {
 
@@ -21,34 +23,15 @@ public class Module {
 	}
 
 	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((identifier == null) ? 0 : identifier.hashCode());
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		return result;
+	public boolean equals(Object o) {
+		if (this == o) return true;
+		if (!(o instanceof Module)) return false;
+		Module module = (Module) o;
+		return Objects.equals(identifier, module.identifier);
 	}
 
 	@Override
-	public boolean equals(Object obj) {
-		if (this == obj)
-			return true;
-		if (obj == null)
-			return false;
-		if (getClass() != obj.getClass())
-			return false;
-		Module other = (Module) obj;
-		if (identifier == null) {
-			if (other.identifier != null)
-				return false;
-		} else if (!identifier.equals(other.identifier))
-			return false;
-		if (name == null) {
-			if (other.name != null)
-				return false;
-		} else if (!name.equals(other.name))
-			return false;
-		return true;
+	public int hashCode() {
+		return Objects.hash(identifier);
 	}
-
 }
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PlayPadPluginStub.java b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PlayPadPluginStub.java
index f2fbe82f6a72407eb4bcae9b05165fb138049b15..8a4a96c483488f62d5c9cdb95a924c8d77e90bf3 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PlayPadPluginStub.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/plugin/PlayPadPluginStub.java
@@ -3,12 +3,12 @@ package de.tobias.playpad.plugin;
 import de.thecodelabs.plugins.Plugin;
 
 /**
- * Schnittatelle, von der Plugins erben, damit diese alle notwendigen Services unterstützen.
+ * Interface for plugins, to define own modules in playpad for project consistency.
  *
- * @author tobias - s0553746
+ * @author tobias
+ * @version 6.2.0
  */
 public interface PlayPadPluginStub extends Plugin {
 
 	Module getModule();
-
 }
\ No newline at end of file
diff --git a/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java b/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java
index 21cf275d17907a5548ac23b07d38568ef2474b10..bb598947753cf630e454e4027d2ad1ec2ff9f9ae 100644
--- a/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java
+++ b/PlayWallPluginAwake/src/main/java/de/tobias/playpad/awakeplugin/AwakePluginImpl.java
@@ -2,6 +2,7 @@ package de.tobias.playpad.awakeplugin;
 
 import de.thecodelabs.logger.Logger;
 import de.thecodelabs.plugins.PluginArtifact;
+import de.thecodelabs.plugins.PluginDescriptor;
 import de.thecodelabs.utils.application.system.NativeApplication;
 import de.thecodelabs.utils.ui.icon.FontAwesomeType;
 import de.thecodelabs.utils.ui.icon.FontIcon;
@@ -25,11 +26,9 @@ import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.util.ResourceBundle;
 
+@SuppressWarnings("unused")
 public class AwakePluginImpl implements PlayPadPluginStub, PluginArtifact, WindowListener<IMainViewController>, EventHandler<ActionEvent>, SettingsListener {
 
-	private static final String NAME = "AwakePlugin";
-	private static final String IDENTIFIER = "de.tobias.playwall.plugin.awake";
-
 	private Module module;
 
 	private static final String SETTINGS_FILENAME = "Awake.xml";
@@ -42,10 +41,10 @@ public class AwakePluginImpl implements PlayPadPluginStub, PluginArtifact, Windo
 	private ResourceBundle bundle;
 
 	@Override
-	public void startup() {
+	public void startup(PluginDescriptor descriptor) {
 		bundle = Localization.loadBundle("lang/awake", getClass().getClassLoader());
 
-		module = new Module(NAME, IDENTIFIER);
+		module = new Module(descriptor.getName(), descriptor.getArtifactId());
 
 		de.tobias.playpad.PlayPadPlugin.getImplementation().addMainViewListener(this);
 		de.tobias.playpad.PlayPadPlugin.getImplementation().addSettingsListener(this);
@@ -83,7 +82,7 @@ public class AwakePluginImpl implements PlayPadPluginStub, PluginArtifact, Windo
 		try {
 			settings.save(path);
 		} catch (IOException e) {
-			e.printStackTrace();
+			Logger.error(e);
 		}
 	}
 
diff --git a/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java b/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java
index a084d8071a17c44bc970d573f9434cf30e7fd802..747bcea355bf098e02d855d03940f6e15048c015 100644
--- a/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java
+++ b/PlayWallPluginEqualizer/src/main/java/de/tobias/playpad/equalizerplugin/impl/EqualizerPluginImpl.java
@@ -1,6 +1,7 @@
 package de.tobias.playpad.equalizerplugin.impl;
 
 import de.thecodelabs.plugins.PluginArtifact;
+import de.thecodelabs.plugins.PluginDescriptor;
 import de.thecodelabs.utils.application.ApplicationUtils;
 import de.thecodelabs.utils.application.container.PathType;
 import de.thecodelabs.utils.ui.NVCStage;
@@ -28,9 +29,6 @@ import java.util.ResourceBundle;
 
 public class EqualizerPluginImpl implements PlayPadPluginStub, PluginArtifact, WindowListener<IMainViewController>, EventHandler<ActionEvent>, PadListener {
 
-	private static final String NAME = "Equalizer";
-	private static final String IDENTIFIER = "de.tobias.playwall.plugin.equalizer";
-
 	private Module module;
 
 	private Stage mainStage;
@@ -44,7 +42,7 @@ public class EqualizerPluginImpl implements PlayPadPluginStub, PluginArtifact, W
 	}
 
 	@Override
-	public void startup() {
+	public void startup(PluginDescriptor descriptor) {
 		bundle = Localization.loadBundle("lang/equalizer", EqualizerPluginImpl.class.getClassLoader());
 		try {
 			Equalizer.load(ApplicationUtils.getApplication().getPath(PathType.CONFIGURATION, "equalizer.xml"));
@@ -52,7 +50,7 @@ public class EqualizerPluginImpl implements PlayPadPluginStub, PluginArtifact, W
 			e.printStackTrace();
 		}
 
-		module = new Module(NAME, IDENTIFIER);
+		module = new Module(descriptor.getName(), descriptor.getArtifactId());
 
 		de.tobias.playpad.PlayPadPlugin.getImplementation().addMainViewListener(this);
 		de.tobias.playpad.PlayPadPlugin.getImplementation().addPadListener(this);
diff --git a/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java b/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
index 4b99a07208001e072ef7173dd17bf439b83d8d8e..848e30040303aaafb82fe48c04f2dd7b9d03acc6 100644
--- a/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
+++ b/PlayWallPluginLaunchpad/src/main/java/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
@@ -1,6 +1,7 @@
 package de.tobias.playpad.launchpadplugin.impl;
 
 import de.thecodelabs.plugins.PluginArtifact;
+import de.thecodelabs.plugins.PluginDescriptor;
 import de.thecodelabs.utils.util.Localization;
 import de.tobias.playpad.launchpadplugin.midi.mk2.LaunchPadMK2;
 import de.tobias.playpad.launchpadplugin.midi.s.LaunchPadS;
@@ -12,17 +13,14 @@ import java.util.ResourceBundle;
 
 public class LaunchpadPluginImpl implements PlayPadPluginStub, PluginArtifact {
 
-	private static final String NAME = "LaunchPadPlugin";
-	private static final String IDENTIFIER = "de.tobias.playwall.plugin.launchpad";
-
 	private static ResourceBundle bundle;
 
 	private Module module;
 
 	@Override
-	public void startup() {
+	public void startup(PluginDescriptor descriptor) {
 		bundle = Localization.loadBundle("lang/launchpad", LaunchpadPluginImpl.class.getClassLoader());
-		module = new Module(NAME, IDENTIFIER);
+		module = new Module(descriptor.getName(), descriptor.getArtifactId());
 
 		DeviceRegistry deviceFactory = DeviceRegistry.getFactoryInstance();
 		deviceFactory.registerDevice(LaunchPadMK2.NAME, LaunchPadMK2.class);
diff --git a/PlayWallPluginMedia/src/main/java/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java b/PlayWallPluginMedia/src/main/java/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
index cf5ea66d2b4bf50e5361ccac983e02a9ec43db5f..0abef4b6646f1cd92d59b74482f398481b5a227c 100644
--- a/PlayWallPluginMedia/src/main/java/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
+++ b/PlayWallPluginMedia/src/main/java/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
@@ -1,6 +1,7 @@
 package de.tobias.playpad.mediaplugin.main.impl;
 
 import de.thecodelabs.plugins.PluginArtifact;
+import de.thecodelabs.plugins.PluginDescriptor;
 import de.thecodelabs.utils.ui.icon.FontAwesomeType;
 import de.thecodelabs.utils.ui.icon.FontIcon;
 import de.thecodelabs.utils.ui.scene.HUD;
@@ -30,9 +31,6 @@ import java.util.ResourceBundle;
 
 public class MediaPluginImpl implements PlayPadPluginStub, PluginArtifact, SettingsListener, ChangeListener<Boolean> {
 
-	private static final String NAME = "MediaPlugin";
-	private static final String IDENTIFIER = "de.tobias.playwall.plugin.media";
-
 	private static Module module;
 
 	private static MediaPluginImpl instance;
@@ -46,10 +44,10 @@ public class MediaPluginImpl implements PlayPadPluginStub, PluginArtifact, Setti
 	private static final String SETTINGS_FILENAME = "Media.xml";
 
 	@Override
-	public void startup() {
+	public void startup(PluginDescriptor descriptor) {
 		// Init
 		instance = this;
-		module = new Module(NAME, IDENTIFIER);
+		module = new Module(descriptor.getName(), descriptor.getArtifactId());
 
 		blindProperty = new SimpleBooleanProperty();
 
diff --git a/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala b/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala
index 470aba79e624b0311d5b37eeac0ddc12ecf97184..040c23f86adb8eb5eb4a08c1a3426e22c8e99607 100644
--- a/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala
+++ b/PlayWallPluginNativeAudio/src/main/scala/de/tobias/playpad/plugin/NativeAudioPluginImpl.scala
@@ -1,6 +1,6 @@
 package de.tobias.playpad.plugin
 
-import de.thecodelabs.plugins.PluginArtifact
+import de.thecodelabs.plugins.{PluginArtifact, PluginDescriptor}
 import de.thecodelabs.utils.util.OS
 import de.thecodelabs.utils.util.OS.OSType
 import de.tobias.playpad.plugin.loader.{MacAudioImplLoader, WindowsAudioImplLoader}
@@ -10,14 +10,11 @@ import de.tobias.playpad.plugin.loader.{MacAudioImplLoader, WindowsAudioImplLoad
   */
 class NativeAudioPluginImpl extends PlayPadPluginStub with PluginArtifact {
 
-	private val NAME = "NativeAudio"
-	private val IDENTIFIER = "de.tobias.playwall.plugin.nativeaudio"
-
 	private var module: Module = _
 
+	override def startup(descriptor: PluginDescriptor): Unit = {
+		module = new Module(descriptor.getName, descriptor.getArtifactId)
 
-	override def startup(): Unit = {
-		module = new Module(NAME, IDENTIFIER)
 		// Init Audio Implementation
 		val loader = OS.getType match {
 			case OSType.MacOSX => new MacAudioImplLoader
diff --git a/pom.xml b/pom.xml
index 0f0822a4a84b6cd8a278069c26634dd37ef57237..2f5f16e94fa28ed5d606dae4cfb0ec713219819c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,7 +18,7 @@
         <components.version>${project.version}</components.version>
 
         <jlibs.version>2.0.5</jlibs.version>
-        <libPlugins.version>2.1.0</libPlugins.version>
+        <libPlugins.version>2.2.0</libPlugins.version>
         <versionizer-api.version>1.1.0</versionizer-api.version>
 
         <jlayer.version>1.0.1</jlayer.version>