From 1282376da9c17bfffca8b045e64aed5f3c215436 Mon Sep 17 00:00:00 2001
From: tobias <thinkdifferent055@gmail.com>
Date: Sun, 1 Jan 2017 22:21:15 +0100
Subject: [PATCH] Code refractoring, ClipAudio is depricated

---
 .../playpad/RegistryCollectionImpl.java       |  2 +-
 .../playpad/action/cartaction/CartAction.java |  2 +-
 .../PadContentFeedbackListener.java           |  4 +-
 .../PadPositionWarningListener.java           |  2 +-
 .../cartaction/PadStatusFeedbackListener.java |  2 +-
 .../action/mapper/MidiMapperFactory.java      |  8 ++-
 .../playpad/audio/ClipAudioHandler.java       |  3 +-
 .../audio/ClipAudioHandlerFactory.java        | 11 ++--
 .../playpad/audio/JavaFXAudioHandler.java     |  2 +-
 .../playpad/audio/JavaFXHandlerFactory.java   | 10 +---
 .../playpad/audio/TinyAudioHandler.java       |  2 +-
 .../audio/TinyAudioHandlerFactory.java        | 10 +---
 .../design/modern/ModernCartDesign.java       |  2 +-
 .../design/modern/ModernGlobalDesign.java     |  2 +-
 .../desktop/pad/DesktopPadDragListener.java   |  6 +--
 .../layout/desktop/pad/DesktopPadView.java    |  8 +--
 .../desktop/pad/DesktopPadViewController.java |  8 +--
 .../playpad/layout/touch/TouchPadView.java    |  4 +-
 .../layout/touch/TouchPadViewController.java  |  2 +-
 .../playpad/pad/content/AudioContent.java     | 21 ++++----
 .../pad/content/AudioContentFactory.java      |  4 --
 .../pad/listener/PadContentListener.java      |  4 +-
 .../pad/listener/PadPositionListener.java     |  6 +--
 .../playpad/view/FileDragOptionView.java      |  2 +-
 .../audio/ClipSettingsViewController.java     |  1 +
 .../TinySoundSettingsViewController.java      |  1 +
 .../IOExceptionButtonListener.java            |  6 +--
 .../option/pad/PadSettingsViewController.java | 10 ++--
 .../profile/AudioTabViewController.java       |  2 +-
 .../ProfileSettingsViewController.java        |  2 +-
 .../project/PathsTabViewController.java       |  6 +--
 .../de/tobias/playpad/RegistryCollection.java |  2 +-
 .../tobias/playpad/audio/AudioCapability.java | 18 +++++--
 .../de/tobias/playpad/audio/AudioHandler.java | 53 +++++++++++++++++--
 .../playpad/audio/AudioHandlerFactory.java    | 24 +++------
 .../tobias/playpad/audio/AudioRegistry.java   |  1 +
 .../src/de/tobias/playpad/pad/Pad.java        |  4 +-
 .../de/tobias/playpad/pad/PadSerializer.java  |  4 +-
 .../tobias/playpad/pad/PadStatusListener.java |  7 ++-
 .../pad/conntent/path/MultiPathContent.java   | 11 ----
 .../pad/conntent/path/SinglePathContent.java  |  8 ---
 .../pad/conntent/play/FadeHandler.java        | 13 -----
 .../{conntent => content}/ContentFactory.java |  3 +-
 .../pad/{conntent => content}/PadContent.java |  2 +-
 .../PadContentRegistry.java                   |  2 +-
 .../pad/content/path/MultiPathContent.java    | 24 +++++++++
 .../pad/content/path/SinglePathContent.java   | 18 +++++++
 .../play/Durationable.java                    |  2 +-
 .../play/Equalizeable.java                    |  2 +-
 .../{conntent => content}/play/Pauseable.java |  2 +-
 .../playpad/{audio => pad/fade}/Fade.java     | 13 +++--
 .../tobias/playpad/pad/fade/FadeDelegate.java | 17 ++++++
 .../pad/{conntent/play => fade}/Fadeable.java |  2 +-
 .../trigger/PadTriggerContentListener.java    |  4 +-
 .../trigger/PadTriggerDurationListener.java   |  4 +-
 .../main/impl/EqualizerPluginImpl.java        |  4 +-
 .../mediaplugin/image/ImageContent.java       |  2 +-
 .../image/ImageContentConntect.java           | 11 +---
 .../main/impl/MediaPluginImpl.java            |  2 +-
 .../mediaplugin/video/VideoContent.java       |  6 +--
 .../video/VideoContentConntect.java           | 10 +---
 .../playpad/namac/NativeAudioMacHandler.java  |  2 +-
 .../namac/NativeAudioMacHandlerFactory.java   | 10 +---
 .../nawin/audio/NativeAudioWinHandler.java    |  2 +-
 .../audio/NativeAudioWinHandlerFactory.java   | 10 +---
 65 files changed, 247 insertions(+), 207 deletions(-)
 delete mode 100644 PlayWallCore/src/de/tobias/playpad/pad/conntent/path/MultiPathContent.java
 delete mode 100644 PlayWallCore/src/de/tobias/playpad/pad/conntent/path/SinglePathContent.java
 delete mode 100644 PlayWallCore/src/de/tobias/playpad/pad/conntent/play/FadeHandler.java
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/ContentFactory.java (93%)
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/PadContent.java (98%)
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/PadContentRegistry.java (96%)
 create mode 100644 PlayWallCore/src/de/tobias/playpad/pad/content/path/MultiPathContent.java
 create mode 100644 PlayWallCore/src/de/tobias/playpad/pad/content/path/SinglePathContent.java
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/play/Durationable.java (87%)
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/play/Equalizeable.java (80%)
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent => content}/play/Pauseable.java (55%)
 rename PlayWallCore/src/de/tobias/playpad/{audio => pad/fade}/Fade.java (85%)
 create mode 100644 PlayWallCore/src/de/tobias/playpad/pad/fade/FadeDelegate.java
 rename PlayWallCore/src/de/tobias/playpad/pad/{conntent/play => fade}/Fadeable.java (70%)

diff --git a/PlayWall/src/de/tobias/playpad/RegistryCollectionImpl.java b/PlayWall/src/de/tobias/playpad/RegistryCollectionImpl.java
index 75079636..8c4179a0 100644
--- a/PlayWall/src/de/tobias/playpad/RegistryCollectionImpl.java
+++ b/PlayWall/src/de/tobias/playpad/RegistryCollectionImpl.java
@@ -4,7 +4,7 @@ import de.tobias.playpad.action.ActionFactory;
 import de.tobias.playpad.action.mapper.MapperFactory;
 import de.tobias.playpad.audio.AudioRegistry;
 import de.tobias.playpad.design.DesignFactory;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
