diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java
index d9afc560e3a9ab165f30a38de49ea5b609ea0a29..4ec90be5429a0322970e010ca01c1e1d7a78b2dc 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionOutlinePage.java
@@ -100,7 +100,7 @@ public class BMotionOutlinePage extends ContentOutlinePage {
 	}
 
 	private void initializeOutlineViewer() {
-		// getViewer().setContents(viewPart.getVisualization());
+		getViewer().setContents(viewPart.getVisualization());
 	}
 
 	/**
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java
index 621759f759dcdea4a0c02fc88a37a1896de83896..5f3e0016853a41aae2df0d4941d0ca7102de5aea 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioLauncher.java
@@ -12,6 +12,7 @@ import org.eclipse.ui.IEditorLauncher;
 import org.eclipse.ui.IViewReference;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.PlatformUI;
 
 import com.thoughtworks.xstream.XStream;
@@ -43,6 +44,7 @@ public class BMotionStudioLauncher implements IEditorLauncher {
 		if (simulation != null) {
 			
 			PerspectiveUtil.openPerspective(simulation);
+			initViews(simulation);
 //
 //			IPerspectiveDescriptor perspective = PlatformUI.getWorkbench()
 //					.getPerspectiveRegistry()
@@ -93,10 +95,6 @@ public class BMotionStudioLauncher implements IEditorLauncher {
 			BMotionEditorPlugin.setAliases(xstream);
 			Object obj = xstream.fromXML(inputStream);
 
-			IWorkbenchPage activePage = PlatformUI.getWorkbench()
-					.getActiveWorkbenchWindow().getActivePage();
-			IWorkbenchPartSite site = activePage.getActivePart().getSite();
-
 			if (obj instanceof Visualization) {
 
 				simulation = new Simulation();
@@ -120,53 +118,8 @@ public class BMotionStudioLauncher implements IEditorLauncher {
 
 				simulation.setProjectFile(file);
 
-				System.out.println("Open Perspecitve");
 				PerspectiveUtil.openPerspective(simulation);
-
-				for (Map.Entry<String, VisualizationView> entry : simulation
-						.getVisualizationViews().entrySet()) {
-
-					String secId = entry.getKey();
-					VisualizationView visView = entry.getValue();
-					Visualization vis = visView.getVisualization();
-					vis.setProjectFile(file);
-					// String partName = visView.getPartName();
-					IViewReference viewReference = site.getPage()
-							.findViewReference(VisualizationViewPart.ID, secId);
-					VisualizationViewPart visualizationViewPart;
-					// Check if view already exists
-					if (viewReference != null) {
-						visualizationViewPart = (VisualizationViewPart) viewReference
-								.getPart(true);
-						System.out.println("    ===> Visualization found: "
-								+ visualizationViewPart);
-					} else {
-						// If not, create a new one
-						visualizationViewPart = PerspectiveUtil
-								.createVisualizationViewPart(secId, visView);
-						System.out.println("    ===> Visualization created: "
-								+ visualizationViewPart);
-					}
-
-					if (visualizationViewPart != null
-							&& !visualizationViewPart.isInitialized()) {
-						System.out
-								.println("       ===> Visualization initialized");
-						visualizationViewPart.init(simulation, visView);
-					}
-
-				}
-
-				// Close all unused visualization views
-				for (IViewReference viewReference : site.getPage()
-						.getViewReferences()) {
-					if (viewReference.getId().equals(VisualizationViewPart.ID)) {
-						if (!simulation.getVisualizationViews().containsKey(
-								viewReference.getSecondaryId()))
-							site.getPage().hideView(viewReference);
-					}
-				}
-
+				initViews(simulation);
 				BMotionEditorPlugin.openSimulation(simulation);
 
 			}
@@ -178,11 +131,65 @@ public class BMotionStudioLauncher implements IEditorLauncher {
 				if (inputStream != null)
 					inputStream.close();
 			} catch (IOException e) {
-				// TODO Auto-generated catch block
 				e.printStackTrace();
 			}
 		}
 
 	}
 
+	private void initViews(Simulation simulation) {
+
+		IWorkbenchPage activePage = PlatformUI.getWorkbench()
+				.getActiveWorkbenchWindow().getActivePage();
+		IWorkbenchPartSite site = activePage.getActivePart().getSite();
+
+		for (Map.Entry<String, VisualizationView> entry : simulation
+				.getVisualizationViews().entrySet()) {
+
+			String secId = entry.getKey();
+			VisualizationView visView = entry.getValue();
+			Visualization vis = visView.getVisualization();
+			vis.setProjectFile(file);
+			// String partName = visView.getPartName();
+			IViewReference viewReference = site.getPage().findViewReference(
+					VisualizationViewPart.ID, secId);
+			VisualizationViewPart visualizationViewPart = null;
+			// Check if view already exists
+			if (viewReference != null) {
+				visualizationViewPart = (VisualizationViewPart) viewReference
+						.getPart(true);
+				System.out.println("    ===> Visualization found: "
+						+ visualizationViewPart);
+			} else {
+				// If not, create a new one
+				try {
+					visualizationViewPart = PerspectiveUtil
+							.createVisualizationViewPart(secId, visView);
+				} catch (PartInitException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+				System.out.println("    ===> Visualization created: "
+						+ visualizationViewPart);
+			}
+
+			if (visualizationViewPart != null
+					&& !visualizationViewPart.isInitialized()) {
+				System.out.println("       ===> Visualization initialized");
+				visualizationViewPart.init(simulation, visView);
+			}
+
+		}
+
+		// Close all unused visualization views
+		for (IViewReference viewReference : site.getPage().getViewReferences()) {
+			if (viewReference.getId().equals(VisualizationViewPart.ID)) {
+				if (!simulation.getVisualizationViews().containsKey(
+						viewReference.getSecondaryId()))
+					site.getPage().hideView(viewReference);
+			}
+		}
+
+	}
+
 }
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java
index d79371a09e65e9b813339f7db51d516880b7b756..20d728051248e70211f312e24a07ec6b25055818 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/VisualizationViewPart.java
@@ -74,6 +74,8 @@ public class VisualizationViewPart extends ViewPart implements
 
 	private VisualizationView visualizationView;
 
+	private Visualization visualization;
+
 	private ActionRegistry actionRegistry;
 
 	private BMotionStudioEditor editor;
@@ -322,6 +324,7 @@ public class VisualizationViewPart extends ViewPart implements
 			getCommandStack().removeCommandStackListener(this);
 		if (getActionRegistry() != null)
 			getActionRegistry().dispose();
+		setInitialized(false);
 	}
 
 	@Override
@@ -374,6 +377,8 @@ public class VisualizationViewPart extends ViewPart implements
 
 	public void init(Simulation simulation, VisualizationView visualizationView) {
 		this.simulation = simulation;
+		this.visualizationView = visualizationView;
+		this.visualization = visualizationView.getVisualization();
 		this.graphicalViewer = new ScrollingGraphicalViewer();
 		this.graphicalViewer.createControl(this.container);
 		Visualization visualization = visualizationView.getVisualization();
@@ -539,4 +544,8 @@ public class VisualizationViewPart extends ViewPart implements
 		this.isInitialized = isInitialized;
 	}
 
+	public Visualization getVisualization() {
+		return this.visualization;
+	}
+
 }