diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/listener/PadNewContentListener.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/listener/PadNewContentListener.java
new file mode 100644
index 0000000000000000000000000000000000000000..a2470391be71a7117f460051e78c274d269877e8
--- /dev/null
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/listener/PadNewContentListener.java
@@ -0,0 +1,86 @@
+package de.tobias.playpad.layout.desktop.listener;
+
+import de.thecodelabs.utils.application.ApplicationUtils;
+import de.thecodelabs.utils.util.Localization;
+import de.tobias.playpad.PlayPadPlugin;
+import de.tobias.playpad.Strings;
+import de.tobias.playpad.layout.desktop.pad.DesktopPadViewController;
+import de.tobias.playpad.pad.Pad;
+import de.tobias.playpad.pad.content.PadContentFactory;
+import de.tobias.playpad.pad.content.PadContentRegistry;
+import de.tobias.playpad.registry.NoSuchComponentException;
+import de.tobias.playpad.settings.GlobalSettings;
+import javafx.event.ActionEvent;
+import javafx.scene.Node;
+import javafx.stage.FileChooser;
+
+import java.io.File;
+import java.nio.file.Path;
+import java.util.Set;
+
+public class PadNewContentListener {
+
+	private final Pad pad;
+
+	public PadNewContentListener(Pad pad) {
+		this.pad = pad;
+	}
+
+	public void onNew(ActionEvent event, PadContentFactory.PadContentTypeChooser padContentTypeChooser) throws NoSuchComponentException {
+		GlobalSettings settings = PlayPadPlugin.getInstance().getGlobalSettings();
+		if (pad.getProject() != null && settings.isLiveMode() && settings.isLiveModeFile() && pad.getProject().getActivePlayers() > 0) {
+			return;
+		}
+
+		final FileChooser chooser = new FileChooser();
+		PadContentRegistry registry = PlayPadPlugin.getRegistries().getPadContents();
+
+		// File Extension
+		final FileChooser.ExtensionFilter extensionFilter = new FileChooser.ExtensionFilter(Localization.getString(Strings.FILE_FILTER_MEDIA), registry.getSupportedFileTypes());
+		chooser.getExtensionFilters().add(extensionFilter);
+
+		// Last Folder
+		final Object openFolder = ApplicationUtils.getApplication().getUserDefaults().getData(DesktopPadViewController.OPEN_FOLDER);
+		if (openFolder != null) {
+			File folder = new File(openFolder.toString());
+			if (folder.exists()) {
+				chooser.setInitialDirectory(folder);
+			}
+		}
+
+		final File file = chooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());
+		if (file != null) {
+			Path path = file.toPath();
+
+			final Set<PadContentFactory> connects = registry.getPadContentConnectsForFile(file.toPath());
+			if (!connects.isEmpty()) {
+				if (connects.size() > 1) { // Multiple content types possible
+					padContentTypeChooser.showOptions(connects, padContent ->
+					{
+						if (padContent != null) {
+							setNewPadContent(path, padContent);
+						}
+					});
+				} else {
+					PadContentFactory padContent = connects.iterator().next();
+					setNewPadContent(path, padContent);
+				}
+			}
+
+			ApplicationUtils.getApplication().getUserDefaults().setData(DesktopPadViewController.OPEN_FOLDER, path.getParent().toString());
+		}
+	}
+
+	private void setNewPadContent(Path path, PadContentFactory connect) {
+		if (pad.getContent() == null || !pad.getContent().getType().equals(connect.getType())) {
+			this.pad.setContentType(connect.getType());
+		}
+
+		if (pad.isPadVisible()) {
+			pad.getController().getView().showBusyView(true);
+		}
+
+		pad.setPath(path);
+	}
+
+}
diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
index 86347f6aa5f964cc26359dbbe7d49bbfdc102ad5..637686246100491b6b093d6fd525637741fcd489 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadDragListener.java
@@ -95,7 +95,7 @@ public class DesktopPadDragListener implements EventHandler<DragEvent> {
 					if (fileHud == null) {
 						fileHud = new FileDragOptionView(padView);
 					}
-					fileHud.showDropOptions(connects);
+					fileHud.showOptions(connects);
 
 					event.acceptTransferModes(TransferMode.LINK);
 					return;
diff --git a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
index 21700d33e55e8d33b0dd52bc5e10075c6f48b331..2c1973d80cd16a167511c4e3f0f371e6fa16e899 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/layout/desktop/pad/DesktopPadViewController.java
@@ -1,18 +1,14 @@
 package de.tobias.playpad.layout.desktop.pad;
 
 import de.thecodelabs.logger.Logger;
-import de.thecodelabs.utils.application.ApplicationUtils;
 import de.thecodelabs.utils.ui.NVCStage;
-import de.thecodelabs.utils.util.Localization;
 import de.tobias.playpad.PlayPadPlugin;
-import de.tobias.playpad.Strings;
 import de.tobias.playpad.layout.desktop.DesktopEditMode;
 import de.tobias.playpad.layout.desktop.DesktopMainLayoutFactory;
+import de.tobias.playpad.layout.desktop.listener.PadNewContentListener;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.TimeMode;
-import de.tobias.playpad.pad.content.PadContentFactory;
-import de.tobias.playpad.pad.content.PadContentRegistry;
 import de.tobias.playpad.pad.content.play.Durationable;
 import de.tobias.playpad.pad.listener.*;
 import de.tobias.playpad.pad.view.IPadView;
@@ -27,16 +23,9 @@ import de.tobias.playpad.viewcontroller.option.pad.PadSettingsViewController;
 import javafx.beans.value.ChangeListener;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
-import javafx.scene.Node;
-import javafx.stage.FileChooser;
-import javafx.stage.FileChooser.ExtensionFilter;
 import javafx.stage.Stage;
 import javafx.util.Duration;
 
-import java.io.File;
-import java.nio.file.Path;
-import java.util.Set;
-
 public class DesktopPadViewController implements IPadViewController, EventHandler<ActionEvent> {
 
 	public static final String OPEN_FOLDER = "openFolder";
@@ -196,66 +185,9 @@ public class DesktopPadViewController implements IPadViewController, EventHandle
 		}
 	}
 
