diff --git a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperConnect.java b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperConnect.java
index f9f169dd42791b3c686c9656ad5056ca0c6098fe..e70c964c141cca12ef407f30e7c0a79e9cc604fb 100644
--- a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperConnect.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperConnect.java
@@ -20,7 +20,7 @@ public class MidiMapperConnect extends MapperConnect implements MapperConnectFee
 
 	@Override
 	public void initFeedbackType() {
-		Midi.getInstance().getMidiDevice().ifPresent(device -> device.initFeedback());
+		Midi.getInstance().getMidiDevice().ifPresent(device -> device.initDevice());
 	}
 
 	@Override
diff --git a/PlayWall/src/de/tobias/playpad/midi/device/PD12.java b/PlayWall/src/de/tobias/playpad/midi/device/PD12.java
index df4ceb01d9a4883b17752afdbab848abdae5c03d..40c050e4f26906dac9be42609b06c028bc418835 100644
--- a/PlayWall/src/de/tobias/playpad/midi/device/PD12.java
+++ b/PlayWall/src/de/tobias/playpad/midi/device/PD12.java
@@ -43,7 +43,7 @@ public class PD12 extends Device {
 	public void handleFeedback(FeedbackMessage type, int key, Feedback feedback) {}
 
 	@Override
-	public void initFeedback() {}
+	public void initDevice() {}
 
 	@Override
 	public void clearFeedback() {}
diff --git a/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java b/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
index e8d46339804f3024b3d0726fa1e8e2981e17f522..8a55c904fdb5b4d32c5b0dc7c7bbd82f61fd3dcd 100644
--- a/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
+++ b/PlayWallCore/src/de/tobias/playpad/action/mididevice/Device.java
@@ -35,7 +35,7 @@ public abstract class Device extends EventDispatcher implements Listener {
 
 	public abstract DisplayableFeedbackColor getColor(int id);
 
-	public abstract void initFeedback();
+	public abstract void initDevice();
 
 	public abstract void handleFeedback(FeedbackMessage type, int key, Feedback feedback);
 
diff --git a/PlayWallCore/src/de/tobias/playpad/midi/device/DefaultDevice.java b/PlayWallCore/src/de/tobias/playpad/midi/device/DefaultDevice.java
index 5fa72cb64767217eec3e45ff676ef9694804ce61..af8a3460898abbd3c1238f6e1839dadcb9d3980a 100644
--- a/PlayWallCore/src/de/tobias/playpad/midi/device/DefaultDevice.java
+++ b/PlayWallCore/src/de/tobias/playpad/midi/device/DefaultDevice.java
@@ -21,7 +21,7 @@ public class DefaultDevice extends Device {
 	public void handleFeedback(FeedbackMessage type, int key, Feedback feedback) {}
 
 	@Override
-	public void initFeedback() {}
+	public void initDevice() {}
 
 	@Override
 	public void clearFeedback() {}
diff --git a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/AwakePlugin.java b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/AwakePlugin.java
index abda3de1f2a37514e3f7180328e2f2fc3ca0adb2..fe0c9a54f1ce2eb82593e3011ee54cada9eeaf94 100644
--- a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/AwakePlugin.java
+++ b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/AwakePlugin.java
@@ -1,7 +1,7 @@
 package de.tobias.playpad.awakeplugin;
 
-import net.xeoh.plugins.base.Plugin;
+import de.tobias.playpad.plugin.AdvancedPlugin;
 
-public interface AwakePlugin extends Plugin {
+public interface AwakePlugin extends AdvancedPlugin {
 
 }
diff --git a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
index 7d6d16465bad2fdad250431fbe30d5e6b1cb3393..fee6d57b206f231dcbadf8785dc5960de2b317d4 100644
--- a/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
+++ b/PlayWallPlugins/awakeplugin/de/tobias/playpad/awakeplugin/impl/AwakePluginImpl.java
@@ -12,10 +12,11 @@ import org.dom4j.DocumentException;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.awakeplugin.AwakePlugin;
 import de.tobias.playpad.awakeplugin.AwakeSettings;
+import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.plugin.SettingsListener;
 import de.tobias.playpad.plugin.WindowListener;
 import de.tobias.playpad.settings.Profile;
-import de.tobias.playpad.update.UpdateRegistery;
+import de.tobias.playpad.update.Updatable;
 import de.tobias.playpad.view.main.MenuType;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import de.tobias.playpad.viewcontroller.main.MenuToolbarViewController;
@@ -40,6 +41,12 @@ import net.xeoh.plugins.base.annotations.events.Shutdown;
 @PluginImplementation
 public class AwakePluginImpl implements AwakePlugin, WindowListener<IMainViewController>, EventHandler<ActionEvent>, SettingsListener {
 
+	private static final String NAME = "AwakePlugin";
+	private static final String IDENTIFIER = "de.tobias.playpad.awakeplugin.impl.AwakePluginImpl";
+
+	private Module module;
+	private Updatable updatable;
+
 	private static final String SETTINGS_FILENAME = "Awake.xml";
 
 	private CheckMenuItem activeMenu;
@@ -53,7 +60,8 @@ public class AwakePluginImpl implements AwakePlugin, WindowListener<IMainViewCon
 	public void onLoad(AwakePlugin plugin) {
 		bundle = Localization.loadBundle("de/tobias/playpad/awakeplugin/assets/awake", getClass().getClassLoader());
 
-		UpdateRegistery.registerUpdateable(new AwakePluginUpdater());
+		module = new Module(NAME, IDENTIFIER);
+		updatable = new AwakePluginUpdater();
 
 		if (OS.getType() == OSType.Windows) {
 			try {
@@ -120,7 +128,7 @@ public class AwakePluginImpl implements AwakePlugin, WindowListener<IMainViewCon
 		try {
 			settings = AwakeSettings.load(path);
 		} catch (NoSuchFileException e) {
-			System.out.println("No Awake.xml config on folder");
+			System.out.println("No Awake.xml config in folder");
 		} catch (DocumentException | IOException e) {
 			e.printStackTrace();
 		}
@@ -181,7 +189,7 @@ public class AwakePluginImpl implements AwakePlugin, WindowListener<IMainViewCon
 		}
 	}
 
-	public void activeSleep(boolean activate) {
+	private void activeSleep(boolean activate) {
 		if (activate) {
 			if (OS.getType() == OSType.Windows) {
 				Kernel32.INSTANCE.SetThreadExecutionState(Kernel32.ES_CONTINUOUS | Kernel32.ES_DISPLAY_REQUIRED | Kernel32.ES_SYSTEM_REQUIRED);
@@ -196,4 +204,14 @@ public class AwakePluginImpl implements AwakePlugin, WindowListener<IMainViewCon
 			}
 		}
 	}
+
+	@Override
+	public Module getModule() {
+		return module;
+	}
+
+	@Override
+	public Updatable getUpdatable() {
+		return updatable;
+	}
 }
diff --git a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/EqualizerPlugin.java b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/EqualizerPlugin.java
index 93b16f1acdd36bc81219fabae3c646090bf5b386..7bac7c99575712af4df4987be1ae337b4c3df8ed 100644
--- a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/EqualizerPlugin.java
+++ b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/EqualizerPlugin.java
@@ -1,8 +1,7 @@
 package de.tobias.playpad.equalizerplugin.main;
 
-import net.xeoh.plugins.base.Plugin;
+import de.tobias.playpad.plugin.AdvancedPlugin;
 
-
-public interface EqualizerPlugin extends Plugin {
+public interface EqualizerPlugin extends AdvancedPlugin {
 
 }
diff --git a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
index 92c5255726809d7b30ee09b4158ccfcdaa2ce47f..afdd5cba281c43519ae2fb111f0315a739548944 100644
--- a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
+++ b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
@@ -11,9 +11,10 @@ import de.tobias.playpad.equalizerplugin.main.Equalizer;
 import de.tobias.playpad.equalizerplugin.main.EqualizerPlugin;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.plugin.PadListener;
 import de.tobias.playpad.plugin.WindowListener;
-import de.tobias.playpad.update.UpdateRegistery;
+import de.tobias.playpad.update.Updatable;
 import de.tobias.playpad.view.main.MenuType;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import de.tobias.utils.application.ApplicationUtils;
@@ -33,6 +34,12 @@ import net.xeoh.plugins.base.annotations.events.Shutdown;
 @PluginImplementation
 public class EqualizerPluginImpl implements EqualizerPlugin, WindowListener<IMainViewController>, EventHandler<ActionEvent>, PadListener {
 
+	private static final String NAME = "Equalizer";
+	private static final String IDENTIFIER = "de.tobias.playpad.videoplugin.main.impl.EqualizerPluginImpl";
+
+	private Module module;
+	private Updatable updatable;
+
 	private Stage mainStage;
 	private EqualizerViewController equalizerViewController;
 	private static ResourceBundle bundle;
@@ -52,7 +59,8 @@ public class EqualizerPluginImpl implements EqualizerPlugin, WindowListener<IMai
 			e.printStackTrace();
 		}
 
-		UpdateRegistery.registerUpdateable(new EqualizerPluginUpdater());
+		updatable = new EqualizerPluginUpdater();
+		module = new Module(NAME, IDENTIFIER);
 
 		PlayPadPlugin.getImplementation().addMainViewListener(this);
 		PlayPadPlugin.getImplementation().addPadListener(this);
@@ -126,4 +134,14 @@ public class EqualizerPluginImpl implements EqualizerPlugin, WindowListener<IMai
 			equalizerViewController.getStage().show();
 		}
 	}
+
+	@Override
+	public Module getModule() {
+		return module;
+	}
+
+	@Override
+	public Updatable getUpdatable() {
+		return updatable;
+	}
 }
\ No newline at end of file
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/LaunchpadPlugin.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/LaunchpadPlugin.java
index 1508fc74c06a2e3892c4bb90150670da800e2713..f3b49ca01f45b03ea7e562a6bbcf0b59240081d7 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/LaunchpadPlugin.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/LaunchpadPlugin.java
@@ -1,7 +1,7 @@
 package de.tobias.playpad.launchpadplugin;
 
-import net.xeoh.plugins.base.Plugin;
+import de.tobias.playpad.plugin.AdvancedPlugin;
 
-public interface LaunchpadPlugin extends Plugin {
+public interface LaunchpadPlugin extends AdvancedPlugin {
 
 }
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
index fabff9d69c470b5bb7a76feffae9889d44c91606..d3ebeffe2c87843472bcaac9aa4920488e5a5371 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/impl/LaunchpadPluginImpl.java
@@ -6,7 +6,8 @@ import de.tobias.playpad.launchpadplugin.LaunchpadPlugin;
 import de.tobias.playpad.launchpadplugin.midi.device.mk2.LaunchPadMK2;
 import de.tobias.playpad.launchpadplugin.midi.device.s.LaunchPadS;
 import de.tobias.playpad.midi.device.DeviceRegistry;
-import de.tobias.playpad.update.UpdateRegistery;
+import de.tobias.playpad.plugin.Module;
+import de.tobias.playpad.update.Updatable;
 import de.tobias.utils.util.Localization;
 import net.xeoh.plugins.base.annotations.PluginImplementation;
 import net.xeoh.plugins.base.annotations.events.PluginLoaded;
@@ -15,18 +16,23 @@ import net.xeoh.plugins.base.annotations.events.Shutdown;
 @PluginImplementation
 public class LaunchpadPluginImpl implements LaunchpadPlugin {
 
+	private static final String NAME = "LaunchPadPlugin";
+	private static final String IDENTIFIER = "de.tobias.playpad.launchpadplugin.impl.LaunchpadPluginImpl";
+
 	private static ResourceBundle bundle;
+	private LaunchPadPluginUpdater updater;
+	private Module module;
 
 	@PluginLoaded
 	public void onLoaded(LaunchpadPlugin plugin) {
 		bundle = Localization.loadBundle("de/tobias/playpad/launchpadplugin/assets/launchpad", LaunchpadPluginImpl.class.getClassLoader());
-
-		UpdateRegistery.registerUpdateable(new LaunchPadPluginUpdater());
+		updater = new LaunchPadPluginUpdater();
+		module = new Module(NAME, IDENTIFIER);
 
 		DeviceRegistry deviceFactory = DeviceRegistry.getFactoryInstance();
-
 		deviceFactory.registerDevice(LaunchPadMK2.NAME, LaunchPadMK2.class);
 		deviceFactory.registerDevice(LaunchPadS.NAME, LaunchPadS.class);
+
 		System.out.println("Enable LaunchPad Plugin");
 	}
 
@@ -39,4 +45,13 @@ public class LaunchpadPluginImpl implements LaunchpadPlugin {
 		return bundle;
 	}
 
+	@Override
+	public Module getModule() {
+		return module;
+	}
+
+	@Override
+	public Updatable getUpdatable() {
+		return updater;
+	}
 }
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2.java
index 01a33d47e0a9d1dde2fe6c4e5f2e69faebf200d5..389b2ab772f3d47d0d62e3f20cf0ba05cfead83e 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/mk2/LaunchPadMK2.java
@@ -19,6 +19,8 @@ import javafx.scene.paint.Color;
 public class LaunchPadMK2 extends Device implements DeviceColorAssociatorConnector {
 
 	public static final String NAME = "Launchpad MK2";
+
+	// Modern Colors mapped to the colors of the launchpad
 	private static Map<String, String> mapProperties;
 
 	public LaunchPadMK2() {
@@ -41,7 +43,8 @@ public class LaunchPadMK2 extends Device implements DeviceColorAssociatorConnect
 	}
 
 	@Override
-	public void initFeedback() {}
+	public void initDevice() {
+	}
 
 	@Override
 	public void handleFeedback(FeedbackMessage type, int key, Feedback feedback) {
@@ -114,14 +117,16 @@ public class LaunchPadMK2 extends Device implements DeviceColorAssociatorConnect
 
 	@Override
 	public DisplayableFeedbackColor map(Color color) {
-		try {
-			URL resource = getClass().getClassLoader().getResource("de/tobias/playpad/launchpadplugin/assets/launchpad_mk2.map");
-			mapProperties = MapParser.load(resource);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
+		// TEST Ist das nötig
+		// try {
+		// URL resource = getClass().getClassLoader().getResource("de/tobias/playpad/launchpadplugin/assets/launchpad_mk2.map");
+		// mapProperties = MapParser.load(resource);
+		// } catch (Exception e) {
+		// e.printStackTrace();
+		// }
 		if (mapProperties.containsKey(color.toString())) {
-			return LaunchPadMK2Color.valueOf(mapProperties.get(color.toString()));
+			String nameOfConst = mapProperties.get(color.toString());
+			return LaunchPadMK2Color.valueOf(nameOfConst);
 		}
 		return null;
 	}
diff --git a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadS.java b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadS.java
index 64b9651e27d0de4f83858259eec37c8a2ed7a902..693d49e063b5beac6f5b8565ffbbc1e19875d03f 100644
--- a/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadS.java
+++ b/PlayWallPlugins/launchpadplugin/de/tobias/playpad/launchpadplugin/midi/device/s/LaunchPadS.java
@@ -26,7 +26,7 @@ public class LaunchPadS extends Device implements DeviceColorAssociatorConnector
 	}
 
 	@Override
-	public void initFeedback() {
+	public void initDevice() {
 		// Flash Enable
 		try {
 			Midi.getInstance().sendMessage(176, 0, 40);
@@ -37,7 +37,7 @@ public class LaunchPadS extends Device implements DeviceColorAssociatorConnector
 
 	@Override
 	public void handleFeedback(FeedbackMessage type, int key, Feedback feedback) {
-		initFeedback();
+		initDevice();
 
 		int command = 144;