diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AppContextMenuProvider.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AppContextMenuProvider.java
index 51bacfe4303368b5ac1e371d00b0ad33f8aa2f4b..53acf882d5eb7a083e307743dc276b75592f49bf 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AppContextMenuProvider.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/AppContextMenuProvider.java
@@ -24,7 +24,7 @@ import org.eclipse.ui.actions.ActionFactory;
 
 import de.bmotionstudio.gef.editor.action.OpenSchedulerEventAction;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.VisualizationPart;
 import de.bmotionstudio.gef.editor.scheduler.SchedulerEvent;
 
@@ -112,9 +112,9 @@ public class AppContextMenuProvider extends ContextMenuProvider {
 				.getActiveEditor().getEditorSite().getSelectionProvider()
 				.getSelection();
 
-		if (selection.getFirstElement() instanceof AppAbstractEditPart) {
+		if (selection.getFirstElement() instanceof BMSAbstractEditPart) {
 
-			BControl bcontrol = (BControl) ((AppAbstractEditPart) selection
+			BControl bcontrol = (BControl) ((BMSAbstractEditPart) selection
 					.getFirstElement()).getModel();
 
 			IExtensionPoint extensionPoint = registry
@@ -224,10 +224,10 @@ public class AppContextMenuProvider extends ContextMenuProvider {
 				.getActiveEditor().getEditorSite().getSelectionProvider()
 				.getSelection();
 
-		if ((selection.getFirstElement() instanceof AppAbstractEditPart)
+		if ((selection.getFirstElement() instanceof BMSAbstractEditPart)
 				&& !(selection.getFirstElement() instanceof VisualizationPart)) {
 
-			BControl bcontrol = (BControl) ((AppAbstractEditPart) selection
+			BControl bcontrol = (BControl) ((BMSAbstractEditPart) selection
 					.getFirstElement()).getModel();
 
 			// Has event
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionSelectionSynchronizer.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionSelectionSynchronizer.java
index 3bf703a63778ad8c668afb657a682a507cc22e94..e3a3198d69eca3c639e022f15c31f24d3973cd92 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionSelectionSynchronizer.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionSelectionSynchronizer.java
@@ -24,22 +24,27 @@ public class BMotionSelectionSynchronizer extends SelectionSynchronizer {
 
 	protected EditPart convert(EditPartViewer viewer, EditPart part) {
 
+		EditPart p = super.convert(viewer, part);
+
 		if (viewer instanceof ScrollingGraphicalViewer
 				|| viewer instanceof TreeViewer) {
-			BControl control = (BControl) part.getModel();
-			String id = control.getID();
-			BControl editControl = editor.getEditPage().getVisualization()
-					.getBControl(id);
-			Object temp = viewer.getEditPartRegistry().get(editControl);
-			EditPart newPart = null;
-			if (temp != null) {
-				newPart = (EditPart) temp;
+			Object model = part.getModel();
+			if (model instanceof BControl) {
+				BControl control = (BControl) model;
+				String id = control.getID();
+				BControl editControl = editor.getEditPage().getVisualization()
+						.getBControl(id);
+				Object temp = viewer.getEditPartRegistry().get(editControl);
+				EditPart newPart = null;
+				if (temp != null) {
+					newPart = (EditPart) temp;
+				}
+				return newPart;
 			}
-			return newPart;
-		} else {
-			return super.convert(viewer, part);
 		}
 
+		return p;
+
 	}
 
 }
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java
index 6fb06c9db4e6fee602bb85500ddfb0720370fbfb..f3a9da4341cef5e2ec4c472bcd3f8c2d0a055038 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioEditorPage.java
@@ -70,6 +70,7 @@ import org.eclipse.gef.ui.rulers.RulerComposite;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.SashForm;
 import org.eclipse.swt.events.DisposeEvent;
@@ -104,8 +105,9 @@ import de.bmotionstudio.gef.editor.library.AttributeTransferDropTargetListener;
 import de.bmotionstudio.gef.editor.model.BMotionRuler;
 import de.bmotionstudio.gef.editor.model.BMotionRulerProvider;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppEditPartFactory;
-import de.bmotionstudio.gef.editor.part.AppTreeEditPartFactory;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSEditPartFactory;
+import de.bmotionstudio.gef.editor.part.BMSTreeEditPartFactory;
 
 public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
 
@@ -152,10 +154,19 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
 
 	@Override
 	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
+
 		// If not the active editor, ignore selection changed.
-		if (getBMotionStudioEditor().equals(
+		if (!getBMotionStudioEditor().equals(
 				getSite().getPage().getActiveEditor()))
-			updateActions(getSelectionActions());
+			return;
+
+		Object selectedElement = ((IStructuredSelection) selection)
+				.getFirstElement();
+		if (!(selectedElement instanceof BMSAbstractEditPart))
+			return;
+
+		updateActions(getSelectionActions());
+
 	}
 
 	/**
@@ -495,7 +506,7 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
 		super.configureGraphicalViewer();
 		ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) getGraphicalViewer();
 
-		viewer.setEditPartFactory(new AppEditPartFactory());
+		viewer.setEditPartFactory(new BMSEditPartFactory());
 
 		ScalableRootEditPart rootEditPart = new ScalableRootEditPart();
 		GridLayer gridLayer = (GridLayer) rootEditPart
@@ -670,7 +681,7 @@ public class BMotionStudioEditorPage extends GraphicalEditorWithFlyoutPalette {
 
 		protected void configureOutlineViewer() {
 			getViewer().setEditDomain(getEditDomain());
-			getViewer().setEditPartFactory(new AppTreeEditPartFactory());
+			getViewer().setEditPartFactory(new BMSTreeEditPartFactory());
 			ContextMenuProvider provider = new AppContextMenuProvider(
 					getViewer(), getActionRegistry());
 			getViewer().setContextMenu(provider);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioRunPage.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioRunPage.java
index 36b084166896ebf03787820cba0f5221acd09430..ee49bff3c4f1f2116d8c0c3f5016c236c46a2fee 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioRunPage.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/BMotionStudioRunPage.java
@@ -31,7 +31,7 @@ import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.actions.ActionFactory;
 
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppEditPartFactory;
+import de.bmotionstudio.gef.editor.part.BMSEditPartFactory;
 
 public class BMotionStudioRunPage extends GraphicalEditor {
 
@@ -125,7 +125,7 @@ public class BMotionStudioRunPage extends GraphicalEditor {
 		super.configureGraphicalViewer();
 		ScrollingGraphicalViewer viewer = (ScrollingGraphicalViewer) getGraphicalViewer();
 
-		viewer.setEditPartFactory(new AppEditPartFactory());
+		viewer.setEditPartFactory(new BMSEditPartFactory());
 
 		ScalableRootEditPart rootEditPart = new ScalableRootEditPart();
 		viewer.setRootEditPart(rootEditPart);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IBControlService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IBControlService.java
index 832bd0c1df5d40bcba75a573b11c182aff40a13c..14035d97d2790ea894c2a63b0a0d9927c17cff19 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IBControlService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/IBControlService.java
@@ -11,7 +11,7 @@ import org.eclipse.gef.palette.ToolEntry;
 
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 
 /**
  * @author Lukas Ladenberger
@@ -21,7 +21,7 @@ public interface IBControlService {
 
 	public BControl createControl(Visualization visualization);
 
-	public AppAbstractEditPart createEditPart();
+	public BMSAbstractEditPart createEditPart();
 
 	public ToolEntry createToolEntry(Visualization visualization,
 			IConfigurationElement configurationElement);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomAction.java
index 0a599f4e003db6814fba319f412f22720939b1d6..397d02a95c5046767fa45ca13b5ebd90d8a36890 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomAction.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomAction.java
@@ -17,7 +17,7 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
 import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
 import de.bmotionstudio.gef.editor.command.BringToBottomCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.VisualizationPart;
 
 public class BringToBottomAction extends SelectionAction {
@@ -66,9 +66,9 @@ public class BringToBottomAction extends SelectionAction {
 		List<?> selectedObjects = getSelectedObjects();
 
 		for (Object obj : selectedObjects) {
-			if (obj instanceof AppAbstractEditPart) {
+			if (obj instanceof BMSAbstractEditPart) {
 				modelList
-						.add((BControl) ((AppAbstractEditPart) obj).getModel());
+						.add((BControl) ((BMSAbstractEditPart) obj).getModel());
 			}
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomStepAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomStepAction.java
index 5ab0686daa9e7509083ae407650666b0fac39618..2ae5a88cf2e37c04393cf9498ef252acb756f209 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomStepAction.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToBottomStepAction.java
@@ -17,7 +17,7 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
 import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
 import de.bmotionstudio.gef.editor.command.BringToBottomStepCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.VisualizationPart;
 
 public class BringToBottomStepAction extends SelectionAction {
@@ -67,9 +67,9 @@ public class BringToBottomStepAction extends SelectionAction {
 		List<?> selectedObjects = getSelectedObjects();
 
 		for (Object obj : selectedObjects) {
-			if (obj instanceof AppAbstractEditPart) {
+			if (obj instanceof BMSAbstractEditPart) {
 				modelList
-						.add((BControl) ((AppAbstractEditPart) obj).getModel());
+						.add((BControl) ((BMSAbstractEditPart) obj).getModel());
 			}
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopAction.java
index 0789ad7329d4d4d50343a28f13bff3c397fe243d..d407ac20bb81c128f1dd5aa7c97c5ba6ea2b19b3 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopAction.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopAction.java
@@ -17,7 +17,7 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
 import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
 import de.bmotionstudio.gef.editor.command.BringToTopCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.VisualizationPart;
 
 public class BringToTopAction extends SelectionAction {
@@ -62,8 +62,8 @@ public class BringToTopAction extends SelectionAction {
 		List<BControl> controlList = new ArrayList<BControl>();
 		List<?> selectedObjects = getSelectedObjects();
 		for (Object obj : selectedObjects) {
-			if (obj instanceof AppAbstractEditPart) {
-				controlList.add((BControl) ((AppAbstractEditPart) obj)
+			if (obj instanceof BMSAbstractEditPart) {
+				controlList.add((BControl) ((BMSAbstractEditPart) obj)
 						.getModel());
 			}
 		}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopStepAction.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopStepAction.java
index 2e0e89c5d76013b7fc913b1ed8b280512cad01b8..2491e8cba9c41b340bfc81e1d95fb7c4f4c50953 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopStepAction.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/action/BringToTopStepAction.java
@@ -17,7 +17,7 @@ import org.eclipse.ui.plugin.AbstractUIPlugin;
 import de.bmotionstudio.gef.editor.BMotionEditorPlugin;
 import de.bmotionstudio.gef.editor.command.BringToTopStepCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.VisualizationPart;
 
 public class BringToTopStepAction extends SelectionAction {
@@ -66,9 +66,9 @@ public class BringToTopStepAction extends SelectionAction {
 		List<?> selectedObjects = getSelectedObjects();
 
 		for (Object obj : selectedObjects) {
-			if (obj instanceof AppAbstractEditPart) {
+			if (obj instanceof BMSAbstractEditPart) {
 				modelList
-						.add((BControl) ((AppAbstractEditPart) obj).getModel());
+						.add((BControl) ((BMSAbstractEditPart) obj).getModel());
 			}
 		}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditManager.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditManager.java
index 82065ecd1d75b43fcbabbcef511437de882d9256..c2ad978d12b81b1248409b800616cceddc1487f7 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditManager.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/edit/TextEditManager.java
@@ -26,7 +26,7 @@ import org.eclipse.ui.part.CellEditorActionHandler;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 
 public class TextEditManager extends DirectEditManager {
 
@@ -41,7 +41,7 @@ public class TextEditManager extends DirectEditManager {
 		}
 	};
 
-	public TextEditManager(AppAbstractEditPart source, CellEditorLocator locator) {
+	public TextEditManager(BMSAbstractEditPart source, CellEditorLocator locator) {
 		super(source, null, locator);
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppDeletePolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSDeletePolicy.java
similarity index 89%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppDeletePolicy.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSDeletePolicy.java
index e6e18db463743f48589a4b97253412a7328a0084..21f255bd50f434c9648132b238f1f83c9af2c124 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppDeletePolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSDeletePolicy.java
@@ -13,7 +13,7 @@ import org.eclipse.gef.requests.GroupRequest;
 import de.bmotionstudio.gef.editor.command.DeleteCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class AppDeletePolicy extends ComponentEditPolicy {
+public class BMSDeletePolicy extends ComponentEditPolicy {
 
 	protected Command createDeleteCommand(GroupRequest deleteRequest) {
 		DeleteCommand command = new DeleteCommand((BControl) getHost()
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppEditLayoutPolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSEditLayoutPolicy.java
similarity index 94%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppEditLayoutPolicy.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSEditLayoutPolicy.java
index 1c9a3355a19ffaa07902d930897a020fb5620013..8eae508da5b13fa6318f457154eca3cecb12eb69 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/AppEditLayoutPolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSEditLayoutPolicy.java
@@ -27,9 +27,9 @@ import de.bmotionstudio.gef.editor.command.ChangeGuideCommand;
 import de.bmotionstudio.gef.editor.command.CreateCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BMotionGuide;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 
-public class AppEditLayoutPolicy extends XYLayoutEditPolicy {
+public class BMSEditLayoutPolicy extends XYLayoutEditPolicy {
 
 	@Override
 	protected Command createChangeConstraintCommand(EditPart child,
@@ -136,9 +136,9 @@ public class AppEditLayoutPolicy extends XYLayoutEditPolicy {
 	protected Command getCreateCommand(CreateRequest request) {
 
 		if (request.getType() == REQ_CREATE
-				&& getHost() instanceof AppAbstractEditPart) {
+				&& getHost() instanceof BMSAbstractEditPart) {
 
-			if (((BControl) ((AppAbstractEditPart) getHost()).getModel())
+			if (((BControl) ((BMSAbstractEditPart) getHost()).getModel())
 					.canHaveChildren()) {
 
 				BControl newObj = (BControl) request.getNewObject();
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioFlowEditPolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSFlowEditPolicy.java
similarity index 95%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioFlowEditPolicy.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSFlowEditPolicy.java
index 8aa9b37d2045776523ff961f947763692a15901d..a45115c212a4dca98ec140b632769818626d0803 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioFlowEditPolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSFlowEditPolicy.java
@@ -34,7 +34,7 @@ import de.bmotionstudio.gef.editor.model.BTable;
 import de.bmotionstudio.gef.editor.model.BTableCell;
 import de.bmotionstudio.gef.editor.model.BTableColumn;
 
-public class BMotionStudioFlowEditPolicy extends FlowLayoutEditPolicy {
+public class BMSFlowEditPolicy extends FlowLayoutEditPolicy {
 
 	private static final Dimension PREFERRED_SIZE = new Dimension(-1, -1);
 
@@ -228,7 +228,7 @@ public class BMotionStudioFlowEditPolicy extends FlowLayoutEditPolicy {
 	 * @see org.eclipse.gef.editpolicies.LayoutEditPolicy#createChildEditPolicy(org.eclipse.gef.EditPart)
 	 */
 	protected EditPolicy createChildEditPolicy(EditPart child) {
-		BMotionStudioResizableEditPolicy policy = new BMotionStudioResizableEditPolicy();
+		BMSResizableEditPolicy policy = new BMSResizableEditPolicy();
 		policy.setResizeDirections(PositionConstants.EAST
 				| PositionConstants.WEST);
 		return policy;
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionNodeEditPolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSNodeEditPolicy.java
similarity index 94%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionNodeEditPolicy.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSNodeEditPolicy.java
index 71e68f16775c4bd77a02435070de5179d75e7607..cfb5c0cba8a0ddb00792ca2bfa8744dac33a5b7b 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionNodeEditPolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSNodeEditPolicy.java
@@ -16,7 +16,7 @@ import de.bmotionstudio.gef.editor.command.ConnectionReconnectCommand;
 import de.bmotionstudio.gef.editor.model.BConnection;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BMotionNodeEditPolicy extends GraphicalNodeEditPolicy {
+public class BMSNodeEditPolicy extends GraphicalNodeEditPolicy {
 
 	/*
 	 * (non-Javadoc)
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioResizableEditPolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSResizableEditPolicy.java
similarity index 93%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioResizableEditPolicy.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSResizableEditPolicy.java
index cbe96daaf417a66b0d166d8d4fa292a28c853097..0c51a081ccef22f7cff3e5ee76d8273819b8f891 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMotionStudioResizableEditPolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/BMSResizableEditPolicy.java
@@ -15,7 +15,7 @@ import org.eclipse.gef.GraphicalEditPart;
 import org.eclipse.gef.LayerConstants;
 import org.eclipse.gef.editpolicies.ResizableEditPolicy;
 
-public class BMotionStudioResizableEditPolicy extends ResizableEditPolicy {
+public class BMSResizableEditPolicy extends ResizableEditPolicy {
 
 	/**
 	 * Creates the figure used for feedback.
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/ChangeAttributePolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/ChangeAttributePolicy.java
index cfeb087846f7263a215af10a187f2999a7eca1d9..781627fa430f9ac8bfae681adc2f5c01ab88f7dd 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/ChangeAttributePolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/ChangeAttributePolicy.java
@@ -13,7 +13,7 @@ import org.eclipse.gef.editpolicies.AbstractEditPolicy;
 
 import de.bmotionstudio.gef.editor.library.AbstractLibraryCommand;
 import de.bmotionstudio.gef.editor.library.AttributeRequest;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 
 public class ChangeAttributePolicy extends AbstractEditPolicy {
 
@@ -25,7 +25,7 @@ public class ChangeAttributePolicy extends AbstractEditPolicy {
 				&& request instanceof AttributeRequest) {
 			AttributeRequest changeAttributeReq = (AttributeRequest) request;
 			if (changeAttributeReq.getAttributeTransferObject() != null) {
-				AbstractLibraryCommand command = ((AppAbstractEditPart) getHost())
+				AbstractLibraryCommand command = ((BMSAbstractEditPart) getHost())
 						.getLibraryCommand(changeAttributeReq);
 				if (command != null) {
 					command.setEditPart(getHost());
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/CustomDirectEditPolicy.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/CustomDirectEditPolicy.java
index 0676c50ab47bd98a5fd9a44c929bf0e7de2dc97c..a25a39d8859a2d736cde7e70e2e77dd9ab4730c0 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/CustomDirectEditPolicy.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/editpolicy/CustomDirectEditPolicy.java
@@ -12,7 +12,7 @@ import org.eclipse.gef.requests.DirectEditRequest;
 
 import de.bmotionstudio.gef.editor.command.RenameCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 
 public class CustomDirectEditPolicy extends DirectEditPolicy {
 
@@ -21,7 +21,7 @@ public class CustomDirectEditPolicy extends DirectEditPolicy {
 	 */
 	protected Command getDirectEditCommand(DirectEditRequest edit) {
 		String labelText = (String) edit.getCellEditor().getValue();
-		AppAbstractEditPart label = (AppAbstractEditPart) getHost();
+		BMSAbstractEditPart label = (BMSAbstractEditPart) getHost();
 		RenameCommand command = new RenameCommand();
 		command.setControl((BControl) label.getModel());
 		command.setNewString(labelText);
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/ObserverRootVirtualTreeNode.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/ObserverRootVirtualTreeNode.java
new file mode 100644
index 0000000000000000000000000000000000000000..8562f648692ec3d27aa319bf66ce9aed15adb9cb
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/model/ObserverRootVirtualTreeNode.java
@@ -0,0 +1,31 @@
+/** 
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
+ * Heinrich Heine Universitaet Duesseldorf
+ * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
+ * */
+
+package de.bmotionstudio.gef.editor.model;
+
+import java.util.Collection;
+
+import de.bmotionstudio.gef.editor.observer.Observer;
+
+public class ObserverRootVirtualTreeNode {
+
+	private Collection<Observer> observer;
+	private BControl control;
+
+	public ObserverRootVirtualTreeNode(BControl control) {
+		this.observer = control.getObservers().values();
+		this.control = control;
+	}
+
+	public Collection<Observer> getObserver() {
+		return observer;
+	}
+
+	public BControl getControl() {
+		return control;
+	}
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractTreeEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractTreeEditPart.java
deleted file mode 100644
index 598d5f6bef4f92f5d7c2d4c703bf311331ed999d..0000000000000000000000000000000000000000
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractTreeEditPart.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/** 
- * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
- * Heinrich Heine Universitaet Duesseldorf
- * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
- * */
-
-package de.bmotionstudio.gef.editor.part;
-
-import java.beans.PropertyChangeListener;
-
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.editparts.AbstractTreeEditPart;
-import org.eclipse.ui.IPageLayout;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.model.BControl;
-
-public abstract class AppAbstractTreeEditPart extends AbstractTreeEditPart
-		implements PropertyChangeListener {
-
-	public void activate() {
-		if (!isActive()) {
-			super.activate();
-			((BControl) getModel()).addPropertyChangeListener(this);
-		}
-	}
-
-	public void deactivate() {
-		if (isActive()) {
-			super.deactivate();
-			((BControl) getModel()).removePropertyChangeListener(this);
-		}
-	}
-
-	@Override
-	public void performRequest(Request req) {
-		if (req.getType().equals(RequestConstants.REQ_OPEN)) {
-			try {
-				IWorkbenchPage page = PlatformUI.getWorkbench()
-						.getActiveWorkbenchWindow().getActivePage();
-				page.showView(IPageLayout.ID_PROP_SHEET);
-			} catch (PartInitException e) {
-				e.printStackTrace();
-			}
-		}
-	}
-
-	@Override
-	protected void createEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
-	}
-
-}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BButtonPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BButtonPart.java
index 9b8a4ab84fba92da177f7b4fec5002e82b208c26..73b1fc4e3bc7c6abae8f7c9a743cdfffcdd25725 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BButtonPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BButtonPart.java
@@ -17,14 +17,14 @@ import org.eclipse.swt.graphics.RGB;
 import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.edit.TextCellEditorLocator;
 import de.bmotionstudio.gef.editor.edit.TextEditManager;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.CustomDirectEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
 import de.bmotionstudio.gef.editor.figure.ButtonFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BButtonPart extends AppAbstractEditPart {
+public class BButtonPart extends BMSAbstractEditPart {
 
 	@Override
 	public void refreshEditFigure(IFigure figure, BControl model,
@@ -71,12 +71,12 @@ public class BButtonPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.NODE_ROLE, new RenamePolicy());
 		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
 				new CustomDirectEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCheckboxPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCheckboxPart.java
index 21ca996cdbc9996cdb904bd4c51f51bc2ce956bf..9ef072e05b0e86bb1067354f87def9f4a48a5541 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCheckboxPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCheckboxPart.java
@@ -23,15 +23,15 @@ import de.bmotionstudio.gef.editor.BMotionStudioImage;
 import de.bmotionstudio.gef.editor.EditorImageRegistry;
 import de.bmotionstudio.gef.editor.edit.TextCellEditorLocator;
 import de.bmotionstudio.gef.editor.edit.TextEditManager;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.CustomDirectEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
 import de.bmotionstudio.gef.editor.figure.AbstractBMotionFigure;
 import de.bmotionstudio.gef.editor.figure.CheckboxFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BCheckboxPart extends AppAbstractEditPart {
+public class BCheckboxPart extends BMSAbstractEditPart {
 
 	private ChangeListener changeListener = new ChangeListener() {
 		@Override
@@ -125,12 +125,12 @@ public class BCheckboxPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.NODE_ROLE, new RenamePolicy());
 		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
 				new CustomDirectEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCompositePart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCompositePart.java
index 1e363ea954bbba36b1c44bdcbfcda3c26a06294d..3fc4c4458cc5f73a829005c984ed3c325a8dc6a2 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCompositePart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BCompositePart.java
@@ -26,9 +26,9 @@ import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.AppEditLayoutPolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSEditLayoutPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.ChangeAttributePolicy;
 import de.bmotionstudio.gef.editor.figure.CompositeFigure;
 import de.bmotionstudio.gef.editor.library.AbstractLibraryCommand;
@@ -37,7 +37,7 @@ import de.bmotionstudio.gef.editor.library.LibraryImageCommand;
 import de.bmotionstudio.gef.editor.library.LibraryVariableCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BCompositePart extends AppAbstractEditPart {
+public class BCompositePart extends BMSAbstractEditPart {
 
 	@Override
 	protected IFigure createEditFigure() {
@@ -130,12 +130,12 @@ public class BCompositePart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new AppEditLayoutPolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new BMSEditLayoutPolicy());
 		installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, null);
 		installEditPolicy(EditPolicy.CONTAINER_ROLE, new SnapFeedbackPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 		installEditPolicy(ChangeAttributePolicy.CHANGE_ATTRIBUTE_POLICY,
 				new ChangeAttributePolicy());
 	}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BConnectionEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BConnectionEditPart.java
index f8cea36545181980c4cc64e3c6beb9fb98cee255..e1df86761d489ebb43030af3ba34b11035c64930 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BConnectionEditPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BConnectionEditPart.java
@@ -47,7 +47,7 @@ import de.bmotionstudio.gef.editor.command.ConnectionDeleteCommand;
 import de.bmotionstudio.gef.editor.model.BConnection;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BConnectionEditPart extends AppAbstractEditPart implements
+public class BConnectionEditPart extends BMSAbstractEditPart implements
 		ConnectionEditPart, LayerConstants {
 
 	protected Color foregroundColor;
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BControlTreeEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BControlTreeEditPart.java
index 74522c772573b325aa2e4779a577f256327334f1..5139f6d0d3f3ea58649123e23a528b4e421706f6 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BControlTreeEditPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BControlTreeEditPart.java
@@ -7,39 +7,30 @@
 package de.bmotionstudio.gef.editor.part;
 
 import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.util.ArrayList;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
+
+import org.eclipse.gef.EditPolicy;
+import org.eclipse.gef.Request;
+import org.eclipse.gef.RequestConstants;
+import org.eclipse.ui.IPageLayout;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
+import de.bmotionstudio.gef.editor.BMotionStudioImage;
+import de.bmotionstudio.gef.editor.EditorImageRegistry;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
 import de.bmotionstudio.gef.editor.model.BConnection;
 import de.bmotionstudio.gef.editor.model.BControl;
+import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
 import de.bmotionstudio.gef.editor.model.Visualization;
+import de.bmotionstudio.gef.editor.observer.Observer;
 
-public class BControlTreeEditPart extends AppAbstractTreeEditPart {
-
-	@Override
-	protected List<BControl> getModelChildren() {
-		Set<BControl> toShowElements = new HashSet<BControl>();
-		for (BControl control : ((BControl) getModel()).getChildrenArray()) {
-			if (control.showInOutlineView())
-				toShowElements.add(control);
-			List<BConnection> sourceConnections = control
-					.getSourceConnections();
-			for (BConnection con : sourceConnections) {
-				if (con.showInOutlineView())
-					toShowElements.add(con);
-			}
-			List<BConnection> targetConnections = control
-					.getTargetConnections();
-			for (BConnection con : targetConnections) {
-				if (con.showInOutlineView())
-					toShowElements.add(con);
-			}
-		}
-		return new ArrayList<BControl>(toShowElements);
-	}
+public class BControlTreeEditPart extends BMSAbstractTreeEditPart implements
+		PropertyChangeListener {
 
 	public void propertyChange(final PropertyChangeEvent evt) {
 		if (evt.getPropertyName().equals(BControl.PROPERTY_ADD)
@@ -49,13 +40,90 @@ public class BControlTreeEditPart extends AppAbstractTreeEditPart {
 		refreshVisuals();
 	}
 
+	@Override
+	protected void createEditPolicies() {
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
+	}
+
+	@Override
+	protected List<Object> getModelChildren() {
+
+		List<Object> toShowElements = new ArrayList<Object>();
+
+		if (getModel() instanceof BControl) {
+
+			BControl c = (BControl) getModel();
+
+			for (BControl control : c.getChildrenArray()) {
+				if (control.showInOutlineView())
+					toShowElements.add(control);
+				List<BConnection> sourceConnections = control
+						.getSourceConnections();
+				for (BConnection con : sourceConnections) {
+					if (con.showInOutlineView())
+						toShowElements.add(con);
+				}
+				List<BConnection> targetConnections = control
+						.getTargetConnections();
+				for (BConnection con : targetConnections) {
+					if (con.showInOutlineView())
+						toShowElements.add(con);
+				}
+			}
+
+			if (!(getModel() instanceof Visualization))
+				toShowElements.add(new ObserverRootVirtualTreeNode(c));
+
+		}
+
+		return toShowElements;
+
+	}
+
+	public void activate() {
+		if (!isActive()) {
+			super.activate();
+			((BControl) getModel()).addPropertyChangeListener(this);
+		}
+	}
+
+	public void deactivate() {
+		if (isActive()) {
+			super.deactivate();
+			((BControl) getModel()).removePropertyChangeListener(this);
+		}
+	}
+
 	@Override
 	public void refreshVisuals() {
-		BControl bcontrol = (BControl) getModel();
-		if (!(bcontrol instanceof Visualization)) {
-			setWidgetText(bcontrol.getAttributeValue(
-					AttributeConstants.ATTRIBUTE_ID).toString());
-			setWidgetImage(bcontrol.getIcon());
+
+		Object model = getModel();
+
+		if (model instanceof BControl) {
+			BControl bcontrol = (BControl) model;
+			if (!(bcontrol instanceof Visualization)) {
+				setWidgetText(bcontrol.getAttributeValue(
+						AttributeConstants.ATTRIBUTE_ID).toString());
+				setWidgetImage(bcontrol.getIcon());
+			}
+		} else if (model instanceof Observer) {
+			setWidgetText(((Observer) model).getName());
+			setWidgetImage(BMotionStudioImage
+					.getImage(EditorImageRegistry.IMG_ICON_OBSERVER));
+		}
+
+	}
+
+	@Override
+	public void performRequest(Request req) {
+		if (req.getType().equals(RequestConstants.REQ_OPEN)) {
+			try {
+				IWorkbenchPage page = PlatformUI.getWorkbench()
+						.getActiveWorkbenchWindow().getActivePage();
+				page.showView(IPageLayout.ID_PROP_SHEET);
+			} catch (PartInitException e) {
+				e.printStackTrace();
+			}
 		}
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BImagePart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BImagePart.java
index 33d5600a776b099eb7f9d4a10d607fbcce9fccc9..a4e8ae67d9aa7cc6fbb6ab7f0f1bf555b338ee80 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BImagePart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BImagePart.java
@@ -13,8 +13,8 @@ import org.eclipse.draw2d.IFigure;
 import org.eclipse.gef.EditPolicy;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.ChangeAttributePolicy;
 import de.bmotionstudio.gef.editor.figure.BMSImageFigure;
 import de.bmotionstudio.gef.editor.library.AbstractLibraryCommand;
@@ -22,7 +22,7 @@ import de.bmotionstudio.gef.editor.library.AttributeRequest;
 import de.bmotionstudio.gef.editor.library.LibraryImageCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BImagePart extends AppAbstractEditPart {
+public class BImagePart extends BMSAbstractEditPart {
 
 	@Override
 	public void refreshEditFigure(IFigure figure, BControl model,
@@ -67,9 +67,9 @@ public class BImagePart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 		installEditPolicy(ChangeAttributePolicy.CHANGE_ATTRIBUTE_POLICY,
 				new ChangeAttributePolicy());
 	}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractEditPart.java
similarity index 95%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractEditPart.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractEditPart.java
index 91a5bc5ac8126ea58d40898cac1c77e759e5f432..86445e7c736389788219bbd461ffc373631eec35 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppAbstractEditPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractEditPart.java
@@ -47,7 +47,7 @@ import de.bmotionstudio.gef.editor.model.Visualization;
 import de.bmotionstudio.gef.editor.observer.IObserverListener;
 import de.bmotionstudio.gef.editor.observer.Observer;
 
-public abstract class AppAbstractEditPart extends AbstractGraphicalEditPart
+public abstract class BMSAbstractEditPart extends AbstractGraphicalEditPart
 		implements PropertyChangeListener, IObserverListener, IAdaptable,
 		NodeEditPart {
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractTreeEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractTreeEditPart.java
new file mode 100644
index 0000000000000000000000000000000000000000..8c74cbf3ba53659ffa08ebc02633c9b672dfffe2
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSAbstractTreeEditPart.java
@@ -0,0 +1,15 @@
+/** 
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
+ * Heinrich Heine Universitaet Duesseldorf
+ * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
+ * */
+
+package de.bmotionstudio.gef.editor.part;
+
+import org.eclipse.gef.editparts.AbstractTreeEditPart;
+
+public abstract class BMSAbstractTreeEditPart extends AbstractTreeEditPart {
+
+
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppEditPartFactory.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSEditPartFactory.java
similarity index 92%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppEditPartFactory.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSEditPartFactory.java
index ed44ebee49f3f665eec1254841f206e51380b760..6c8852b5ac991853484358e154e17f135006c0c0 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppEditPartFactory.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSEditPartFactory.java
@@ -17,7 +17,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
 
-public class AppEditPartFactory implements EditPartFactory {
+public class BMSEditPartFactory implements EditPartFactory {
 
 	@Override
 	public EditPart createEditPart(EditPart context, Object model) {
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppTreeEditPartFactory.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSTreeEditPartFactory.java
similarity index 52%
rename from de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppTreeEditPartFactory.java
rename to de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSTreeEditPartFactory.java
index 42aa2bc89431930956047e78a6a921b167517199..7114d7532c4222af61f0c37296d9a602f90db13d 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/AppTreeEditPartFactory.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BMSTreeEditPartFactory.java
@@ -10,17 +10,28 @@ import org.eclipse.gef.EditPart;
 import org.eclipse.gef.EditPartFactory;
 
 import de.bmotionstudio.gef.editor.model.BControl;
+import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
+import de.bmotionstudio.gef.editor.observer.Observer;
 
-public class AppTreeEditPartFactory implements EditPartFactory {
+public class BMSTreeEditPartFactory implements EditPartFactory {
 
 	public EditPart createEditPart(EditPart context, Object model) {
-		BControlTreeEditPart part = null;
+
+		BMSAbstractTreeEditPart part = null;
+
 		if (model instanceof BControl) {
 			part = new BControlTreeEditPart();
-			if (part != null)
-				part.setModel(model);
+		} else if (model instanceof Observer) {
+			part = new ObserverTreeEditPart();
+		} else if (model instanceof ObserverRootVirtualTreeNode) {
+			part = new ObserverRootTreeEditpart();
 		}
+
+		if (part != null)
+			part.setModel(model);
+
 		return part;
+
 	}
 
 }
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BRadioButtonPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BRadioButtonPart.java
index f4ad340be62284ad1c6ce9d3a390393c3160e08a..6f69bd69f50f3c567dd7d3cd129ca2b703833c50 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BRadioButtonPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BRadioButtonPart.java
@@ -24,15 +24,15 @@ import de.bmotionstudio.gef.editor.ButtonGroupHelper;
 import de.bmotionstudio.gef.editor.ImageRegistry;
 import de.bmotionstudio.gef.editor.edit.TextCellEditorLocator;
 import de.bmotionstudio.gef.editor.edit.TextEditManager;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.CustomDirectEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
 import de.bmotionstudio.gef.editor.figure.AbstractBMotionFigure;
 import de.bmotionstudio.gef.editor.figure.RadioButtonFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BRadioButtonPart extends AppAbstractEditPart {
+public class BRadioButtonPart extends BMSAbstractEditPart {
 
 	private ChangeListener changeListener = new ChangeListener() {
 		@Override
@@ -142,12 +142,12 @@ public class BRadioButtonPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.NODE_ROLE, new RenamePolicy());
 		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
 				new CustomDirectEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BShapePart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BShapePart.java
index 1ffe72f87ae2e019e9b5e5fb9265e615c88b5596..c38752cc2141155e68d1c67be2956d521ed1a6ba 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BShapePart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BShapePart.java
@@ -17,12 +17,12 @@ import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.figure.ShapeFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BShapePart extends AppAbstractEditPart {
+public class BShapePart extends BMSAbstractEditPart {
 
 	@Override
 	public void refreshEditFigure(IFigure figure, BControl model,
@@ -117,9 +117,9 @@ public class BShapePart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableCellPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableCellPart.java
index 8c7907cdcabf84f08125f427746fa764f045009a..fa8c5c2d98facbdd870ebc8737e129f16cfe0da9 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableCellPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableCellPart.java
@@ -16,7 +16,7 @@ import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
 import de.bmotionstudio.gef.editor.figure.TableCellFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BTableCellPart extends AppAbstractEditPart {
+public class BTableCellPart extends BMSAbstractEditPart {
 
 	@Override
 	protected IFigure createEditFigure() {
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableColumnPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableColumnPart.java
index 55b7db8b1522a68d2861eb79b27f152e5f111707..77c24203b26f7dc263453ae7da664924791705d6 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableColumnPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTableColumnPart.java
@@ -11,12 +11,12 @@ import org.eclipse.swt.graphics.RGB;
 import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.BMotionStudioImage;
 import de.bmotionstudio.gef.editor.EditorImageRegistry;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionStudioFlowEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSFlowEditPolicy;
 import de.bmotionstudio.gef.editor.figure.TableColumnFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BTableColumnPart extends AppAbstractEditPart {
+public class BTableColumnPart extends BMSAbstractEditPart {
 
 	@Override
 	protected IFigure createEditFigure() {
@@ -33,9 +33,9 @@ public class BTableColumnPart extends AppAbstractEditPart {
 	@Override
 	protected void prepareEditPolicies() {
 		installEditPolicy(EditPolicy.LAYOUT_ROLE,
-				new BMotionStudioFlowEditPolicy());
+				new BMSFlowEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
@@ -88,8 +88,8 @@ public class BTableColumnPart extends AppAbstractEditPart {
 		}
 
 		// Notify parent table about change
-		if (getParent() instanceof AppAbstractEditPart) {
-			AppAbstractEditPart tablePart = (AppAbstractEditPart) getParent();
+		if (getParent() instanceof BMSAbstractEditPart) {
+			BMSAbstractEditPart tablePart = (BMSAbstractEditPart) getParent();
 			tablePart.refreshEditLayout(tablePart.getFigure(),
 					control.getParent());
 		}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTablePart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTablePart.java
index 75a250913f1bb08007abe618909d12cd1130b603..4c93761eca5d506f7b6b05f57103cef962e3ccf0 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTablePart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTablePart.java
@@ -13,15 +13,15 @@ import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.BMotionStudioImage;
 import de.bmotionstudio.gef.editor.EditorImageRegistry;
 import de.bmotionstudio.gef.editor.command.CreateCommand;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionStudioFlowEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSFlowEditPolicy;
 import de.bmotionstudio.gef.editor.figure.TableFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BTableCell;
 import de.bmotionstudio.gef.editor.model.BTableColumn;
 
-public class BTablePart extends AppAbstractEditPart {
+public class BTablePart extends BMSAbstractEditPart {
 
 	@Override
 	protected IFigure createEditFigure() {
@@ -38,10 +38,10 @@ public class BTablePart extends AppAbstractEditPart {
 	@Override
 	protected void prepareEditPolicies() {
 		installEditPolicy(EditPolicy.LAYOUT_ROLE,
-				new BMotionStudioFlowEditPolicy());
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+				new BMSFlowEditPolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextPart.java
index 5de397b03f7d9a59b8da669bc3a0256c769d3ef6..652b0bab5958ae873936d3bd9886f8572d4a96b7 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextPart.java
@@ -18,8 +18,8 @@ import org.eclipse.swt.widgets.Display;
 import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.edit.TextCellEditorLocator;
 import de.bmotionstudio.gef.editor.edit.TextEditManager;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.ChangeAttributePolicy;
 import de.bmotionstudio.gef.editor.editpolicy.CustomDirectEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
@@ -29,7 +29,7 @@ import de.bmotionstudio.gef.editor.library.AttributeRequest;
 import de.bmotionstudio.gef.editor.library.LibraryVariableCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BTextPart extends AppAbstractEditPart {
+public class BTextPart extends BMSAbstractEditPart {
 
 	@Override
 	public void refreshEditFigure(IFigure figure, BControl model,
@@ -97,12 +97,12 @@ public class BTextPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.NODE_ROLE, new RenamePolicy());
 		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
 				new CustomDirectEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 		installEditPolicy(ChangeAttributePolicy.CHANGE_ATTRIBUTE_POLICY,
 				new ChangeAttributePolicy());
 	}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextfieldPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextfieldPart.java
index 424e6da84bae178d6f899f815bec15bea6d630fe..e0b313669d34d08a8e7921452c7e229b4e7c5b0a 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextfieldPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/BTextfieldPart.java
@@ -19,15 +19,15 @@ import org.eclipse.gef.RequestConstants;
 import de.bmotionstudio.gef.editor.AttributeConstants;
 import de.bmotionstudio.gef.editor.edit.TextCellEditorLocator;
 import de.bmotionstudio.gef.editor.edit.TextEditManager;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.BMotionNodeEditPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSNodeEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.CustomDirectEditPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.RenamePolicy;
 import de.bmotionstudio.gef.editor.figure.AbstractBMotionFigure;
 import de.bmotionstudio.gef.editor.figure.TextfieldFigure;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class BTextfieldPart extends AppAbstractEditPart {
+public class BTextfieldPart extends BMSAbstractEditPart {
 
 	private TextEditManager textEditManager;
 
@@ -111,12 +111,12 @@ public class BTextfieldPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
 		installEditPolicy(EditPolicy.NODE_ROLE, new RenamePolicy());
 		installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE,
 				new CustomDirectEditPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE,
-				new BMotionNodeEditPolicy());
+				new BMSNodeEditPolicy());
 	}
 
 	@Override
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverRootTreeEditpart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverRootTreeEditpart.java
new file mode 100644
index 0000000000000000000000000000000000000000..fd70efd9d5462ae343e734f5806cd167851ff937
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverRootTreeEditpart.java
@@ -0,0 +1,61 @@
+/** 
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
+ * Heinrich Heine Universitaet Duesseldorf
+ * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
+ * */
+
+package de.bmotionstudio.gef.editor.part;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import de.bmotionstudio.gef.editor.BMotionStudioImage;
+import de.bmotionstudio.gef.editor.EditorImageRegistry;
+import de.bmotionstudio.gef.editor.model.BControl;
+import de.bmotionstudio.gef.editor.model.ObserverRootVirtualTreeNode;
+import de.bmotionstudio.gef.editor.observer.IObserverListener;
+import de.bmotionstudio.gef.editor.observer.Observer;
+
+public class ObserverRootTreeEditpart extends BMSAbstractTreeEditPart implements
+		IObserverListener {
+
+	public void activate() {
+		if (!isActive()) {
+			super.activate();
+			((ObserverRootVirtualTreeNode) getModel()).getControl()
+					.addObserverListener(this);
+		}
+	}
+
+	public void deactivate() {
+		if (isActive()) {
+			super.deactivate();
+			((ObserverRootVirtualTreeNode) getModel()).getControl()
+					.removeObserverListener(this);
+		}
+	}
+
+	@Override
+	protected List<Object> getModelChildren() {
+		ObserverRootVirtualTreeNode model = (ObserverRootVirtualTreeNode) getModel();
+		return new ArrayList<Object>(model.getObserver());
+	}
+
+	@Override
+	public void refreshVisuals() {
+		setWidgetText("Observer");
+		setWidgetImage(BMotionStudioImage
+				.getImage(EditorImageRegistry.IMG_ICON_OBSERVER));
+	}
+
+	@Override
+	public void addedObserver(BControl control, Observer observer) {
+		refreshChildren();
+	}
+
+	@Override
+	public void removedObserver(BControl control) {
+		refreshChildren();
+	}
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverTreeEditPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverTreeEditPart.java
new file mode 100644
index 0000000000000000000000000000000000000000..1c4105be5172b24af2e1e3e0ec455b900d152696
--- /dev/null
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/ObserverTreeEditPart.java
@@ -0,0 +1,23 @@
+/** 
+ * (c) 2009 Lehrstuhl fuer Softwaretechnik und Programmiersprachen, 
+ * Heinrich Heine Universitaet Duesseldorf
+ * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
+ * */
+
+package de.bmotionstudio.gef.editor.part;
+
+import de.bmotionstudio.gef.editor.BMotionStudioImage;
+import de.bmotionstudio.gef.editor.EditorImageRegistry;
+import de.bmotionstudio.gef.editor.observer.Observer;
+
+public class ObserverTreeEditPart extends BMSAbstractTreeEditPart {
+
+	@Override
+	public void refreshVisuals() {
+		Observer o = (Observer) getModel();
+		setWidgetText(o.getName());
+		setWidgetImage(BMotionStudioImage
+				.getImage(EditorImageRegistry.IMG_ICON_OBSERVER));
+	}
+
+}
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/UnknownPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/UnknownPart.java
index 5b18e42c3141e42b02b961b8e7180e199242df9d..9742455691d3b9f7ce60162437c6c1f067d09235 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/UnknownPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/UnknownPart.java
@@ -13,7 +13,7 @@ import org.eclipse.draw2d.IFigure;
 import de.bmotionstudio.gef.editor.figure.UnknownBControl;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class UnknownPart extends AppAbstractEditPart {
+public class UnknownPart extends BMSAbstractEditPart {
 
 	public static String ID = "de.bmotionstudio.gef.editor.unknown";
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/VisualizationPart.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/VisualizationPart.java
index ffa7230bbf89cbb2e068be3fe99a9102ae33f935..2ecbed079706725e80ce8962d1dd1915cecdb5ee 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/VisualizationPart.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/part/VisualizationPart.java
@@ -24,8 +24,8 @@ import org.eclipse.swt.graphics.RGB;
 import org.eclipse.swt.widgets.Display;
 
 import de.bmotionstudio.gef.editor.AttributeConstants;
-import de.bmotionstudio.gef.editor.editpolicy.AppDeletePolicy;
-import de.bmotionstudio.gef.editor.editpolicy.AppEditLayoutPolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSDeletePolicy;
+import de.bmotionstudio.gef.editor.editpolicy.BMSEditLayoutPolicy;
 import de.bmotionstudio.gef.editor.editpolicy.ChangeAttributePolicy;
 import de.bmotionstudio.gef.editor.figure.VisualizationFigure;
 import de.bmotionstudio.gef.editor.library.AbstractLibraryCommand;
@@ -34,7 +34,7 @@ import de.bmotionstudio.gef.editor.library.LibraryImageCommand;
 import de.bmotionstudio.gef.editor.library.LibraryVariableCommand;
 import de.bmotionstudio.gef.editor.model.BControl;
 
-public class VisualizationPart extends AppAbstractEditPart {
+public class VisualizationPart extends BMSAbstractEditPart {
 
 	public static String ID = "de.bmotionstudio.gef.editor.visualization";
 
@@ -50,8 +50,8 @@ public class VisualizationPart extends AppAbstractEditPart {
 
 	@Override
 	protected void prepareEditPolicies() {
-		installEditPolicy(EditPolicy.COMPONENT_ROLE, new AppDeletePolicy());
-		installEditPolicy(EditPolicy.LAYOUT_ROLE, new AppEditLayoutPolicy());
+		installEditPolicy(EditPolicy.COMPONENT_ROLE, new BMSDeletePolicy());
+		installEditPolicy(EditPolicy.LAYOUT_ROLE, new BMSEditLayoutPolicy());
 		installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, null);
 		installEditPolicy(EditPolicy.SELECTION_FEEDBACK_ROLE, null);
 		installEditPolicy(EditPolicy.CONTAINER_ROLE, new SnapFeedbackPolicy());
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BButtonService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BButtonService.java
index e53c63a05dc0f372ca7e1194cdf167cf63de45eb..e0b5b38b09a6429c1c2a66bdc71929c3d3a8abcd 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BButtonService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BButtonService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BButton;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BButtonPart;
 
 /**
@@ -39,7 +39,7 @@ public class BButtonService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BButtonPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCheckboxService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCheckboxService.java
index 7172275ab638423a14842f84b49ef5d6d0119822..dcaebcef01eac35993dd90a28542946e5bb9325e 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCheckboxService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCheckboxService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BCheckbox;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BCheckboxPart;
 
 /**
@@ -39,7 +39,7 @@ public class BCheckboxService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BCheckboxPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCompositeService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCompositeService.java
index 863246a333f93ee035c93db0d7b9a7d92b247f23..4a11b1d1c33fbcdecb4d0a06c05ca1115270a412 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCompositeService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BCompositeService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BComposite;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BCompositePart;
 
 /**
@@ -39,7 +39,7 @@ public class BCompositeService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BCompositePart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BConnectionService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BConnectionService.java
index 6d88ddebb508cdb3ccbcf52694e68b9c3ace855d..8c2c8e97317f5a65067764c37f9c72ec8b9e4cda 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BConnectionService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BConnectionService.java
@@ -17,7 +17,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BConnection;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BConnectionEditPart;
 
 /**
@@ -47,7 +47,7 @@ public class BConnectionService extends AbstractBControlService implements
 	}
 
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BConnectionEditPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BEllipseService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BEllipseService.java
index 40de317b91f70560053cf0bc8bb4a292974d6bb8..ffaf7f7dceeebc27954799e4b6fbf7961a9171ee 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BEllipseService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BEllipseService.java
@@ -7,7 +7,7 @@ import de.bmotionstudio.gef.editor.attribute.BAttributeShape;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BShape;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BShapePart;
 
 public class BEllipseService extends AbstractBControlService implements
@@ -26,7 +26,7 @@ public class BEllipseService extends AbstractBControlService implements
 	}
 
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BShapePart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BImageService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BImageService.java
index 22886fb67758dde65a147b9148d93b48e373301e..e70769ac275e2571a66cce4bc76a5518011b1c5d 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BImageService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BImageService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BImage;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BImagePart;
 
 /**
@@ -39,7 +39,7 @@ public class BImageService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BImagePart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRadioButtonService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRadioButtonService.java
index 58d463b8fe2b51f4902841013c619dab5a90e754..ae4b4250f88f47e70170eaef67dfd984d425af36 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRadioButtonService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRadioButtonService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BRadioButton;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BRadioButtonPart;
 
 /**
@@ -39,7 +39,7 @@ public class BRadioButtonService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BRadioButtonPart();
 	}
 }
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRectangleService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRectangleService.java
index 4f74a1bab73bda064da23af7bf5914915a4347f0..f29b430d7c111916fc541e1f804fab319b757262 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRectangleService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BRectangleService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BShape;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BShapePart;
 
 /**
@@ -39,7 +39,7 @@ public class BRectangleService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BShapePart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableCellService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableCellService.java
index 36bd5c52047bc58d165b7e74a0290abb8fac9b9a..65dd6ccc72f1d8c8465bfb9eb8f2828c9770c3a3 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableCellService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableCellService.java
@@ -5,7 +5,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BTableCell;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BTableCellPart;
 
 public class BTableCellService extends AbstractBControlService implements
@@ -17,7 +17,7 @@ public class BTableCellService extends AbstractBControlService implements
 	}
 
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BTableCellPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableColumnService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableColumnService.java
index ea26c6326c5b225dd9ee8293d681bef037cba479..447e9918fa81bfd3e896dadcc2fd390a50f4eb20 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableColumnService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableColumnService.java
@@ -5,7 +5,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BTableColumn;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BTableColumnPart;
 
 public class BTableColumnService extends AbstractBControlService implements
@@ -17,7 +17,7 @@ public class BTableColumnService extends AbstractBControlService implements
 	}
 
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BTableColumnPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableService.java
index da6182eb66ce3f9ab851be83e7a5da67531a01bd..67da1a6148b0f376502b36e0047ce42a98a36e70 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTableService.java
@@ -5,7 +5,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BTable;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BTablePart;
 
 public class BTableService extends AbstractBControlService implements
@@ -17,7 +17,7 @@ public class BTableService extends AbstractBControlService implements
 	}
 
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BTablePart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextService.java
index 4eb9bc34fedd686cb9f948559c1f141fe7c5bd7e..77fcbaa39c22f72ab5fc3b3e70c13bbe32709245 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BText;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BTextPart;
 
 /**
@@ -39,7 +39,7 @@ public class BTextService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BTextPart();
 	}
 
diff --git a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextfieldService.java b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextfieldService.java
index 1512b76a57cb7d9c82cad81d94f02cf59964597f..694879b12b6db775ff764b93e24d10bdd8fe06a2 100644
--- a/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextfieldService.java
+++ b/de.bmotionstudio.gef.editor/src/de/bmotionstudio/gef/editor/service/BTextfieldService.java
@@ -11,7 +11,7 @@ import de.bmotionstudio.gef.editor.IBControlService;
 import de.bmotionstudio.gef.editor.model.BControl;
 import de.bmotionstudio.gef.editor.model.BTextfield;
 import de.bmotionstudio.gef.editor.model.Visualization;
-import de.bmotionstudio.gef.editor.part.AppAbstractEditPart;
+import de.bmotionstudio.gef.editor.part.BMSAbstractEditPart;
 import de.bmotionstudio.gef.editor.part.BTextfieldPart;
 
 /**
@@ -39,7 +39,7 @@ public class BTextfieldService extends AbstractBControlService implements
 	 * @see de.bmotionstudio.gef.editor.IBControlService#createEditPart()
 	 */
 	@Override
-	public AppAbstractEditPart createEditPart() {
+	public BMSAbstractEditPart createEditPart() {
 		return new BTextfieldPart();
 	}