diff --git a/PlayWall/src/de/tobias/playpad/PlayPadImpl.java b/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
index b99b1c7a5340b8dd9fe312fac84a2539f3e1211e..b63f6e43ee160ef45923436b5eb61783d01ad4e1 100644
--- a/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
+++ b/PlayWall/src/de/tobias/playpad/PlayPadImpl.java
@@ -23,6 +23,7 @@ import de.tobias.playpad.audio.JavaFXAudioHandler;
 import de.tobias.playpad.design.modern.ModernGlobalDesign;
 import de.tobias.playpad.midi.device.DeviceRegistry;
 import de.tobias.playpad.midi.device.PD12;
+import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.plugin.AdvancedPlugin;
 import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.plugin.PadListener;
@@ -36,6 +37,8 @@ import de.tobias.playpad.viewcontroller.IPadSettingsViewController;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import de.tobias.playpad.viewcontroller.main.MainViewController;
 import de.tobias.playpad.viewcontroller.option.IProfileSettingsViewController;
+import de.tobias.playpad.volume.GlobalVolume;
+import de.tobias.playpad.volume.PadVolume;
 import de.tobias.updater.client.Updatable;
 import de.tobias.updater.client.UpdateRegistery;
 import de.tobias.utils.application.App;
@@ -80,7 +83,7 @@ public class PlayPadImpl implements PlayPad {
 		modules = new HashSet<>();
 
 		this.globalSettings = globalSettings;
-		
+
 		getModules().add(module); // Add Main Module
 	}
 
@@ -211,6 +214,7 @@ public class PlayPadImpl implements PlayPad {
 		Worker.shutdown();
 	}
 