+import de.tobias.playpad.pad.content.PadContentRegistry;
 import de.tobias.playpad.pad.drag.PadDragMode;
 import de.tobias.playpad.registry.ComponentRegistry;
 import de.tobias.playpad.registry.DefaultComponentRegistry;
diff --git a/PlayWall/src/de/tobias/playpad/action/cartaction/CartAction.java b/PlayWall/src/de/tobias/playpad/action/cartaction/CartAction.java
index ad5af8a9..e6d780ac 100644
--- a/PlayWall/src/de/tobias/playpad/action/cartaction/CartAction.java
+++ b/PlayWall/src/de/tobias/playpad/action/cartaction/CartAction.java
@@ -9,7 +9,7 @@ import de.tobias.playpad.action.feedback.ColorAdjustable;
 import de.tobias.playpad.action.feedback.FeedbackType;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.viewcontroller.actions.CartActionViewController;
 import de.tobias.playpad.viewcontroller.main.IMainViewController;
diff --git a/PlayWall/src/de/tobias/playpad/action/cartaction/PadContentFeedbackListener.java b/PlayWall/src/de/tobias/playpad/action/cartaction/PadContentFeedbackListener.java
index d0934061..837c8300 100644
--- a/PlayWall/src/de/tobias/playpad/action/cartaction/PadContentFeedbackListener.java
+++ b/PlayWall/src/de/tobias/playpad/action/cartaction/PadContentFeedbackListener.java
@@ -1,7 +1,7 @@
 package de.tobias.playpad.action.cartaction;
 
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 
diff --git a/PlayWall/src/de/tobias/playpad/action/cartaction/PadPositionWarningListener.java b/PlayWall/src/de/tobias/playpad/action/cartaction/PadPositionWarningListener.java
index c9e3afdf..5b31234a 100644
--- a/PlayWall/src/de/tobias/playpad/action/cartaction/PadPositionWarningListener.java
+++ b/PlayWall/src/de/tobias/playpad/action/cartaction/PadPositionWarningListener.java
@@ -3,7 +3,7 @@ package de.tobias.playpad.action.cartaction;
 import de.tobias.playpad.action.feedback.FeedbackMessage;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.util.Duration;
diff --git a/PlayWall/src/de/tobias/playpad/action/cartaction/PadStatusFeedbackListener.java b/PlayWall/src/de/tobias/playpad/action/cartaction/PadStatusFeedbackListener.java
index 992dec67..98a555a2 100644
--- a/PlayWall/src/de/tobias/playpad/action/cartaction/PadStatusFeedbackListener.java
+++ b/PlayWall/src/de/tobias/playpad/action/cartaction/PadStatusFeedbackListener.java
@@ -4,7 +4,7 @@ import de.tobias.playpad.action.feedback.FeedbackMessage;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 import javafx.util.Duration;
diff --git a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperFactory.java b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperFactory.java
index 3d616684..073ba0e2 100644
--- a/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperFactory.java
+++ b/PlayWall/src/de/tobias/playpad/action/mapper/MidiMapperFactory.java
@@ -24,13 +24,17 @@ public class MidiMapperFactory extends MapperFactory implements MapperConnectFee
 	@Override
 	public void initFeedbackType() {
 		MidiDeviceImpl midiDeviceImpl = Midi.getInstance().getMidiDevice();
-		midiDeviceImpl.initDevice();
+		if (midiDeviceImpl != null) {
+			midiDeviceImpl.initDevice();
+		}
 	}
 
 	@Override
 	public void clearFeedbackType() {
 		MidiDeviceImpl midiDeviceImpl = Midi.getInstance().getMidiDevice();
-		midiDeviceImpl.clearFeedback();
+		if (midiDeviceImpl != null) {
+			midiDeviceImpl.clearFeedback();
+		}
 	}
 
 	// TODO Remove
diff --git a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
index b108a75b..77281ced 100644
--- a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandler.java
@@ -21,7 +21,7 @@ import javax.sound.sampled.Mixer;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.pad.content.AudioContent;
 import de.tobias.playpad.settings.GlobalSettings;
 import de.tobias.utils.util.FileUtils;
@@ -33,6 +33,7 @@ import javafx.util.Duration;
 import javazoom.jl.converter.Converter;
 import javazoom.jl.decoder.JavaLayerException;
 