-	private void onNew(ActionEvent event) throws NoSuchComponentException {
-		GlobalSettings settings = PlayPadPlugin.getInstance().getGlobalSettings();
-		if (pad.getProject() != null) {
-			if (settings.isLiveMode() && settings.isLiveModeFile() && pad.getProject().getActivePlayers() > 0) {
-				return;
-			}
-		}
-
-		FileChooser chooser = new FileChooser();
-		PadContentRegistry registry = PlayPadPlugin.getRegistries().getPadContents();
-
-		// File Extension
-		ExtensionFilter extensionFilter = new ExtensionFilter(Localization.getString(Strings.FILE_FILTER_MEDIA),
-				registry.getSupportedFileTypes());
-		chooser.getExtensionFilters().add(extensionFilter);
-
-		// Last Folder
-		Object openFolder = ApplicationUtils.getApplication().getUserDefaults().getData(OPEN_FOLDER);
-		if (openFolder != null) {
-			File folder = new File(openFolder.toString());
-			if (folder.exists()) {
-				chooser.setInitialDirectory(folder);
-			}
-		}
-
-		File file = chooser.showOpenDialog(((Node) event.getTarget()).getScene().getWindow());
-		if (file != null) {
-			Path path = file.toPath();
-
-			Set<PadContentFactory> connects = registry.getPadContentConnectsForFile(file.toPath());
-			if (!connects.isEmpty()) {
-				if (connects.size() > 1) { // Multiple content types possible
-					FileDragOptionView hud = new FileDragOptionView(padView.getRootNode());
-					hud.showDropOptions(connects, connect ->
-					{
-						if (connect != null) {
-							setNewPadContent(path, connect);
-							hud.hide();
-						}
-					});
-				} else {
-					PadContentFactory connect = connects.iterator().next();
-					setNewPadContent(path, connect);
-				}
-			}
-
-			ApplicationUtils.getApplication().getUserDefaults().setData(OPEN_FOLDER, path.getParent().toString());
-		}
-	}
-
-	private void setNewPadContent(Path path, PadContentFactory connect) {
-		if (pad.getContent() == null || !pad.getContent().getType().equals(connect.getType())) {
-			this.pad.setContentType(connect.getType());
-		}
-
-		if (pad.isPadVisible()) {
-			pad.getController().getView().showBusyView(true);
-		}
-
-		pad.setPath(path);
+	public void onNew(ActionEvent event) throws NoSuchComponentException {
+		final PadNewContentListener listener = new PadNewContentListener(pad);
+		listener.onNew(event, new FileDragOptionView(padView.getRootNode()));
 	}
 
 	private void onSettings() {
diff --git a/PlayWall/src/main/java/de/tobias/playpad/view/FileDragOptionView.java b/PlayWall/src/main/java/de/tobias/playpad/view/FileDragOptionView.java
index e04e34fbe511be49ef008abbdd6963f1219026db..1510b4cfe33d5043e00289a547ccae68be45cac2 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/view/FileDragOptionView.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/view/FileDragOptionView.java
@@ -17,13 +17,13 @@ import javafx.scene.text.TextAlignment;
 import java.util.Set;
 import java.util.function.Consumer;
 
-public class FileDragOptionView {
+public class FileDragOptionView implements PadContentFactory.PadContentTypeChooser {
 
-	private HBox optionPane;
-	private Pane parent;
+	private final HBox optionPane;
+	private final Pane parent;
 
-	private Transition inTransition;
-	private Transition outTransition;
+	private final Transition inTransition;
+	private final Transition outTransition;
 
 	public FileDragOptionView(Pane pane) {
 		parent = pane;
@@ -78,7 +78,7 @@ public class FileDragOptionView {
 
 	private PadContentFactory selectedConnect;
 
-	public void showDropOptions(Set<PadContentFactory> options) {
+	public void showOptions(Set<PadContentFactory> options) {
 		if (!parent.getChildren().contains(optionPane)) {
 			selectedConnect = null;
 
@@ -125,14 +125,16 @@ public class FileDragOptionView {
 
 	}
 
-	public void showDropOptions(Set<PadContentFactory> options, Consumer<PadContentFactory> onFinish) {
-		showDropOptions(options);
+	public void showOptions(Set<PadContentFactory> options, Consumer<PadContentFactory> onFinish) {
+		showOptions(options);
 
 		for (Node node : optionPane.getChildren()) {
 			if (node instanceof Label) {
 				Label label = (Label) node;
-				label.setOnMouseClicked(ev ->
-						onFinish.accept((PadContentFactory) label.getUserData()));
+				label.setOnMouseClicked(ev -> {
+					onFinish.accept((PadContentFactory) label.getUserData());
+					hide();
+				});
 				label.setOnMouseEntered(e ->
 						label.pseudoClassStateChanged(PseudoClasses.HOVER_CLASS, true));
 				label.setOnMouseExited(e ->
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/GeneralPadTabViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/GeneralPadTabViewController.java
index cd36d822fa42ae26dac33467de7f3b1434e23e7a..a840e2a61794571929f1526de89b3b276c4a146f 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/GeneralPadTabViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/GeneralPadTabViewController.java
@@ -1,11 +1,14 @@
 package de.tobias.playpad.viewcontroller.option.pad;
 
+import de.thecodelabs.utils.application.system.NativeApplication;
 import de.thecodelabs.utils.util.Localization;
 import de.tobias.playpad.Strings;
+import de.tobias.playpad.layout.desktop.listener.PadNewContentListener;
 import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadSettings;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.TimeMode;
+import de.tobias.playpad.pad.content.PadContentFactory;
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController;
 import de.tobias.playpad.viewcontroller.cell.EnumCell;
 import javafx.beans.value.ChangeListener;
@@ -14,8 +17,13 @@ import javafx.fxml.FXML;
 import javafx.scene.control.*;
 import javafx.stage.Stage;
 
+import java.util.Optional;
+
 public class GeneralPadTabViewController extends PadSettingsTabViewController {
 
+	@FXML
+	private Label pathLabel;
+
 	@FXML
 	private TextField titleTextField;
 	@FXML
@@ -31,12 +39,14 @@ public class GeneralPadTabViewController extends PadSettingsTabViewController {
 	@FXML
 	private Button deleteButton;
 
-	private Pad pad;
+	private final Pad pad;
 
 	GeneralPadTabViewController(Pad pad) {
 		load("view/option/pad", "GeneralTab", Localization.getBundle());
 		this.pad = pad;
 
+		pathLabel.setText(pad.getPath().toString());
+
 		if (pad.getStatus() == PadStatus.PLAY || pad.getStatus() == PadStatus.PAUSE) {
 			deleteButton.setDisable(true);
 		}
@@ -44,7 +54,6 @@ public class GeneralPadTabViewController extends PadSettingsTabViewController {
 
 	@Override
 	public void init() {
-		// Init Listener
 		ChangeListener<Number> volumeListener = (a, b, c) -> pad.getPadSettings().setVolume(c.doubleValue() / 100.0);
 		volumeSlider.valueProperty().addListener(volumeListener);
 
@@ -71,16 +80,14 @@ public class GeneralPadTabViewController extends PadSettingsTabViewController {
 
 	@Override
 	public void loadSettings(Pad pad) {
-		PadSettings padSettings = pad.getPadSettings();
+		final PadSettings padSettings = pad.getPadSettings();
 
-		// Bindings
 		titleTextField.textProperty().bindBidirectional(pad.nameProperty());
 		repeatCheckBox.selectedProperty().bindBidirectional(padSettings.loopProperty());
 		timeDisplayComboBox.valueProperty().bindBidirectional(padSettings.timeModeProperty());
 
 		volumeSlider.setValue(padSettings.getVolume() * 100);
 
-		// is Custom TimeMode Actvie
 		customTimeDisplayCheckBox.setSelected(padSettings.isCustomTimeMode());
 		if (!padSettings.isCustomTimeMode()) {
 			timeDisplayComboBox.setDisable(true);
@@ -96,7 +103,21 @@ public class GeneralPadTabViewController extends PadSettingsTabViewController {
 		timeDisplayComboBox.valueProperty().unbindBidirectional(padSettings.timeModeProperty());
 	}
 
-	// Listener
+	@FXML
+	private void showPathButtonHandler() {
+		NativeApplication.sharedInstance().showFileInFileViewer(pad.getPath());
+	}
+
+	@FXML
+	private void chooseButtonHandler(ActionEvent event) {
+		final PadNewContentListener listener = new PadNewContentListener(pad);
+		listener.onNew(event, (options, onSelected) -> {
+			ChoiceDialog<PadContentFactory> dialog = new ChoiceDialog<>(null, options);
+			final Optional<PadContentFactory> padContentFactory = dialog.showAndWait();
+			padContentFactory.ifPresent(onSelected);
+		});
+	}
+
 	@FXML
 	private void deleteButtonHandler(ActionEvent event) {
 		pad.clear();
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
index 666f040a8f8db89c0b0b34f02815909831afb94e..9cb33f084def3bdefe0a5610a70e8fc4bf146350 100644
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
+++ b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PadSettingsViewController.java
@@ -10,16 +10,14 @@ import de.tobias.playpad.pad.Pad;
 import de.tobias.playpad.pad.PadStatus;
 import de.tobias.playpad.pad.content.PadContentFactory;
 import de.tobias.playpad.pad.content.PadContentRegistry;
-import de.tobias.playpad.pad.mediapath.MediaPath;
 import de.tobias.playpad.registry.NoSuchComponentException;
 import de.tobias.playpad.viewcontroller.IPadSettingsViewController;
 import de.tobias.playpad.viewcontroller.PadSettingsTabViewController;
-import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.fxml.FXML;
-import javafx.scene.Parent;
-import javafx.scene.control.*;
-import javafx.scene.layout.AnchorPane;
+import javafx.scene.control.Button;
+import javafx.scene.control.Tab;
+import javafx.scene.control.TabPane;
 import javafx.stage.Stage;
 import javafx.stage.Window;
 
@@ -34,8 +32,6 @@ public class PadSettingsViewController extends NVC implements IPadSettingsViewCo
 	private TabPane tabPane;
 	private final List<PadSettingsTabViewController> tabs = new ArrayList<>();
 
-	private Control pathLookupButton;
-
 	@FXML
 	private Button finishButton;
 
@@ -64,8 +60,6 @@ public class PadSettingsViewController extends NVC implements IPadSettingsViewCo
 			}
 		}
 
-		setupPathLookupButton();
-
 		NVCStage nvcStage = applyViewControllerToStage();
 		nvcStage.initOwner(owner);
 		nvcStage.addCloseHook(this::onFinish);
@@ -76,44 +70,6 @@ public class PadSettingsViewController extends NVC implements IPadSettingsViewCo
 		setTitle(pad);
 	}
 
-	private void setupPathLookupButton() {
-		final PathLookupListener pathLookupListener = new PathLookupListener();
-
-		if (pad.getContent() != null) {
-			final ObservableList<MediaPath> paths = pad.getPaths();
-			if (paths.size() == 1) {
-				Button button = new Button(Localization.getString("padSettings.button.path"));
-
-				MediaPath path = paths.get(0);
-				button.setUserData(path);
-				button.setOnAction(pathLookupListener);
-
-				pathLookupButton = button;
-			} else if (paths.size() > 1) {
-				MenuButton button = new MenuButton(Localization.getString("padSettings.button.path"));
-
-				for (MediaPath path : paths) {
-					MenuItem item = new MenuItem(path.getFileName());
-					button.getItems().add(item);
-
-					item.setUserData(path);
-					item.setOnAction(pathLookupListener);
-				}
-
-				pathLookupButton = button;
-			}
-
-			Parent parent = getParent();
-			if (parent instanceof AnchorPane && pathLookupButton != null) {
-				AnchorPane anchorPane = (AnchorPane) parent;
-				anchorPane.getChildren().add(pathLookupButton);
-
-				AnchorPane.setLeftAnchor(pathLookupButton, 14.0);
-				AnchorPane.setBottomAnchor(pathLookupButton, 14.0);
-			}
-		}
-	}
-
 	private void setTitle(Pad pad) {
 		String title;
 		if (pad.getStatus() != PadStatus.EMPTY) {
diff --git a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java b/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java
deleted file mode 100644
index a91ae9ee9808209aad70447610fd5c687048462a..0000000000000000000000000000000000000000
--- a/PlayWall/src/main/java/de/tobias/playpad/viewcontroller/option/pad/PathLookupListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package de.tobias.playpad.viewcontroller.option.pad;
-
-import de.thecodelabs.utils.application.system.NativeApplication;
-import de.tobias.playpad.pad.mediapath.MediaPath;
-import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
-import javafx.scene.Node;
-import javafx.scene.control.Button;
-
-public class PathLookupListener implements EventHandler<ActionEvent> {
-
-	@Override
-	public void handle(ActionEvent event) {
-		Object source = event.getSource();
-		if (source instanceof Node) {
-			Object userData = ((Button) source).getUserData();
-			if (userData instanceof MediaPath) {
-				showPath((MediaPath) userData);
-			}
-		}
-	}
-
-	private void showPath(MediaPath path) {
-		NativeApplication.sharedInstance().showFileInFileViewer(path.getPath());
-	}
-}
\ No newline at end of file
diff --git a/PlayWall/src/main/resources/lang/ui_de.properties b/PlayWall/src/main/resources/lang/ui_de.properties
index 4879253468109289fd391d849ab6a4bbcb48cf4e..ede9af49fa40168014889cdc76ae5bd467f64c42 100755
--- a/PlayWall/src/main/resources/lang/ui_de.properties
+++ b/PlayWall/src/main/resources/lang/ui_de.properties
@@ -116,7 +116,9 @@ midi.button.new=\u00C4ndern
 keyboard.label.key=Taste (Tastatur):
 keyboard.button.new=\u00C4ndern
 padSettings.button.delete=L\u00F6schen
-padSettings.button.path=Pfad zeigen
+padSettings.button.path.show=Pfad zeigen
+padSettings.button.path.choose=Pfad w\u00E4hlen
+padSettings.gen.label.media=Medien:
 padSettings.gen.label.title=Titel:
 padSettings.gen.label.volume=Lautst\u00E4rke:
 padSettings.gen.label.timeDisplay=Zeitanzeige:
diff --git a/PlayWall/src/main/resources/view/option/pad/GeneralTab.fxml b/PlayWall/src/main/resources/view/option/pad/GeneralTab.fxml
index bbbfc204f67a81ad39794136484871888554f9a3..2e1c993fa424f409a09b658bbd6f66276a9cf9a1 100644
--- a/PlayWall/src/main/resources/view/option/pad/GeneralTab.fxml
+++ b/PlayWall/src/main/resources/view/option/pad/GeneralTab.fxml
@@ -3,48 +3,56 @@
 <?import javafx.geometry.Insets?>
 <?import javafx.scene.control.*?>
 <?import javafx.scene.layout.*?>
-<VBox spacing="14.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
+<VBox spacing="14.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1">
     <children>
-        <VBox layoutX="14.0" layoutY="14.0" spacing="14.0" AnchorPane.leftAnchor="14.0" AnchorPane.rightAnchor="14.0"
-              AnchorPane.topAnchor="14.0">
+        <HBox alignment="CENTER_LEFT" spacing="14.0">
             <children>
-                <HBox alignment="CENTER_LEFT" layoutX="14.0" layoutY="14.0" spacing="14.0">
-                    <children>
-                        <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="19.0" prefWidth="150.0"
-                               text="%padSettings.gen.label.title" AnchorPane.leftAnchor="14.0"/>
-                        <TextField fx:id="titleTextField" layoutX="125.0" layoutY="14.0" prefWidth="250.0"
-                                   AnchorPane.leftAnchor="127.0"/>
-                        <VBox HBox.hgrow="ALWAYS"/>
-                        <Button fx:id="deleteButton" mnemonicParsing="false" onAction="#deleteButtonHandler"
-                                text="%padSettings.button.delete"/>
-                    </children>
-                </HBox>
-                <HBox alignment="CENTER_LEFT" layoutX="14.0" layoutY="48.0" spacing="14.0">
-                    <children>
-                        <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="50.0" prefWidth="150.0"
-                               text="%padSettings.gen.label.volume" AnchorPane.leftAnchor="14.0"/>
-                        <Slider fx:id="volumeSlider" layoutX="122.0" layoutY="54.0" prefWidth="250.0"
-                                showTickLabels="true" showTickMarks="true" snapToTicks="true" value="100.0"
-                                AnchorPane.leftAnchor="127.0"/>
-                        <VBox HBox.hgrow="ALWAYS"/>
-                        <CheckBox fx:id="repeatCheckBox" mnemonicParsing="false" text="%padSettings.checkbox.loop"/>
-                    </children>
-                </HBox>
-                <HBox alignment="CENTER_LEFT" layoutX="14.0" layoutY="84.0" spacing="14.0">
-                    <children>
-                        <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="89.0" prefWidth="150.0"
-                               text="%padSettings.gen.label.timeDisplay" AnchorPane.leftAnchor="14.0"/>
-                        <ComboBox fx:id="timeDisplayComboBox" layoutX="127.0" layoutY="84.0" prefWidth="250.0"
-                                  AnchorPane.leftAnchor="127.0"/>
-                        <VBox HBox.hgrow="ALWAYS"/>
-                        <CheckBox fx:id="customTimeDisplayCheckBox" layoutX="406.0" layoutY="88.0"
-                                  mnemonicParsing="false" text="%padSettings.gen.checkbox.customSettings"/>
-                    </children>
-                </HBox>
+                <Label alignment="CENTER_RIGHT" prefWidth="150.0" text="%padSettings.gen.label.media" />
+                <Label fx:id="pathLabel" text="Label" textOverrun="CENTER_ELLIPSIS" />
+                <VBox HBox.hgrow="ALWAYS" />
+                <Button mnemonicParsing="false" text="%padSettings.button.path.show" onAction="#showPathButtonHandler"/>
             </children>
-        </VBox>
+        </HBox>
+        <HBox spacing="14.0">
+            <children>
+                <Button mnemonicParsing="false" onAction="#chooseButtonHandler" text="%padSettings.button.path.choose" />
+                <Button fx:id="deleteButton" mnemonicParsing="false" onAction="#deleteButtonHandler" text="%padSettings.button.delete" />
+            </children>
+            <padding>
+                <Insets left="164.0" />
+            </padding>
+        </HBox>
+        <Separator prefWidth="200.0" />
+        <HBox alignment="CENTER_LEFT" spacing="14.0">
+            <children>
+                <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="19.0" prefWidth="150.0" text="%padSettings.gen.label.title" AnchorPane.leftAnchor="14.0" />
+                <TextField fx:id="titleTextField" layoutX="125.0" layoutY="14.0" prefWidth="250.0" AnchorPane.leftAnchor="127.0" />
+            </children>
+        </HBox>
+        <HBox alignment="CENTER_LEFT" spacing="14.0">
+            <children>
+                <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="50.0" prefWidth="150.0" text="%padSettings.gen.label.volume" AnchorPane.leftAnchor="14.0" />
+                <Slider fx:id="volumeSlider" layoutX="122.0" layoutY="54.0" prefWidth="250.0" showTickLabels="true" showTickMarks="true" snapToTicks="true" value="100.0" AnchorPane.leftAnchor="127.0" />
+                <VBox HBox.hgrow="ALWAYS" />
+                <CheckBox fx:id="repeatCheckBox" mnemonicParsing="false" text="%padSettings.checkbox.loop" />
+            </children>
+        </HBox>
+        <HBox alignment="CENTER_LEFT" spacing="14.0">
+            <children>
+                <Label alignment="CENTER_RIGHT" layoutX="14.0" layoutY="89.0" prefWidth="150.0" text="%padSettings.gen.label.timeDisplay" AnchorPane.leftAnchor="14.0" />
+                <CheckBox fx:id="customTimeDisplayCheckBox" layoutX="406.0" layoutY="88.0" mnemonicParsing="false" text="%padSettings.gen.checkbox.customSettings" />
+            </children>
+        </HBox>
+      <HBox>
+         <children>
+                <ComboBox fx:id="timeDisplayComboBox" prefWidth="250.0" />
+         </children>
+         <padding>
+            <Insets left="164.0" />
+         </padding>
+      </HBox>
     </children>
     <padding>
-        <Insets bottom="14.0" left="14.0" right="14.0" top="14.0"/>
+        <Insets bottom="14.0" left="14.0" right="14.0" top="14.0" />
     </padding>
 </VBox>
diff --git a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContentFactory.java b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContentFactory.java
index 5b34c1653f0bd0836507fc4a7af1a4082c48dbd2..d061b3802ff3cdb11ffb679c573213a99c9e4040 100644
--- a/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContentFactory.java
+++ b/PlayWallCore/src/main/java/de/tobias/playpad/pad/content/PadContentFactory.java
@@ -9,10 +9,16 @@ import de.tobias.playpad.viewcontroller.option.ProfileSettingsTabViewController;
 import javafx.scene.layout.Pane;
 
 import java.nio.file.Path;
+import java.util.Set;
+import java.util.function.Consumer;
 
 // COMMENT PadContentFactory
 public abstract class PadContentFactory extends Component implements Comparable<PadContentFactory> {
 
+	public interface PadContentTypeChooser {
+		void showOptions(Set<PadContentFactory> options, Consumer<PadContentFactory> onSelected);
+	}
+
 	public PadContentFactory(String type) {
 		super(type);
 	}