+	@Override
 	public void loadPlugin(URI uri) {
 		pluginManager.addPluginsFrom(uri);
 
@@ -275,6 +279,10 @@ public class PlayPadImpl implements PlayPad {
 			e.printStackTrace();
 		}
 
+		// Volume Management
+		Pad.getVolumeManager().addFilter(new GlobalVolume());
+		Pad.getVolumeManager().addFilter(new PadVolume());
+
 		// Key Bindings
 		GlobalSettings globalSettings = PlayPadPlugin.getImplementation().getGlobalSettings();
 		globalSettings.getKeyCollection().loadDefaultFromFile("de/tobias/playpad/components/Keys.xml", resourceBundle);
@@ -284,6 +292,7 @@ public class PlayPadImpl implements PlayPad {
 
 	}
 
+	@Override
 	public Set<Module> getModules() {
 		return modules;
 	}
diff --git a/PlayWall/src/de/tobias/playpad/Strings.java b/PlayWall/src/de/tobias/playpad/Strings.java
index 0686a4d0b6b5bfaffc470489790bebd4d7616c37..4e0f3885ebafc33ae6cc2124559fe07443f5f806 100644
--- a/PlayWall/src/de/tobias/playpad/Strings.java
+++ b/PlayWall/src/de/tobias/playpad/Strings.java
@@ -46,7 +46,6 @@ public class Strings {
 
 	// UI - Window - Main
 	public static final String UI_Window_Main_CloseRequest = "UI.Window.Main.CloseRequest";
-	@Deprecated public static final String UI_Window_Main_SaveRequest = "UI.Window.Main.SaveRequest";
 	public static final String UI_Window_Main_PageButton = "UI.Window.Main.PageButton";
 
 	// UI - Dialog - Launch
@@ -161,7 +160,6 @@ public class Strings {
 	public static final String Error_Midi_Send = "Error.Midi.Send";
 
 	// Error - Plugins
-	@Deprecated public static final String Error_Plugins_Download = "Error.Plugins.Download";
 	public static final String Error_Plugins_Available = "Error.Plugins.Available";
 	public static final String Error_Plugins_Missing = "Error.Plugins.Missing";
 
@@ -230,9 +228,6 @@ public class Strings {
 	public static final String UI_Dialog_Update_Info = "UI.Dialog.Update.Info";
 	public static final String UI_Window_Settings_Updates_CurrentVersion = "UI.Window.Settings.Updates.CurrentVersion";
 
-	// Error - Update - Downlaod
-	@Deprecated public static final String Error_Update_Download = "Error.Update.Download";
-
 	// Layout
 	public static final String Layout_Modern_Name = "Layout.Modern.Name";
 	public static final String Layout_Classic_Name = "Layout.Classic.Name";
diff --git a/PlayWall/src/de/tobias/playpad/action/actions/NavigateAction.java b/PlayWall/src/de/tobias/playpad/action/actions/NavigateAction.java
index b4c9e005d4ad67297301d689e39bef045c7d9ab6..e8df71b43fc387729ec9e6eec1be816a75e47ecd 100644
--- a/PlayWall/src/de/tobias/playpad/action/actions/NavigateAction.java
+++ b/PlayWall/src/de/tobias/playpad/action/actions/NavigateAction.java
@@ -21,6 +21,7 @@ public class NavigateAction extends Action {
 		PREVIOUS,
 		NEXT;
 
+		@Override
 		public String toString() {
 			return Localization.getString(Strings.NavigationType_BaseName + name());
 		};
diff --git a/PlayWall/src/de/tobias/playpad/action/actions/PageAction.java b/PlayWall/src/de/tobias/playpad/action/actions/PageAction.java
index 6cc149eb532554103b8b7f3b1badf41ab10b11f3..cd564863f87794440c4ba5052e095d7e179698a7 100644
--- a/PlayWall/src/de/tobias/playpad/action/actions/PageAction.java
+++ b/PlayWall/src/de/tobias/playpad/action/actions/PageAction.java
@@ -98,6 +98,7 @@ public class PageAction extends Action {
 		return new SimpleStringProperty(toString());
 	}
 
+	@Override
 	public Action cloneAction() throws CloneNotSupportedException {
 		PageAction action = (PageAction) super.clone();
 
diff --git a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
index e9e4d6cfa9bf494fba31062d3d29ffa619479b8a..d80cae8b7c5065780df897b9490f41598050657d 100644
--- a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
@@ -85,9 +85,7 @@ public class ClipAudioHandler extends AudioHandler {
 					}
 
 					Thread.sleep(SLEEP_TIME_POSITION);
-				} catch (InterruptedException e) {
-				} catch (ConcurrentModificationException e) {
-				} catch (Exception e) {
+				} catch (InterruptedException e) {} catch (ConcurrentModificationException e) {} catch (Exception e) {
 					e.printStackTrace();
 				}
 			}
@@ -166,17 +164,13 @@ public class ClipAudioHandler extends AudioHandler {
 		return durationProperty;
 	}
 
-	@Override
-	public void setVolume(double volume, double masterVolume, double customVolume) {
-		setVolume(masterVolume * volume * customVolume);
-	}
-
 	/**
 	 * Lineaer to dB
 	 * 
 	 * @param volume
 	 *            [0, 1]
 	 */
+	@Override
 	public void setVolume(double volume) {
 		if (volumeControl != null) {
 			if (volume == 1.0) {
diff --git a/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
index a1c001b15aa3face5a103f2e3e4b3bd3df2cea64..a5a4a39fd0d2fd0e84298b9ad8578a9ab59bcf4d 100644
--- a/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
@@ -78,12 +78,6 @@ public class JavaFXAudioHandler extends AudioHandler implements Equalizable {
 		return durationProperty;
 	}
 
-	@Override
-	public void setVolume(double volume, double masterVolume, double customVolume) {
-		if (player != null)
-			player.setVolume(volume * masterVolume * customVolume);
-	}
-	
 	@Override
 	public void setVolume(double volume) {
 		if (player != null) {
@@ -98,7 +92,8 @@ public class JavaFXAudioHandler extends AudioHandler implements Equalizable {
 
 	@Override
 	public void loadMedia(Path[] paths) {
-		Platform.runLater(() -> {
+		Platform.runLater(() ->
+		{
 			if (getContent().getPad().isPadVisible()) {
 				getContent().getPad().getController().getView().showBusyView(true);
 			}
@@ -114,28 +109,33 @@ public class JavaFXAudioHandler extends AudioHandler implements Equalizable {
 		player = new MediaPlayer(media);
 
 		// Player Listener
-		player.setOnReady(() -> {
+		player.setOnReady(() ->
+		{
 			durationProperty.set(player.getTotalDuration());
 			getContent().getPad().setStatus(PadStatus.READY);
 			loadedProperty.set(true);
 
-			Platform.runLater(() -> {
+			Platform.runLater(() ->
+			{
 				if (getContent().getPad().isPadVisible()) {
 					getContent().getPad().getController().getView().showBusyView(false);
 				}
 			});
 		});
 
-		player.setOnError(() -> {
-			Platform.runLater(() -> {
+		player.setOnError(() ->
+		{
+			Platform.runLater(() ->
+			{
 				if (getContent().getPad().isPadVisible()) {
 					getContent().getPad().getController().getView().showBusyView(false);
 				}
 			});
 			loadedProperty.set(false);
-//			getContent().getPad().throwException(path, player.getError()); TODO Error Handling User
+			// getContent().getPad().throwException(path, player.getError()); TODO Error Handling User
 		});
-		player.setOnEndOfMedia(() -> {
+		player.setOnEndOfMedia(() ->
+		{
 			if (!getContent().getPad().getPadSettings().isLoop()) {
 				getContent().getPad().setEof(true);
 				getContent().getPad().setStatus(PadStatus.STOP);
diff --git a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
index e78b7be10492f1791e04c89ed95286dddd96e332..af2517a0048ecf80ced4686990eb09bd8edf477e 100644
--- a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
@@ -98,9 +98,7 @@ public class TinyAudioHandler extends AudioHandler {
 					}
 
 					Thread.sleep(SLEEP_TIME_POSITION);
-				} catch (InterruptedException e) {
-				} catch (ConcurrentModificationException e) {
-				} catch (Exception e) {
+				} catch (InterruptedException e) {} catch (ConcurrentModificationException e) {} catch (Exception e) {
 					e.printStackTrace();
 				}
 			}
@@ -200,13 +198,6 @@ public class TinyAudioHandler extends AudioHandler {
 		return duration;
 	}
 
-	@Override
-	public void setVolume(double volume, double masterVolume, double customVolume) {
-		if (music != null) {
-			music.setVolume(volume * masterVolume * customVolume);
-		}
-	}
-	
 	@Override
 	public void setVolume(double volume) {
 		if (music != null) {
@@ -255,7 +246,7 @@ public class TinyAudioHandler extends AudioHandler {
 				});
 			} catch (Exception e) {
 				loadedProperty.set(false);
-//				getContent().getPad().throwException(path, e); TODO Error Handling User
+				// getContent().getPad().throwException(path, e); TODO Error Handling User
 				e.printStackTrace();
 			} finally {
 				Platform.runLater(() ->
@@ -270,7 +261,7 @@ public class TinyAudioHandler extends AudioHandler {
 
 	private void calcDuration(URL url) throws UnsupportedAudioFileException, IOException {
 		AudioInputStream iStr = AudioSystem.getAudioInputStream(url);
-		double max = 1000.0 * (double) iStr.getFrameLength() / (double) iStr.getFormat().getFrameRate();
+		double max = 1000.0 * iStr.getFrameLength() / iStr.getFormat().getFrameRate();
 		Duration duration = Duration.millis(max);
 		Platform.runLater(() -> this.duration.set(duration));
 		iStr.close();
diff --git a/PlayWall/src/de/tobias/playpad/design/classic/ClassicCartDesign.java b/PlayWall/src/de/tobias/playpad/design/classic/ClassicCartDesign.java
index af5a1e1ff864e345625432827a6911c7b0c3a7bd..2e1633288740270b3f8bed32f72f4fb75e97bf67 100644
--- a/PlayWall/src/de/tobias/playpad/design/classic/ClassicCartDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/classic/ClassicCartDesign.java
@@ -91,6 +91,7 @@ public class ClassicCartDesign extends Design implements CartDesign {
 		this.accentColor = accentColor;
 	}
 
+	@Override
 	public void reset() {
 		backgroundColor = Color.TRANSPARENT;
 		playbackColor = Color.web("#ffb48bbb");
@@ -102,6 +103,7 @@ public class ClassicCartDesign extends Design implements CartDesign {
 		titleLabelColor = Color.BLACK;
 	}
 
+	@Override
 	public void load(Element rootElement) {
 		setBackgroundColor(ColorXMLUtils.load(rootElement.element("BackgroundColor")));
 		setPlaybackColor(ColorXMLUtils.load(rootElement.element("PlaybackColor")));
@@ -120,6 +122,7 @@ public class ClassicCartDesign extends Design implements CartDesign {
 		}
 	}
 
+	@Override
 	public void save(Element element) {
 		ColorXMLUtils.save(element.addElement("BackgroundColor"), backgroundColor);
 		ColorXMLUtils.save(element.addElement("PlaybackColor"), playbackColor);
@@ -162,6 +165,7 @@ public class ClassicCartDesign extends Design implements CartDesign {
 		return layout;
 	}
 
+	@Override
 	public String convertToCss(String classSufix, boolean fullCss) {
 		StringBuilder builder = new StringBuilder();
 
diff --git a/PlayWall/src/de/tobias/playpad/design/classic/ClassicDesignConnect.java b/PlayWall/src/de/tobias/playpad/design/classic/ClassicDesignConnect.java
index d4c0a91cbe2b3566b71d04389a68ad13a0daef45..d551c8a3bf703aaf6657fd60253954cb13765109 100644
--- a/PlayWall/src/de/tobias/playpad/design/classic/ClassicDesignConnect.java
+++ b/PlayWall/src/de/tobias/playpad/design/classic/ClassicDesignConnect.java
@@ -2,8 +2,8 @@ package de.tobias.playpad.design.classic;
 
 import de.tobias.playpad.Strings;
 import de.tobias.playpad.design.CartDesign;
-import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.design.DesignConnect;
+import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.viewcontroller.CartDesignViewController;
 import de.tobias.playpad.viewcontroller.GlobalDesignViewController;
 import de.tobias.playpad.viewcontroller.design.ClassicCartDesignViewController;
diff --git a/PlayWall/src/de/tobias/playpad/design/classic/ClassicGlobalDesign.java b/PlayWall/src/de/tobias/playpad/design/classic/ClassicGlobalDesign.java
index f0d33ad5c015c3b565ae67c437c1f136c589b457..8052196bfb9df86d3e40fd1c9421950b5c0d6f20 100644
--- a/PlayWall/src/de/tobias/playpad/design/classic/ClassicGlobalDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/classic/ClassicGlobalDesign.java
@@ -161,6 +161,7 @@ public class ClassicGlobalDesign extends Design implements GlobalDesign {
 		return minWidth;
 	}
 
+	@Override
 	public void reset() {
 		themeProperty = new SimpleObjectProperty<>(Theme.LIGHT);
 		customLayout = false;
diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
index 1e7a28801bd5d8d54637039d78530a652ca900fa..07044edfc0be05608b76ce641a03bd2524c626c7 100644
--- a/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
@@ -41,6 +41,7 @@ public class ModernCartDesign extends Design implements CartDesign, DesignColorA
 		this.playColor = playColor;
 	}
 
+	@Override
 	public void reset() {
 		backgroundColor = ModernColor.GRAY1;
 		playColor = ModernColor.RED1;
diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
index fbf9cde0aca9e49e99fb69043e9d889feccc24be..28da223a3b6150adb173a1ce7d6e81c76450f36a 100644
--- a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
@@ -106,6 +106,7 @@ public class ModernGlobalDesign extends Design implements GlobalDesign, DesignCo
 		return minWidth;
 	}
 
+	@Override
 	public void reset() {
 		backgroundColor = ModernColor.GRAY1;
 		playColor = ModernColor.RED1;
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/PageButtonDragHandler.java b/PlayWall/src/de/tobias/playpad/layout/desktop/PageButtonDragHandler.java
index 3043e41a3c33b0e17a1273fe906003b85d4eaf64..5d4e7d37e5e2f0ee01870aaff8cb22a10419a7c0 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/PageButtonDragHandler.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/PageButtonDragHandler.java
@@ -21,6 +21,7 @@ public class PageButtonDragHandler implements EventHandler<DragEvent> {
 		this.page = page;
 	}
 
+	@Override
 	public void handle(DragEvent event) {
 		if (event.getEventType() == DragEvent.DRAG_OVER) {
 			controller.showPage(page);
diff --git a/PlayWall/src/de/tobias/playpad/pad/content/AudioContentConnect.java b/PlayWall/src/de/tobias/playpad/pad/content/AudioContentConnect.java
index 538d4d411600c0e4dc39c80441242c6ed4bb0b2c..f0eb579ddee579440e26edd3561596dc1cd2b48d 100644
--- a/PlayWall/src/de/tobias/playpad/pad/content/AudioContentConnect.java
+++ b/PlayWall/src/de/tobias/playpad/pad/content/AudioContentConnect.java
@@ -70,7 +70,7 @@ public class AudioContentConnect extends PadContentConnect {
 		public AudioContentView(Pad pad, Pane parentNode) {
 			nameLabel = new Label();
 			nameLabel.textProperty().bind(pad.nameProperty());
-			
+
 			nameLabel.setWrapText(true);
 			nameLabel.setAlignment(Pos.CENTER);
 			nameLabel.setTextAlignment(TextAlignment.CENTER);
@@ -86,7 +86,7 @@ public class AudioContentConnect extends PadContentConnect {
 		}
 
 		@Override
-		public void unconnect() {
+		public void deinit() {
 			nameLabel.textProperty().unbind();
 		}
 	}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/actions/CartActionsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/actions/CartActionsViewController.java
index ee150b2c7b9b73157548f784dd6e612f74af29d9..34edd58feec6ceb1c79a9aa86f32886e71f6262d 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/actions/CartActionsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/actions/CartActionsViewController.java
@@ -8,8 +8,8 @@ import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.action.Mapping;
 import de.tobias.playpad.action.cartaction.CartAction;
 import de.tobias.playpad.action.connect.CartActionConnect;
-import de.tobias.playpad.project.ProjectSettings;
 import de.tobias.playpad.project.Project;
+import de.tobias.playpad.project.ProjectSettings;
 import de.tobias.playpad.viewcontroller.IMappingTabViewController;
 import de.tobias.utils.ui.ContentViewController;
 import javafx.fxml.FXML;
@@ -63,7 +63,7 @@ public class CartActionsViewController extends ContentViewController {
 		gridPane.getChildren().clear();
 
 		gridPane.getColumnConstraints().clear();
-		double xPercentage = 1.0 / (double) settings.getColumns();
+		double xPercentage = 1.0 / settings.getColumns();
 		for (int i = 0; i < settings.getColumns(); i++) {
 			ColumnConstraints c = new ColumnConstraints();
 			c.setPercentWidth(xPercentage * 100);
@@ -71,7 +71,7 @@ public class CartActionsViewController extends ContentViewController {
 		}
 
 		gridPane.getRowConstraints().clear();
-		double yPercentage = 1.0 / (double) settings.getRows();
+		double yPercentage = 1.0 / settings.getRows();
 		for (int i = 0; i < settings.getRows(); i++) {
 			RowConstraints c = new RowConstraints();
 			c.setPercentHeight(yPercentage * 100);
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/ErrorCell.java b/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/ErrorCell.java
index 25a1cc9ceee850e0f0ecbb6ce98d61d49ce3301f..327b149134af2e172eb5849fcc9f4c0b32bbf72f 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/ErrorCell.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/ErrorCell.java
@@ -3,6 +3,7 @@ package de.tobias.playpad.viewcontroller.cell.errordialog;
 import de.tobias.playpad.pad.PadException;
 import javafx.scene.control.Control;
 import javafx.scene.control.TableCell;
+import javafx.scene.layout.Region;
 import javafx.scene.text.Text;
 
 public class ErrorCell extends TableCell<PadException, String> {
@@ -11,7 +12,7 @@ public class ErrorCell extends TableCell<PadException, String> {
 		Text text = new Text();
 		text.getStyleClass().add("label");
 		setGraphic(text);
-		setPrefHeight(Control.USE_COMPUTED_SIZE);
+		setPrefHeight(Region.USE_COMPUTED_SIZE);
 		text.wrappingWidthProperty().bind(widthProperty());
 		text.textProperty().bind(itemProperty());
 	}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/design/ClassicGlobalDesignViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/design/ClassicGlobalDesignViewController.java
index d27b88dd43431697726f1251c642dfdc00de6ebf..491005c05eccdbcfa7eb0ed3d89cff53f3bdfd0b 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/design/ClassicGlobalDesignViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/design/ClassicGlobalDesignViewController.java
@@ -2,8 +2,8 @@ package de.tobias.playpad.viewcontroller.design;
 
 import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.PseudoClasses;
-import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.design.DesignConnect;
+import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.design.classic.ClassicGlobalDesign;
 import de.tobias.playpad.design.classic.Theme;
 import de.tobias.playpad.viewcontroller.GlobalDesignViewController;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectExportDialog.java b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectExportDialog.java
index 213b0699ae137d0f5a4d88e46b7b1f3f8fa6e35f..e730c2d2635343b48322d45fd80ac73055b3b9eb 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectExportDialog.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectExportDialog.java
@@ -90,7 +90,7 @@ public class ProjectExportDialog extends ViewController implements ExportView {
 					boolean includeProject = profileCheckBox.isSelected();
 					boolean includeMedia = mediaCheckBox.isSelected();
 
-					ProjectExporter.exportProject(projectRef, path, includeProject, includeMedia, (ExportView) this);
+					ProjectExporter.exportProject(projectRef, path, includeProject, includeMedia, this);
 
 					Platform.runLater(() ->
 					{
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java
index 17ad484e8762d50b8d7785244dfd26a6e7a3684c..33ca625564325d62e577135fb78a53b5b5b54bd7 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/dialog/ProjectManagerDialog.java
@@ -79,7 +79,7 @@ public class ProjectManagerDialog extends ViewController implements Notification
 	public void init() {
 		// Notification Handler
 		notificationPane = new NotificationPane(rootNode);
-		notificationPane.getStyleClass().add(NotificationPane.STYLE_CLASS_DARK);
+		notificationPane.getStyleClass().add(org.controlsfx.control.NotificationPane.STYLE_CLASS_DARK);
 
 		setAnchor(notificationPane, 0, 0, 0, 0);
 		((AnchorPane) getParent()).getChildren().add(notificationPane);
@@ -201,7 +201,7 @@ public class ProjectManagerDialog extends ViewController implements Notification
 		String oldName = projectReference.toString();
 
 		try {
-			String newProjectName = (String) nameTextField.getText();
+			String newProjectName = nameTextField.getText();
 			if (ProjectReference.getProjects().contains(newProjectName) || !nameTextField.getText().matches(Project.PROJECT_NAME_PATTERN)) {
 				showErrorMessage(Localization.getString(Strings.Error_Standard_NameInUse, nameTextField.getText()));
 				return;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
index d1b217aa04b3f059ac2891291cf4f2b688b861f9..4081a87251aa332111f1ba6b9a407fd86cbac16b 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/main/MainViewController.java
@@ -181,7 +181,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 		padGridPane.getStyleClass().add("pad-grid");
 
 		notificationPane = new NotificationPane(padGridPane);
-		notificationPane.getStyleClass().add(NotificationPane.STYLE_CLASS_DARK);
+		notificationPane.getStyleClass().add(org.controlsfx.control.NotificationPane.STYLE_CLASS_DARK);
 
 		gridContainer.getChildren().add(notificationPane);
 		setAnchor(notificationPane, 0, 0, 0, 0);
@@ -192,6 +192,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 		return mainLayout;
 	}
 
+	@Override
 	public void setMainLayout(MainLayoutConnect mainLayoutConnect) {
 		removePadsFromView();
 		removePadViews();
@@ -382,6 +383,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 
 		openProject = project;
 
+		volumeChangeListener.setOpenProject(openProject);
 		midiHandler.setProject(project);
 		keyboardHandler.setProject(project);
 		Profile.currentProfile().getMappings().getActiveMapping().showFeedback(openProject);
@@ -409,7 +411,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 
 		// Table
 		padGridPane.getColumnConstraints().clear();
-		double xPercentage = 1.0 / (double) projectSettings.getColumns();
+		double xPercentage = 1.0 / projectSettings.getColumns();
 		for (int i = 0; i < projectSettings.getColumns(); i++) {
 			ColumnConstraints c = new ColumnConstraints();
 			c.setPercentWidth(xPercentage * 100);
@@ -417,7 +419,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 		}
 
 		padGridPane.getRowConstraints().clear();
-		double yPercentage = 1.0 / (double) projectSettings.getRows();
+		double yPercentage = 1.0 / projectSettings.getRows();
 		for (int i = 0; i < projectSettings.getRows(); i++) {
 			RowConstraints c = new RowConstraints();
 			c.setPercentHeight(yPercentage * 100);
@@ -649,12 +651,14 @@ public class MainViewController extends ViewController implements IMainViewContr
 		getParent().getScene().addEventHandler(eventType, listener);
 	}
 
+	@Override
 	public <T extends Event> void addListenerForPads(EventHandler<? super T> handler, EventType<T> eventType) {
 		for (IPadView view : padViews) {
 			view.getRootNode().addEventFilter(eventType, handler);
 		}
 	}
 	
+	@Override
 	public <T extends Event> void removeListenerForPads(EventHandler<? super T> handler, EventType<T> eventType) {
 		for (IPadView view : padViews) {
 			view.getRootNode().removeEventFilter(eventType, handler);
@@ -705,6 +709,7 @@ public class MainViewController extends ViewController implements IMainViewContr
 		}
 	}
 
+	@Override
 	public void updateWindowTitle() {
 		if (openProject != null && Profile.currentProfile() != null) {
 			getStage().setTitle(Localization.getString(Strings.UI_Window_Main_Title, openProject.getProjectReference().getName(),
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/GlobalSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/GlobalSettingsViewController.java
index e7551ff2c858cff00df4d0e07478cc898948bfec..71db68f789744e5f92362aad7331b817ccd9b169 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/GlobalSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/global/GlobalSettingsViewController.java
@@ -103,6 +103,7 @@ public class GlobalSettingsViewController extends ViewController implements IGlo
 		}
 	}
 
+	@Override
 	public boolean closeRequest() {
 		return onFinish();
 	}
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java
index c397e4e397e471a2bd578e654599b4d6f901cdd0..ef255025e7b51c7511dd1ff459bda7d9d373111f 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java
@@ -21,6 +21,7 @@ public class PathLookupListener implements EventHandler<ActionEvent> {
 		this.alertable = alertable;
 	}
 
+	@Override
 	public void handle(ActionEvent event) {
 		Object source = event.getSource();
 		if (source instanceof Button) {
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/TriggerPadTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/TriggerPadTabViewController.java
index 49df6c486600731271687aaf3075bfdea243f686..6b90fd74ff3945095504de6be0e30f78f0c24e71 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/TriggerPadTabViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/TriggerPadTabViewController.java
@@ -53,6 +53,7 @@ public class TriggerPadTabViewController extends PadSettingsTabViewController im
 		treeView.setRoot(rootItem);
 	}
 
+	@Override
 	public void changed(ObservableValue<? extends TreeItem<TriggerUIWrapper>> observable, TreeItem<TriggerUIWrapper> oldValue,
 			TreeItem<TriggerUIWrapper> newValue) {
 		contentView.getChildren().clear();
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/trigger/CartTriggerViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/trigger/CartTriggerViewController.java
index f8e58620ea32428e1ce48257ee6f460c7bbf1d37..69e604402909e4f4c2f497af0a8c3842b6c3eb64 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/trigger/CartTriggerViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/trigger/CartTriggerViewController.java
@@ -65,6 +65,7 @@ public class CartTriggerViewController extends ContentViewController {
 			@Override
 			public ListCell<UUID> call(ListView<UUID> param) {
 				ListCell<UUID> cell = new ListCell<UUID>() {
+					@Override
 					protected void updateItem(UUID item, boolean empty) {
 						super.updateItem(item, empty);
 						if (!empty) {
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java
index 5d37af62d3c566b6d4f338ed640dc0eb79ddcc04..ae657afc775973a86d806fe2563d07e3849fa8be 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java
@@ -140,6 +140,7 @@ public class ProfileSettingsViewController extends ViewController implements IPr
 		}
 	}
 
+	@Override
 	public boolean closeRequest() {
 		return onFinish();
 	}
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
index ebe336c824d5878fd544e18a664010c1a52396af..202af60899bcbf573ad2a1347867829dd60c338f 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
@@ -35,9 +35,6 @@ public abstract class AudioHandler {
 	public abstract ReadOnlyObjectProperty<Duration> durationProperty();
 
 	public abstract void setVolume(double volume);
-	
-	@Deprecated
-	public abstract void setVolume(double volume, double masterVolume, double customVolume);
 
 	public abstract boolean isMediaLoaded();
 
diff --git a/PlayWallCore/src/de/tobias/playpad/midi/Midi.java b/PlayWallCore/src/de/tobias/playpad/midi/Midi.java
index 099dd02d17f479c02237bbe5ffe2ada30bf31904..34868d79a351c4fcf102c23bdb58f598e4a6b240 100644
--- a/PlayWallCore/src/de/tobias/playpad/midi/Midi.java
+++ b/PlayWallCore/src/de/tobias/playpad/midi/Midi.java
@@ -170,6 +170,7 @@ public class Midi {
 			}
 		}
 
+		@Override
 		public void close() {}
 	}
 
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/view/IPadContentView.java b/PlayWallCore/src/de/tobias/playpad/pad/view/IPadContentView.java
index d2cc68210ef72974fda13e91391e3577e8040d72..653ec8985e19d22082998c322664862e44e8bf1f 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/view/IPadContentView.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/view/IPadContentView.java
@@ -19,14 +19,8 @@ public interface IPadContentView {
 	 */
 	public Node getNode();
 
-	@Deprecated
-	public void unconnect();
-
 	/**
 	 * Deinitialisiert die View. Hier können mögliche Bindings und Listener entfernt werden.
 	 */
-	public default void deinit() {
-		// TODO Remove the default after remove unconnect from interface
-		unconnect();
-	}
+	public void deinit();
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/project/ref/ProjectReferenceList.java b/PlayWallCore/src/de/tobias/playpad/project/ref/ProjectReferenceList.java
index b576c519c8bd5842f84996cc5d2e9a1e4e9c38a4..00db638dab61961b81fb688e3c997c730687d64e 100644
--- a/PlayWallCore/src/de/tobias/playpad/project/ref/ProjectReferenceList.java
+++ b/PlayWallCore/src/de/tobias/playpad/project/ref/ProjectReferenceList.java
@@ -14,6 +14,7 @@ final class ProjectReferenceList extends UniqList<ProjectReference> {
 
 	private static final long serialVersionUID = 1L;
 
+	@Override
 	public boolean contains(Object o) {
 		if (o instanceof String) {
 			for (ProjectReference reference : this) {
diff --git a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceList.java b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceList.java
index 01bf7b7d7a68a3253c946e964ebfa14800796f31..6fa172307dbcc11ea478ca8f6c0e0b96a034e130 100644
--- a/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceList.java
+++ b/PlayWallCore/src/de/tobias/playpad/settings/ProfileReferenceList.java
@@ -14,6 +14,7 @@ final class ProfileReferenceList extends UniqList<ProfileReference> {
 
 	private static final long serialVersionUID = 1L;
 
+	@Override
 	public boolean contains(Object o) {
 		if (o instanceof String) {
 			for (ProfileReference reference : this) {
diff --git a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java
index c61992e73eea00bd45d685fa3953fa83dd09df33..7a393b0e9fab97ba149c0f3fe05164748b88d068 100644
--- a/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java
+++ b/PlayWallCore/src/de/tobias/playpad/settings/keys/KeySerializer.java
@@ -14,6 +14,7 @@ public class KeySerializer implements XMLSerializer<Key>, XMLDeserializer<Key> {
 	private static final String META_ATTR = "meta";
 	private static final String SHIFT_ATTR = "shift";
 
+	@Override
 	public Key loadElement(Element element) {
 		boolean shift = false;
 		if (element.attributeValue(SHIFT_ATTR) != null) {
diff --git a/PlayWallCore/src/de/tobias/playpad/viewcontroller/option/ProjectSettingsTabViewController.java b/PlayWallCore/src/de/tobias/playpad/viewcontroller/option/ProjectSettingsTabViewController.java
index 8bbc1d2b26b89637ddbb4243fed361595c3905dc..0f4b33e9383b26ce94cae26baf12f54670534fe2 100644
--- a/PlayWallCore/src/de/tobias/playpad/viewcontroller/option/ProjectSettingsTabViewController.java
+++ b/PlayWallCore/src/de/tobias/playpad/viewcontroller/option/ProjectSettingsTabViewController.java
@@ -2,8 +2,8 @@ package de.tobias.playpad.viewcontroller.option;
 
 import java.util.ResourceBundle;
 
-import de.tobias.playpad.project.ProjectSettings;
 import de.tobias.playpad.project.Project;
+import de.tobias.playpad.project.ProjectSettings;
 import de.tobias.playpad.settings.Profile;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
 import de.tobias.utils.ui.ContentViewController;
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 60cfab938d8e09c17b3e268e4ca74e7be134a3f5..f12a8dcb0700673574f8917f4b6651770b7734a2 100644
--- a/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
+++ b/PlayWallPlugins/equalizerplugin/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
@@ -123,7 +123,7 @@ public class EqualizerPluginImpl implements EqualizerPlugin, WindowListener<IMai
 		}
 	}
 
-	@FXML
+	@Override
 	public void handle(ActionEvent event) {
 		if (equalizerViewController == null) {
 			equalizerViewController = new EqualizerViewController(mainStage);
diff --git a/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java b/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
index 53e049cd4799802c5ab74d5d44d6c3ab5cedf81d..fabd24a886e9c823f5a661b1a1b6f51bd7bf5cfa 100644
--- a/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
+++ b/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
@@ -119,7 +119,7 @@ public class ImageContentConntect extends PadContentConnect {
 		}
 
 		@Override
-		public void unconnect() {
+		public void deinit() {
 			nameLabel.textProperty().unbind();
 		}
 
diff --git a/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java b/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
index 4fd611c04cf87898c2e1e6f476aaf90754653cdc..394e41c66b502ce4239858454656bdc102fbef95 100644
--- a/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
+++ b/PlayWallPlugins/mediaplugin/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
@@ -87,7 +87,7 @@ public class VideoContentConntect extends PadContentConnect {
 		}
 
 		@Override
-		public void unconnect() {
+		public void deinit() {
 			nameLabel.textProperty().unbind();
 		}
 	}