+@Deprecated
 public class ClipAudioHandler extends AudioHandler {
 
 	private static final String MP3 = "mp3";
diff --git a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerFactory.java b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerFactory.java
index dbe49172..5f4ecab3 100644
--- a/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerFactory.java
+++ b/PlayWall/src/de/tobias/playpad/audio/ClipAudioHandlerFactory.java
@@ -1,10 +1,10 @@
 package de.tobias.playpad.audio;
 
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
 import de.tobias.playpad.viewcontroller.audio.ClipSettingsViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 
+@Deprecated
 public class ClipAudioHandlerFactory extends AudioHandlerFactory implements AutoCloseable {
 
 	public ClipAudioHandlerFactory(String type) {
@@ -16,18 +16,13 @@ public class ClipAudioHandlerFactory extends AudioHandlerFactory implements Auto
 		return new ClipAudioHandler(content);
 	}
 
-	@Override
-	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
-		return new ClipSettingsViewController();
-	}
-
 	@Override
 	public void close() throws Exception {
 		ClipAudioHandler.shutdown();
 	}
 
 	@Override
-	public boolean isFeatureAvaiable(AudioCapability audioCapability) {
+	public boolean isFeatureAvailable(AudioCapability audioCapability) {
 		for (Class<?> clazz : ClipAudioHandler.class.getInterfaces()) {
 			if (clazz.equals(audioCapability.getAudioFeature()))
 				return true;
diff --git a/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
index d363e7e5..ffed8e9f 100644
--- a/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/JavaFXAudioHandler.java
@@ -1,7 +1,7 @@
 package de.tobias.playpad.audio;
 
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.pad.content.AudioContent;
 import javafx.application.Platform;
 import javafx.beans.property.*;
diff --git a/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerFactory.java b/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerFactory.java
index e7801045..306a4373 100644
--- a/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerFactory.java
+++ b/PlayWall/src/de/tobias/playpad/audio/JavaFXHandlerFactory.java
@@ -1,8 +1,7 @@
 package de.tobias.playpad.audio;
 
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 
 public class JavaFXHandlerFactory extends AudioHandlerFactory {
 
@@ -14,14 +13,9 @@ public class JavaFXHandlerFactory extends AudioHandlerFactory {
 	public AudioHandler createAudioHandler(PadContent content) {
 		return new JavaFXAudioHandler(content);
 	}
-
-	@Override
-	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
-		return null;
-	}
 	
 	@Override
-	public boolean isFeatureAvaiable(AudioCapability audioCapability) {
+	public boolean isFeatureAvailable(AudioCapability audioCapability) {
 		for (Class<?> clazz : JavaFXAudioHandler.class.getInterfaces()) {
 			if (clazz.equals(audioCapability.getAudioFeature()))
 				return true;
diff --git a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
index 8e8e8d16..ebb84595 100644
--- a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
+++ b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandler.java
@@ -21,7 +21,7 @@ import javax.sound.sampled.UnsupportedAudioFileException;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.pad.content.AudioContent;
 import de.tobias.playpad.settings.GlobalSettings;
 import de.tobias.playpad.settings.Profile;
diff --git a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerFactory.java b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
index 789a6774..85237820 100644
--- a/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
+++ b/PlayWall/src/de/tobias/playpad/audio/TinyAudioHandlerFactory.java
@@ -1,9 +1,8 @@
 package de.tobias.playpad.audio;
 
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
 import de.tobias.playpad.viewcontroller.audio.TinySoundSettingsViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 
 public class TinyAudioHandlerFactory extends AudioHandlerFactory implements AutoCloseable {
 
@@ -16,11 +15,6 @@ public class TinyAudioHandlerFactory extends AudioHandlerFactory implements Auto
 		return new TinyAudioHandler(content);
 	}
 
-	@Override
-	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
-		return new TinySoundSettingsViewController();
-	}
-
 	@Override
 	public String getType() {
 		return TinyAudioHandler.TYPE;
@@ -32,7 +26,7 @@ public class TinyAudioHandlerFactory extends AudioHandlerFactory implements Auto
 	}
 
 	@Override
-	public boolean isFeatureAvaiable(AudioCapability audioCapability) {
+	public boolean isFeatureAvailable(AudioCapability audioCapability) {
 		for (Class<?> clazz : TinyAudioHandler.class.getInterfaces()) {
 			if (clazz.equals(audioCapability.getAudioFeature()))
 				return true;
diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
index baa4871b..af034ba9 100644
--- a/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernCartDesign.java
@@ -9,7 +9,7 @@ import de.tobias.playpad.design.DesignColorAssociator;
 import de.tobias.playpad.design.FadeableColor;
 import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
 import javafx.scene.paint.Color;
 import javafx.util.Duration;
diff --git a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
index 2de8bf6c..212b9ce7 100644
--- a/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
+++ b/PlayWall/src/de/tobias/playpad/design/modern/ModernGlobalDesign.java
@@ -17,7 +17,7 @@ import de.tobias.playpad.design.FadeableColor;
 import de.tobias.playpad.design.GlobalDesign;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.settings.Profile;
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
index 8a24f60c..4d366155 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
@@ -9,9 +9,9 @@ import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.layout.desktop.DesktopEditMode;
 import de.tobias.playpad.layout.desktop.DesktopMainLayoutFactory;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.PadContentRegistry;
 import de.tobias.playpad.pad.drag.PadDragMode;
 import de.tobias.playpad.pad.view.IPadView;
 import de.tobias.playpad.project.Project;
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
index f1d064a4..b8cb2eb0 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadView.java
@@ -4,10 +4,10 @@ import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.PseudoClasses;
 import de.tobias.playpad.layout.desktop.DesktopMainLayoutFactory;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
-import de.tobias.playpad.pad.conntent.play.Pauseable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContentRegistry;
+import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.pad.view.IPadView;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
diff --git a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
index 30da0dea..cfbd6be3 100644
--- a/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
@@ -12,10 +12,10 @@ import de.tobias.playpad.layout.desktop.DesktopMainLayoutFactory;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.TimeMode;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContentRegistry;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.listener.IPadPositionListener;
 import de.tobias.playpad.pad.listener.PadContentListener;
 import de.tobias.playpad.pad.listener.PadDurationListener;
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
index 6868fa95..172d7ce4 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadView.java
@@ -3,8 +3,8 @@ package de.tobias.playpad.layout.touch;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.PseudoClasses;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.pad.view.IPadView;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
diff --git a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
index eb3df649..eda57b46 100644
--- a/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
+++ b/PlayWall/src/de/tobias/playpad/layout/touch/TouchPadViewController.java
@@ -3,7 +3,7 @@ package de.tobias.playpad.layout.touch;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.TimeMode;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.listener.IPadPositionListener;
 import de.tobias.playpad.pad.listener.PadContentListener;
 import de.tobias.playpad.pad.listener.PadDurationListener;
diff --git a/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java b/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java
index ad1b9fd0..da672b21 100644
--- a/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java
+++ b/PlayWall/src/de/tobias/playpad/pad/content/AudioContent.java
@@ -11,16 +11,15 @@ import org.dom4j.Element;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.AudioRegistry;
-import de.tobias.playpad.pad.conntent.play.Equalizeable;
-import de.tobias.playpad.audio.Fade;
+import de.tobias.playpad.pad.content.play.Equalizeable;
+import de.tobias.playpad.pad.fade.Fade;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.path.SinglePathContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
-import de.tobias.playpad.pad.conntent.play.Fadeable;
-import de.tobias.playpad.pad.conntent.play.FadeHandler;
-import de.tobias.playpad.pad.conntent.play.Pauseable;
+import de.tobias.playpad.pad.content.path.SinglePathContent;
+import de.tobias.playpad.pad.content.play.Durationable;
+import de.tobias.playpad.pad.fade.Fadeable;
+import de.tobias.playpad.pad.fade.FadeDelegate;
+import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.project.ProjectExporter;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.volume.VolumeManager;
@@ -33,7 +32,7 @@ import javafx.beans.value.ChangeListener;
 import javafx.scene.media.AudioEqualizer;
 import javafx.util.Duration;
 
-public class AudioContent extends PadContent implements Pauseable, Durationable, Fadeable, Equalizeable, SinglePathContent, FadeHandler {
+public class AudioContent extends PadContent implements Pauseable, Durationable, Fadeable, Equalizeable, SinglePathContent, FadeDelegate {
 
 	private final String type;
 
@@ -128,7 +127,7 @@ public class AudioContent extends PadContent implements Pauseable, Durationable,
 	}
 
 	@Override
-	public void setFadeLevel(double level) {
+	public void onFadeLevelChange(double level) {
 		Pad pad = getPad();
 		VolumeManager manager = Pad.getVolumeManager();
 
@@ -175,7 +174,7 @@ public class AudioContent extends PadContent implements Pauseable, Durationable,
 		audioHandler = audioRegistry.getCurrentAudioHandler().createAudioHandler(this);
 
 		if (Files.exists(path)) {
-			audioHandler.loadMedia(new Path[]{path});
+			audioHandler.loadMedia(path);
 
 			durationProperty.bind(audioHandler.durationProperty());
 			positionProperty.bind(audioHandler.positionProperty());
diff --git a/PlayWall/src/de/tobias/playpad/pad/content/AudioContentFactory.java b/PlayWall/src/de/tobias/playpad/pad/content/AudioContentFactory.java
index bbc9d48c..340c9ff6 100644
--- a/PlayWall/src/de/tobias/playpad/pad/content/AudioContentFactory.java
+++ b/PlayWall/src/de/tobias/playpad/pad/content/AudioContentFactory.java
@@ -1,13 +1,9 @@
 package de.tobias.playpad.pad.content;
 
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.viewcontroller.option.ProfileSettingsTabViewController;
 import de.tobias.playpad.viewcontroller.option.profile.AudioTabViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 import javafx.geometry.Pos;
 import javafx.scene.Node;
 import javafx.scene.control.Label;
diff --git a/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java b/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
index d974f109..0b88a71c 100644
--- a/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
+++ b/PlayWall/src/de/tobias/playpad/pad/listener/PadContentListener.java
@@ -1,8 +1,8 @@
 package de.tobias.playpad.pad.listener;
 
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
diff --git a/PlayWall/src/de/tobias/playpad/pad/listener/PadPositionListener.java b/PlayWall/src/de/tobias/playpad/pad/listener/PadPositionListener.java
index 02e0d052..03cd7143 100644
--- a/PlayWall/src/de/tobias/playpad/pad/listener/PadPositionListener.java
+++ b/PlayWall/src/de/tobias/playpad/pad/listener/PadPositionListener.java
@@ -3,9 +3,9 @@ package de.tobias.playpad.pad.listener;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
-import de.tobias.playpad.pad.conntent.play.Fadeable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
+import de.tobias.playpad.pad.fade.Fadeable;
 import de.tobias.playpad.pad.viewcontroller.IPadViewController;
 import de.tobias.playpad.settings.Profile;
 import javafx.beans.value.ObservableValue;
diff --git a/PlayWall/src/de/tobias/playpad/view/FileDragOptionView.java b/PlayWall/src/de/tobias/playpad/view/FileDragOptionView.java
index ccb9f47e..709aa371 100644
--- a/PlayWall/src/de/tobias/playpad/view/FileDragOptionView.java
+++ b/PlayWall/src/de/tobias/playpad/view/FileDragOptionView.java
@@ -4,7 +4,7 @@ import java.util.Set;
 import java.util.function.Consumer;
 
 import de.tobias.playpad.PseudoClasses;
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.ContentFactory;
 import javafx.animation.FadeTransition;
 import javafx.animation.ParallelTransition;
 import javafx.animation.ScaleTransition;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/audio/ClipSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/audio/ClipSettingsViewController.java
index 1cf62dd4..06715aad 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/audio/ClipSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/audio/ClipSettingsViewController.java
@@ -27,6 +27,7 @@ import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.util.Callback;
 
+@Deprecated
 public class ClipSettingsViewController extends AudioHandlerViewController implements Callback<ListView<Info>, ListCell<Info>> {
 
 	@FXML private ComboBox<Info> soundCardComboBox;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
index 799ed153..ff96b80e 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/audio/TinySoundSettingsViewController.java
@@ -27,6 +27,7 @@ import javafx.scene.control.ListCell;
 import javafx.scene.control.ListView;
 import javafx.util.Callback;
 
+@Deprecated
 public class TinySoundSettingsViewController extends AudioHandlerViewController implements Callback<ListView<Info>, ListCell<Info>> {
 
 	@FXML private ComboBox<Info> soundCardComboBox;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/IOExceptionButtonListener.java b/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/IOExceptionButtonListener.java
index a6af41df..33cb9929 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/IOExceptionButtonListener.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/cell/errordialog/IOExceptionButtonListener.java
@@ -7,9 +7,9 @@ import java.nio.file.Path;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadException;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContentRegistry;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.view.ExceptionButton;
 import de.tobias.utils.util.FileUtils;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
index 82234cd2..3c8167f1 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
@@ -9,11 +9,11 @@ import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.Strings;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
-import de.tobias.playpad.pad.conntent.path.MultiPathContent;
-import de.tobias.playpad.pad.conntent.path.SinglePathContent;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.PadContentRegistry;
+import de.tobias.playpad.pad.content.path.MultiPathContent;
+import de.tobias.playpad.pad.content.path.SinglePathContent;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.settings.Profile;
 import de.tobias.playpad.viewcontroller.IPadSettingsViewController;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
index c64ee3f3..3a4c57e5 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/AudioTabViewController.java
@@ -99,7 +99,7 @@ public class AudioTabViewController extends ProfileSettingsTabViewController imp
 		AudioHandlerViewController settingsViewController = null;
 
 		Label availableLabel;
-		if (audio.isFeatureAvaiable(audioCapability)) {
+		if (audio.isFeatureAvailable(audioCapability)) {
 			availableLabel = new FontIcon(FontAwesomeType.CHECK);
 
 			settingsViewController = audio.getAudioFeatureSettings(audioCapability);
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 a9a099fa..235ea3d4 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/profile/ProfileSettingsViewController.java
@@ -3,7 +3,7 @@ package de.tobias.playpad.viewcontroller.option.profile;
 import java.util.ArrayList;
 import java.util.List;
 
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.ContentFactory;
 import org.controlsfx.control.TaskProgressView;
 
 import de.tobias.playpad.PlayPadMain;
diff --git a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java
index c5cc0bc2..2e1171a0 100644
--- a/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java
+++ b/PlayWall/src/de/tobias/playpad/viewcontroller/option/project/PathsTabViewController.java
@@ -13,9 +13,9 @@ import de.tobias.playpad.PlayPadMain;
 import de.tobias.playpad.Strings;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.path.MultiPathContent;
-import de.tobias.playpad.pad.conntent.path.SinglePathContent;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.path.MultiPathContent;
+import de.tobias.playpad.pad.content.path.SinglePathContent;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.project.ProjectSettings;
 import de.tobias.playpad.registry.NoSuchComponentException;
diff --git a/PlayWallCore/src/de/tobias/playpad/RegistryCollection.java b/PlayWallCore/src/de/tobias/playpad/RegistryCollection.java
index eab6ee01..0ae37a93 100644
--- a/PlayWallCore/src/de/tobias/playpad/RegistryCollection.java
+++ b/PlayWallCore/src/de/tobias/playpad/RegistryCollection.java
@@ -4,7 +4,7 @@ import de.tobias.playpad.action.ActionFactory;
 import de.tobias.playpad.action.mapper.MapperFactory;
 import de.tobias.playpad.audio.AudioRegistry;
 import de.tobias.playpad.design.DesignFactory;
-import de.tobias.playpad.pad.conntent.PadContentRegistry;
+import de.tobias.playpad.pad.content.PadContentRegistry;
 import de.tobias.playpad.pad.drag.PadDragMode;
 import de.tobias.playpad.registry.DefaultRegistry;
 import de.tobias.playpad.registry.Registry;
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioCapability.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioCapability.java
index abb3d675..5e6e1523 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioCapability.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioCapability.java
@@ -1,6 +1,9 @@
 package de.tobias.playpad.audio;
 
-import de.tobias.playpad.pad.conntent.play.Equalizeable;
+import de.tobias.playpad.pad.content.play.Equalizeable;
+
+import java.util.ArrayList;
+import java.util.List;
 
 public class AudioCapability {
 
@@ -10,6 +13,14 @@ public class AudioCapability {
 	private String name;
 	private Class<? extends AudioFeature> clazz;
 
+	private static List<AudioCapability> audioCapabilityList;
+
+	static {
+		audioCapabilityList = new ArrayList<>();
+		audioCapabilityList.add(EQUALIZER);
+		audioCapabilityList.add(SOUNDCARD);
+	}
+
 	private AudioCapability(String name, Class<? extends AudioFeature> clazz) {
 		this.name = name;
 		this.clazz = clazz;
@@ -23,7 +34,8 @@ public class AudioCapability {
 		return clazz;
 	}
 
-	public static AudioCapability[] getFeatures() {
-		return new AudioCapability[] { EQUALIZER, SOUNDCARD };
+	public static List<AudioCapability> getFeatures() {
+		return audioCapabilityList;
 	}
+
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
index 842572a4..47f72456 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandler.java
@@ -2,12 +2,15 @@ package de.tobias.playpad.audio;
 
 import java.nio.file.Path;
 
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import javafx.beans.property.ReadOnlyObjectProperty;
 import javafx.util.Duration;
 
 // Mögliche Interfaces: Equalizeable
 
+/**
+ * Describes an audio handler implantation.
+ */
 public abstract class AudioHandler {
 
 	private PadContent content;
@@ -20,27 +23,71 @@ public abstract class AudioHandler {
 		return content;
 	}
 
+	/**
+	 * Start the audio stream
+	 */
 	public abstract void play();
 
+	/**
+	 * Pause the audio stream.
+	 */
 	public abstract void pause();
 
+	/**
+	 * Stop the audio stream.
+	 */
 	public abstract void stop();
 
+	/**
+	 *	Get the current play position of the current player.
+	 * @return current position
+	 */
 	public abstract Duration getPosition();
 
+	/**
+	 * Get the current play position of the current player.
+ 	 * @return current position property
+	 */
 	public abstract ReadOnlyObjectProperty<Duration> positionProperty();
 
+	/**
+	 * Get the duration of the current player.
+	 *
+	 * @return duration
+	 */
 	public abstract Duration getDuration();
 
+	/**
+	 * Get the duration of the current player.
+	 *
+	 * @return duration property
+	 */
 	public abstract ReadOnlyObjectProperty<Duration> durationProperty();
 
+	/**
+	 * Set the current volume between 0 and 1.
+	 *
+	 * @param volume new volume
+	 */
 	public abstract void setVolume(double volume);
 
+	/**
+	 * Check if media is loaded.
+	 *
+	 * @return <code>true</code> Loaded
+	 */
 	public abstract boolean isMediaLoaded();
 
-	// TODO Auch einzelne Dateien laden
-	public abstract void loadMedia(Path[] paths);
+	/**
+	 * prepare a set of media to be played.
+	 *
+	 * @param paths path to the audio files
+	 */
+	public abstract void loadMedia(Path... paths);
 
+	/**
+	 * Unload Media to cleanup resources.
+	 */
 	public abstract void unloadMedia();
 
 }
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerFactory.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerFactory.java
index 9d013094..b1e4e8a0 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerFactory.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioHandlerFactory.java
@@ -1,15 +1,14 @@
 package de.tobias.playpad.audio;
 
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.RegistryCollection;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.registry.Component;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 
 /**
- * Audio Handler Interface zur Verwaltung einer AudioHandler Implementierung.
- * Für Aktionen beim schließen des Programmes, muss der AudioHandler
- * AutoClosable implementieren.
- * 
+ * Factory to create an instance of an audio handler implementation. The factories are collected in {@link RegistryCollection#getAudioHandlers()}
+ * If an AudioHandler have some cleanups on shutdown to do, it must implement {@link AutoCloseable}
+ *
  * @author tobias
  *
  * @since 5.0.0
@@ -30,20 +29,13 @@ public abstract class AudioHandlerFactory extends Component {
 	public abstract AudioHandler createAudioHandler(PadContent content);
 
 	/**
-	 * Gibt den Settings View Controller für die Audio Schnittstelle zurück.s
-	 * 
-	 * @return neuer ViewContoller
-	 */
-	public abstract AudioHandlerViewController getAudioHandlerSettingsViewController();
-
-	/**
-	 * Prüft ob ein Feature verfügbar ist.
+	 * Check if an audio feature is available in the implementation
 	 * 
 	 * @param audioCapability
 	 *            Feature
-	 * @return <code>true</code> Verfügbar
+	 * @return <code>true</code> available
 	 */
-	public abstract boolean isFeatureAvaiable(AudioCapability audioCapability);
+	public abstract boolean isFeatureAvailable(AudioCapability audioCapability);
 
 	/**
 	 * Gibt wenn vorhanden einen ViewController für die entsprechenden
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/AudioRegistry.java b/PlayWallCore/src/de/tobias/playpad/audio/AudioRegistry.java
index 6416be39..7078749a 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/AudioRegistry.java
+++ b/PlayWallCore/src/de/tobias/playpad/audio/AudioRegistry.java
@@ -4,6 +4,7 @@ import de.tobias.playpad.registry.DefaultComponentRegistry;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.settings.Profile;
 
+@Deprecated
 public class AudioRegistry extends DefaultComponentRegistry<AudioHandlerFactory> {
 
 	public AudioRegistry() {
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/Pad.java b/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
index 989dccaa..a7e340fc 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/Pad.java
@@ -3,8 +3,8 @@ package de.tobias.playpad.pad;
 import java.nio.file.Path;
 import java.util.UUID;
 
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Pauseable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.pad.listener.trigger.PadTriggerContentListener;
 import de.tobias.playpad.pad.listener.trigger.PadTriggerDurationListener;
 import de.tobias.playpad.pad.listener.trigger.PadTriggerStatusListener;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java b/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java
index ae1277b2..8f91ebb2 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/PadSerializer.java
@@ -2,13 +2,13 @@ package de.tobias.playpad.pad;
 
 import java.util.UUID;
 
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.ContentFactory;
 import org.dom4j.Element;
 
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.design.CartDesign;
 import de.tobias.playpad.design.DesignFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.project.Project;
 import de.tobias.playpad.registry.DefaultRegistry;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/PadStatusListener.java b/PlayWallCore/src/de/tobias/playpad/pad/PadStatusListener.java
index 4b35b1dd..f0d64105 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/PadStatusListener.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/PadStatusListener.java
@@ -1,8 +1,11 @@
 package de.tobias.playpad.pad;
 
 import de.tobias.playpad.PlayPadPlugin;
-import de.tobias.playpad.pad.conntent.play.Fadeable;
-import de.tobias.playpad.pad.conntent.play.Pauseable;
+import de.tobias.playpad.pad.Pad;
+import de.tobias.playpad.pad.PadSettings;
+import de.tobias.playpad.pad.PadStatus;
+import de.tobias.playpad.pad.fade.Fadeable;
+import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.settings.Profile;
 import de.tobias.playpad.settings.ProfileSettings;
 import javafx.beans.value.ChangeListener;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/MultiPathContent.java b/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/MultiPathContent.java
deleted file mode 100644
index e10aa8b8..00000000
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/MultiPathContent.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package de.tobias.playpad.pad.conntent.path;
-
-import java.nio.file.Path;
-import java.util.List;
-
-public interface MultiPathContent {
-
-	public List<Path> getPaths();
-	
-	public void clearPaths();
-}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/SinglePathContent.java b/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/SinglePathContent.java
deleted file mode 100644
index 6f9dd3b1..00000000
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/path/SinglePathContent.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.tobias.playpad.pad.conntent.path;
-
-import java.nio.file.Path;
-
-public interface SinglePathContent {
-
-	public Path getPath();
-}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/FadeHandler.java b/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/FadeHandler.java
deleted file mode 100644
index 82224d7e..00000000
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/FadeHandler.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package de.tobias.playpad.pad.conntent.play;
-
-/**
- * Schnittstelle für das Pad, sodass es Lautstärke erhält.
- * 
- * @author tobias
- * 
- * @since 6.0.0
- */
-public interface FadeHandler {
-
-	void setFadeLevel(double level);
-}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/ContentFactory.java b/PlayWallCore/src/de/tobias/playpad/pad/content/ContentFactory.java
similarity index 93%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/ContentFactory.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/ContentFactory.java
index c4098bdd..231df68c 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/ContentFactory.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/ContentFactory.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent;
+package de.tobias.playpad.pad.content;
 
 import java.nio.file.Path;
 
@@ -7,7 +7,6 @@ import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.registry.Component;
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController;
 import de.tobias.playpad.viewcontroller.option.ProfileSettingsTabViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 import de.tobias.utils.util.FileUtils;
 import javafx.scene.layout.Pane;
 
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContent.java b/PlayWallCore/src/de/tobias/playpad/pad/content/PadContent.java
similarity index 98%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContent.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/PadContent.java
index 31687a55..aaf592ba 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContent.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/PadContent.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent;
+package de.tobias.playpad.pad.content;
 
 import java.io.IOException;
 import java.nio.file.Files;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContentRegistry.java b/PlayWallCore/src/de/tobias/playpad/pad/content/PadContentRegistry.java
similarity index 96%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContentRegistry.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/PadContentRegistry.java
index 7f1e6e58..bf9c589b 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/PadContentRegistry.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/PadContentRegistry.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent;
+package de.tobias.playpad.pad.content;
 
 import java.nio.file.Path;
 import java.util.ArrayList;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/content/path/MultiPathContent.java b/PlayWallCore/src/de/tobias/playpad/pad/content/path/MultiPathContent.java
new file mode 100644
index 00000000..5bf42644
--- /dev/null
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/path/MultiPathContent.java
@@ -0,0 +1,24 @@
+package de.tobias.playpad.pad.content.path;
+
+import java.nio.file.Path;
+import java.util.List;
+
+/**
+ * A PadContent should implement this interface, if the content consists of multiple files. If this interface is implemented, the program can easily obtain the media paths.
+ *
+ * @author tobias
+ *
+ */
+public interface MultiPathContent {
+
+	/**
+	 * Get a list of the used media files.
+	 * @return media files
+	 */
+	List<Path> getPaths();
+
+	/**
+	 * Clears all media path from the content.
+	 */
+	void clearPaths();
+}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/content/path/SinglePathContent.java b/PlayWallCore/src/de/tobias/playpad/pad/content/path/SinglePathContent.java
new file mode 100644
index 00000000..37fae2f8
--- /dev/null
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/path/SinglePathContent.java
@@ -0,0 +1,18 @@
+package de.tobias.playpad.pad.content.path;
+
+import java.nio.file.Path;
+
+/**
+ * A PadContent should implement this interface, if the content consists of one file. If this interface is implemented, the program can easily obtain the media path.
+ *
+ * @author tobias
+ *
+ */
+public interface SinglePathContent {
+
+	/**
+	 * Get the media path of the content.
+	 * @return media path
+	 */
+	Path getPath();
+}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Durationable.java b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Durationable.java
similarity index 87%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Durationable.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/play/Durationable.java
index 65a540c1..8b08c404 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Durationable.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Durationable.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent.play;
+package de.tobias.playpad.pad.content.play;
 
 import javafx.beans.property.ReadOnlyObjectProperty;
 import javafx.util.Duration;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Equalizeable.java b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Equalizeable.java
similarity index 80%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Equalizeable.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/play/Equalizeable.java
index 354d9e7e..9f7e5976 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Equalizeable.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Equalizeable.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent.play;
+package de.tobias.playpad.pad.content.play;
 
 import de.tobias.playpad.audio.AudioFeature;
 import javafx.scene.media.AudioEqualizer;
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Pauseable.java b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Pauseable.java
similarity index 55%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Pauseable.java
rename to PlayWallCore/src/de/tobias/playpad/pad/content/play/Pauseable.java
index 62657045..f14cdbe5 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Pauseable.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/content/play/Pauseable.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent.play;
+package de.tobias.playpad.pad.content.play;
 
 public interface Pauseable {
 
diff --git a/PlayWallCore/src/de/tobias/playpad/audio/Fade.java b/PlayWallCore/src/de/tobias/playpad/pad/fade/Fade.java
similarity index 85%
rename from PlayWallCore/src/de/tobias/playpad/audio/Fade.java
rename to PlayWallCore/src/de/tobias/playpad/pad/fade/Fade.java
index 95ee8568..602d0335 100644
--- a/PlayWallCore/src/de/tobias/playpad/audio/Fade.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/fade/Fade.java
@@ -1,6 +1,5 @@
-package de.tobias.playpad.audio;
+package de.tobias.playpad.pad.fade;
 
-import de.tobias.playpad.pad.conntent.play.FadeHandler;
 import javafx.animation.Transition;
 import javafx.util.Duration;
 
@@ -12,13 +11,13 @@ import javafx.util.Duration;
  */
 public class Fade {
 
-	private FadeHandler fadeHandler;
+	private FadeDelegate fadeDelegate;
 	private Transition currentFadeTransition;
 
 	private double velocity = 1;
 
-	public Fade(FadeHandler fadeHandler) {
-		this.fadeHandler = fadeHandler;
+	public Fade(FadeDelegate fadeDelegate) {
+		this.fadeDelegate = fadeDelegate;
 	}
 
 	public void fadeIn(Duration duration) {
@@ -63,11 +62,11 @@ public class Fade {
 				double diff = Math.abs(to - from);
 				if (from < to) { // Fade In
 					double fade = fadeInVolumeMultiplier(frac, velocity);
-					fadeHandler.setFadeLevel(from + fade * diff);
+					fadeDelegate.onFadeLevelChange(from + fade * diff);
 				} else { // Fade Out
 					double fade = fadeOutVolumeMultiplier(frac, velocity);
 					double newValue = to + fade * diff;
-					fadeHandler.setFadeLevel(newValue);
+					fadeDelegate.onFadeLevelChange(newValue);
 				}
 			}
 		};
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/fade/FadeDelegate.java b/PlayWallCore/src/de/tobias/playpad/pad/fade/FadeDelegate.java
new file mode 100644
index 00000000..3c7e4985
--- /dev/null
+++ b/PlayWallCore/src/de/tobias/playpad/pad/fade/FadeDelegate.java
@@ -0,0 +1,17 @@
+package de.tobias.playpad.pad.fade;
+
+/**
+ * Delegates the fade level.
+ *
+ * @author tobias
+ * @since 6.0.0
+ */
+public interface FadeDelegate {
+
+	/**
+	 * If the fade level is changed, the delegate performs this method. The faded object should update.
+	 *
+	 * @param level New Fadinglevel (0-1)
+	 */
+	void onFadeLevelChange(double level);
+}
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Fadeable.java b/PlayWallCore/src/de/tobias/playpad/pad/fade/Fadeable.java
similarity index 70%
rename from PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Fadeable.java
rename to PlayWallCore/src/de/tobias/playpad/pad/fade/Fadeable.java
index 32a59852..94d3eb8a 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/conntent/play/Fadeable.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/fade/Fadeable.java
@@ -1,4 +1,4 @@
-package de.tobias.playpad.pad.conntent.play;
+package de.tobias.playpad.pad.fade;
 
 
 public interface Fadeable {
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerContentListener.java b/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerContentListener.java
index 5af0ab78..09d08d49 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerContentListener.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerContentListener.java
@@ -1,8 +1,8 @@
 package de.tobias.playpad.pad.listener.trigger;
 
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
 import javafx.beans.value.ChangeListener;
 import javafx.beans.value.ObservableValue;
 
diff --git a/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java b/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java
index 5307a778..2ae39a2d 100644
--- a/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java
+++ b/PlayWallCore/src/de/tobias/playpad/pad/listener/trigger/PadTriggerDurationListener.java
@@ -3,8 +3,8 @@ package de.tobias.playpad.pad.listener.trigger;
 import de.tobias.playpad.PlayPadPlugin;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.settings.Profile;
 import de.tobias.playpad.tigger.Trigger;
 import de.tobias.playpad.tigger.TriggerPoint;
diff --git a/PluginEqualizer/src/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java b/PluginEqualizer/src/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
index abcf7d80..ad318c71 100644
--- a/PluginEqualizer/src/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
+++ b/PluginEqualizer/src/de/tobias/playpad/equalizerplugin/main/impl/EqualizerPluginImpl.java
@@ -6,11 +6,11 @@ import java.util.ResourceBundle;
 import org.dom4j.DocumentException;
 
 import de.tobias.playpad.PlayPadPlugin;
-import de.tobias.playpad.pad.conntent.play.Equalizeable;
+import de.tobias.playpad.pad.content.play.Equalizeable;
 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.pad.content.PadContent;
 import de.tobias.playpad.plugin.Module;
 import de.tobias.playpad.plugin.PadListener;
 import de.tobias.playpad.plugin.WindowListener;
diff --git a/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContent.java b/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContent.java
index 3ac375ec..eb481313 100644
--- a/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContent.java
+++ b/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContent.java
@@ -10,7 +10,7 @@ import org.dom4j.Element;
 import de.tobias.playpad.mediaplugin.main.impl.MediaPluginImpl;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.project.ProjectExporter;
 import de.tobias.utils.util.ZipFile;
 import javafx.application.Platform;
diff --git a/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java b/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
index 2083881e..143c0d7f 100644
--- a/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
+++ b/PluginMedia/src/de/tobias/playpad/mediaplugin/image/ImageContentConntect.java
@@ -1,17 +1,10 @@
 package de.tobias.playpad.mediaplugin.image;
 
-import de.tobias.playpad.mediaplugin.main.impl.MediaPluginImpl;
-import de.tobias.playpad.mediaplugin.main.impl.Strings;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.ContentFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController;
-import de.tobias.utils.ui.icon.FontAwesomeType;
-import de.tobias.utils.ui.icon.FontIcon;
-import de.tobias.utils.ui.icon.FontIconType;
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
 import javafx.collections.ListChangeListener;
 import javafx.collections.SetChangeListener;
 import javafx.css.PseudoClass;
diff --git a/PluginMedia/src/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java b/PluginMedia/src/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
index dcf83562..6ce873e4 100644
--- a/PluginMedia/src/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
+++ b/PluginMedia/src/de/tobias/playpad/mediaplugin/main/impl/MediaPluginImpl.java
@@ -5,7 +5,7 @@ import java.nio.file.NoSuchFileException;
 import java.nio.file.Path;
 import java.util.ResourceBundle;
 
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.ContentFactory;
 import org.dom4j.DocumentException;
 
 import de.tobias.playpad.PlayPadPlugin;
diff --git a/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContent.java b/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContent.java
index 94d02793..d975de94 100644
--- a/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContent.java
+++ b/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContent.java
@@ -11,9 +11,9 @@ import de.tobias.playpad.mediaplugin.main.impl.MediaPluginImpl;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.play.Durationable;
-import de.tobias.playpad.pad.conntent.play.Pauseable;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.play.Durationable;
+import de.tobias.playpad.pad.content.play.Pauseable;
 import de.tobias.playpad.project.ProjectExporter;
 import de.tobias.playpad.volume.VolumeManager;
 import de.tobias.utils.util.ZipFile;
diff --git a/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java b/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
index b954ec39..aa645710 100644
--- a/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
+++ b/PluginMedia/src/de/tobias/playpad/mediaplugin/video/VideoContentConntect.java
@@ -2,18 +2,12 @@ package de.tobias.playpad.mediaplugin.video;
 
 import de.tobias.playpad.mediaplugin.main.impl.MediaPluginImpl;
 import de.tobias.playpad.mediaplugin.main.impl.MediaSettingsTabViewController;
-import de.tobias.playpad.mediaplugin.main.impl.Strings;
 import de.tobias.playpad.pad.Pad;
-import de.tobias.playpad.pad.conntent.PadContent;
-import de.tobias.playpad.pad.conntent.ContentFactory;
+import de.tobias.playpad.pad.content.PadContent;
+import de.tobias.playpad.pad.content.ContentFactory;
 import de.tobias.playpad.pad.view.IPadContentView;
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController;
 import de.tobias.playpad.viewcontroller.option.ProfileSettingsTabViewController;
-import de.tobias.utils.ui.icon.FontAwesomeType;
-import de.tobias.utils.ui.icon.FontIcon;
-import de.tobias.utils.ui.icon.FontIconType;
-import javafx.beans.property.SimpleStringProperty;
-import javafx.beans.property.StringProperty;
 import javafx.geometry.Pos;
 import javafx.scene.Node;
 import javafx.scene.control.Label;
diff --git a/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandler.java b/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandler.java
index 85e2368f..64dc4279 100644
--- a/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandler.java
+++ b/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandler.java
@@ -6,7 +6,7 @@ import de.tobias.playpad.NativeAudio;
 import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.Peakable;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.utils.util.Worker;
 import javafx.application.Platform;
 import javafx.beans.property.DoubleProperty;
diff --git a/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandlerFactory.java b/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandlerFactory.java
index 18044056..33a59742 100644
--- a/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandlerFactory.java
+++ b/PluginNativeMac/src/de/tobias/playpad/namac/NativeAudioMacHandlerFactory.java
@@ -9,9 +9,8 @@ import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.AudioHandlerFactory;
 import de.tobias.playpad.audio.Peakable.Channel;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 import javafx.util.Duration;
 
 public class NativeAudioMacHandlerFactory extends AudioHandlerFactory implements NativeAudioDelegate {
@@ -31,11 +30,6 @@ public class NativeAudioMacHandlerFactory extends AudioHandlerFactory implements
 		return nativeAudioMacHandler;
 	}
 
-	@Override
-	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
-		return null;
-	}
-
 	@Override
 	public void onFinish(int id) {
 		NativeAudioMacHandler nativeAudioMacHandler = handlers.get(id);
@@ -65,7 +59,7 @@ public class NativeAudioMacHandlerFactory extends AudioHandlerFactory implements
 	}
 
 	@Override
-	public boolean isFeatureAvaiable(AudioCapability audioCapability) {
+	public boolean isFeatureAvailable(AudioCapability audioCapability) {
 		return false;
 	}
 
diff --git a/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java b/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
index 5d7853e0..dafed497 100644
--- a/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
+++ b/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandler.java
@@ -10,7 +10,7 @@ import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.Soundcardable;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.settings.Profile;
 import javafx.application.Platform;
 import javafx.beans.property.ObjectProperty;
diff --git a/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerFactory.java b/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerFactory.java
index 9134d198..096fb28c 100644
--- a/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerFactory.java
+++ b/PluginNativeWin/src/de/tobias/playpad/nawin/audio/NativeAudioWinHandlerFactory.java
@@ -3,9 +3,8 @@ package de.tobias.playpad.nawin.audio;
 import de.tobias.playpad.audio.AudioCapability;
 import de.tobias.playpad.audio.AudioHandler;
 import de.tobias.playpad.audio.AudioHandlerFactory;
-import de.tobias.playpad.pad.conntent.PadContent;
+import de.tobias.playpad.pad.content.PadContent;
 import de.tobias.playpad.viewcontroller.AudioHandlerViewController;
-import de.tobias.utils.ui.icon.FontIconType;
 
 public class NativeAudioWinHandlerFactory extends AudioHandlerFactory {
 
@@ -17,14 +16,9 @@ public class NativeAudioWinHandlerFactory extends AudioHandlerFactory {
 	public AudioHandler createAudioHandler(PadContent content) {
 		return new NativeAudioWinHandler(content);
 	}
-
-	@Override
-	public AudioHandlerViewController getAudioHandlerSettingsViewController() {
-		return null;
-	}
 	
 	@Override
-	public boolean isFeatureAvaiable(AudioCapability audioCapability) {
+	public boolean isFeatureAvailable(AudioCapability audioCapability) {
 		for (Class<?> clazz : NativeAudioWinHandler.class.getInterfaces()) {
 			if (clazz.equals(audioCapability.getAudioFeature()))
 				return true;
-- 
GitLab