diff --git a/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF b/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
index add63a01ae79574b79cd5098f112d00ee0fe11cd..0aa3a2b2b2d253bcc66a52f521833dbe3a441664 100644
--- a/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
+++ b/org.fortiss.tooling.kernel/trunk/META-INF/MANIFEST.MF
@@ -13,7 +13,8 @@ Require-Bundle: org.eclipse.ui;visibility:=reexport,
  org.conqat.ide.commons.ui;bundle-version="2.7.0";visibility:=reexport,
  org.unicase.workspace;bundle-version="1.0.0",
  org.unicase.ecp.model;bundle-version="1.0.0",
- org.unicase.ecpemfstorebridge;bundle-version="1.0.0"
+ org.unicase.ecpemfstorebridge;bundle-version="1.0.0",
+ org.unicase.ui.common;bundle-version="1.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
 Export-Package: org.fortiss.tooling.kernel,
diff --git a/org.fortiss.tooling.kernel/trunk/plugin.xml b/org.fortiss.tooling.kernel/trunk/plugin.xml
index 3581f753cfb4afe38c821c48e0d2fa3051bd10f8..1e7a37459d194d4cd1a700cdb99a2cc3aed760d8 100644
--- a/org.fortiss.tooling.kernel/trunk/plugin.xml
+++ b/org.fortiss.tooling.kernel/trunk/plugin.xml
@@ -24,16 +24,48 @@
    <extension
          point="org.fortiss.tooling.kernel.modelElementHandler">
       <modelElementHandler
-            handler="org.fortiss.tooling.kernel.internal.handler.EMFStoreECPProjectModelElementHandler"
-            modelElementClass="org.unicase.ecpemfstorebridge.EMFStoreECPProject">
+            handler="org.fortiss.tooling.kernel.internal.handler.ProjectSpaceModelElementHandler"
+            modelElementClass="org.unicase.workspace.ProjectSpace">
       </modelElementHandler>
    </extension>
    <extension
          point="org.fortiss.tooling.kernel.modelElementCompositor">
       <modelElementCompositor
-            compositor="org.fortiss.tooling.kernel.internal.compose.EMFStoreECPProjectCompositor"
-            modelElementClass="org.unicase.ecpemfstorebridge.EMFStoreECPProject">
+            compositor="org.fortiss.tooling.kernel.internal.compose.ProjectSpaceCompositor"
+            modelElementClass="org.unicase.workspace.ProjectSpace">
       </modelElementCompositor>
    </extension>
+   <extension
+         point="org.eclipse.ui.menus">
+         
+      <menuContribution
+            allPopups="false"
+            locationURI="popup:org.fortiss.tooling.kernel.model.navigator?before=repository">
+         <menu
+               icon="icons/add.png"
+               id="org.fortiss.tooling.kernel.model.navigator.newmenu"
+               label="New...">
+            <visibleWhen
+                  checkEnabled="false">
+               <with
+                     variable="activeMenuSelection">
+                  <iterate>
+                     <adapt
+                           type="org.eclipse.emf.ecore.EObject">
+                     </adapt>
+                  </iterate>
+               </with>
+            </visibleWhen>
+         </menu>
+      </menuContribution>
+     <menuContribution
+           allPopups="false"
+           locationURI="popup:org.fortiss.tooling.kernel.model.navigator.newmenu">
+        <dynamic
+              class="org.fortiss.tooling.kernel.internal.navigator.NewMenu"
+              id="org.fortiss.tooling.kernel.model.navigator.newmenu.content">
+        </dynamic>
+     </menuContribution>      
+   </extension>
 
 </plugin>
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
index 2b2d2b88147b9ec27cef5cab33502fbe229b1695..01b057fcc769b40cb9186f3fdad9f95726222a1b 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/CommandStackService.java
@@ -17,7 +17,12 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.internal;
 
+import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.services.ICommandStackService;
+import org.unicase.ecp.model.ECPWorkspaceManager;
+import org.unicase.ecp.model.NoWorkspaceException;
+import org.unicase.ecp.model.workSpaceModel.ECPProject;
+import org.unicase.ui.common.commands.ECPCommand;
 
 /**
  * This class implements the {@link ICommandStackService} interface.
@@ -29,4 +34,22 @@ import org.fortiss.tooling.kernel.services.ICommandStackService;
  */
 public class CommandStackService implements ICommandStackService {
 
+	/** {@inheritDoc} */
+	@Override
+	public void runAsCommand(final EObject target, final Runnable runner) {
+		ECPProject project;
+		try {
+			project = ECPWorkspaceManager.getInstance().getWorkSpace()
+					.getProject(target);
+		} catch (NoWorkspaceException e) {
+			return;
+		}
+		new ECPCommand(project.getRootObject()) {
+
+			@Override
+			protected void doRun() {
+				runner.run();
+			}
+		}.run(false);
+	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/EMFStoreECPProjectCompositor.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/ProjectSpaceCompositor.java
similarity index 84%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/EMFStoreECPProjectCompositor.java
rename to org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/ProjectSpaceCompositor.java
index 77591a0888c9822c8e553ab7a8d027493d35fcb1..f65943700143afdee2589042d0966ec02f1d8222 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/EMFStoreECPProjectCompositor.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/compose/ProjectSpaceCompositor.java
@@ -21,7 +21,7 @@ import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.interfaces.ICompositionContext;
 import org.fortiss.tooling.kernel.interfaces.ICompositor;
 import org.fortiss.tooling.kernel.model.IProjectRootElement;
-import org.unicase.ecpemfstorebridge.EMFStoreECPProject;
+import org.unicase.workspace.ProjectSpace;
 
 /**
  * {@link ICompositor} implementation for the {@link IProjectRootElement}s.
@@ -31,21 +31,20 @@ import org.unicase.ecpemfstorebridge.EMFStoreECPProject;
  * @version $Rev$
  * @levd.rating RED Rev:
  */
-public final class EMFStoreECPProjectCompositor implements
-		ICompositor<EMFStoreECPProject> {
+public final class ProjectSpaceCompositor implements ICompositor<ProjectSpace> {
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean canCompose(EMFStoreECPProject container, EObject contained,
+	public boolean canCompose(ProjectSpace container, EObject contained,
 			ICompositionContext context) {
 		return contained instanceof IProjectRootElement;
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public boolean compose(EMFStoreECPProject container, EObject contained,
+	public boolean compose(ProjectSpace container, EObject contained,
 			ICompositionContext context) {
-		container.addModelElementToRoot(contained);
+		container.getProject().addModelElement(contained);
 		return true;
 	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/EMFStoreECPProjectModelElementHandler.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/ProjectSpaceModelElementHandler.java
similarity index 69%
rename from org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/EMFStoreECPProjectModelElementHandler.java
rename to org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/ProjectSpaceModelElementHandler.java
index ad3c2307afd0b7f7a9d0ac77519351acbab15b6a..446b25f8463e89a3958047a9f9d98fc48252c900 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/EMFStoreECPProjectModelElementHandler.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/handler/ProjectSpaceModelElementHandler.java
@@ -26,37 +26,29 @@ import org.fortiss.tooling.kernel.ToolingKernelActivator;
 import org.fortiss.tooling.kernel.base.ModelElementHandlerBase;
 import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.model.IProjectRootElement;
-import org.unicase.ecp.model.workSpaceModel.ECPProject;
-import org.unicase.ecpemfstorebridge.EMFStoreECPProject;
 import org.unicase.workspace.ProjectSpace;
 
 /**
- * {@link IModelElementHandler} for {@link ECPProject}s.
+ * {@link IModelElementHandler} for {@link ProjectSpace}s.
  * 
  * @author hoelzlf
  * @author $Author$
  * @version $Rev$
  * @levd.rating RED Rev:
  */
-public final class EMFStoreECPProjectModelElementHandler extends
-		ModelElementHandlerBase<EMFStoreECPProject> {
+public final class ProjectSpaceModelElementHandler extends
+		ModelElementHandlerBase<ProjectSpace> {
 
 	/** {@inheritDoc} */
 	@Override
-	public String getName(EMFStoreECPProject element) {
-		ProjectSpace projectSpace = (ProjectSpace) element.getRootObject();
-		String projectName = projectSpace.getProjectName();
-		String baseRevision = " @"
-				+ projectSpace.getBaseVersion().getIdentifier();
-		String username = projectSpace.getUsersession().getUsername();
-		return projectName + baseRevision + " (" + username + ")";
+	public String getName(ProjectSpace element) {
+		return element.getProjectName();
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public String getDescription(EMFStoreECPProject element) {
-		ProjectSpace projectSpace = (ProjectSpace) element.getRootObject();
-		return projectSpace.getProjectDescription();
+	public String getDescription(ProjectSpace element) {
+		return element.getProjectDescription();
 	}
 
 	/** {@inheritDoc} */
@@ -67,9 +59,9 @@ public final class EMFStoreECPProjectModelElementHandler extends
 
 	/** {@inheritDoc} */
 	@Override
-	public List<EObject> getSubnodes(EMFStoreECPProject element) {
+	public List<EObject> getSubnodes(ProjectSpace element) {
 		List<EObject> list = new ArrayList<EObject>();
-		for (EObject node : element.getAllModelElements()) {
+		for (EObject node : element.getProject().getModelElements()) {
 			if (node instanceof IProjectRootElement) {
 				list.add(node);
 			}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorTreeContentProvider.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorTreeContentProvider.java
index fbe50590fafeb0b377906cf62e9ac5ed959d2dd6..cd166b31719704f21137c08b98b176ede0cad7b5 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorTreeContentProvider.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorTreeContentProvider.java
@@ -17,11 +17,15 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.internal.navigator;
 
+import java.util.ArrayList;
+
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.jface.viewers.ITreeContentProvider;
 import org.eclipse.jface.viewers.Viewer;
 import org.fortiss.tooling.kernel.interfaces.IModelElementHandler;
 import org.fortiss.tooling.kernel.services.IModelElementService;
+import org.unicase.ecp.model.workSpaceModel.ECPProject;
 import org.unicase.ecp.model.workSpaceModel.ECPWorkspace;
 
 /**
@@ -38,7 +42,13 @@ public class NavigatorTreeContentProvider implements ITreeContentProvider {
 	@Override
 	public Object[] getElements(Object inputElement) {
 		if (inputElement instanceof ECPWorkspace) {
-			return ((ECPWorkspace) inputElement).getProjects().toArray();
+			ArrayList<EObject> ret = new ArrayList<EObject>();
+			EList<ECPProject> projects = ((ECPWorkspace) inputElement)
+					.getProjects();
+			for (ECPProject ecpProject : projects) {
+				ret.add(ecpProject.getRootObject());
+			}
+			return ret.toArray();
 		}
 		return null;
 	}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java
index 362ba00a372adcfafba61a20ea90b6bde0bbf926..01aaabf289cdbd9f4337687278d749a5c8c9d68d 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NavigatorViewPart.java
@@ -77,6 +77,9 @@ public final class NavigatorViewPart extends ViewPart implements
 	/** Stores the menu manager. */
 	private MenuManager menuManager;
 
+	/** Stores the new model element menu. */
+	private NewMenu newMenu;
+
 	/** Constructor. */
 	public NavigatorViewPart() {
 		try {
@@ -186,13 +189,32 @@ public final class NavigatorViewPart extends ViewPart implements
 
 	/** Creates the context menu. */
 	private void createContextMenu() {
-		menuManager = new MenuManager();
-
-		MenuManager newMenuManager = new MenuManager("New ...",
-				ToolingKernelActivator.getImageDescriptor("icons/add.png"),
-				NewMenu.MENU_ID);
-		newMenuManager.add(new NewMenu());
-		menuManager.add(newMenuManager);
+		menuManager = new MenuManager("#PopupMenu");
+		// menuManager.setRemoveAllWhenShown(true);
+		// IMenuListener listener = new IMenuListener() {
+		// @Override
+		// public void menuAboutToShow(IMenuManager m) {
+		// ISelection selection = PlatformUI.getWorkbench()
+		// .getActiveWorkbenchWindow().getSelectionService()
+		// .getSelection();
+		// EObject selectedObject = EObjectSelectionUtils
+		// .getFirstElement(selection);
+		//
+		// IContextMenuService.INSTANCE.fillNavigatorContextMenu(m,
+		// selectedObject);
+		// }
+		// };
+		//
+		// final MenuManager newMenuManager = new MenuManager("New ...",
+		// ToolingKernelActivator.getImageDescriptor("icons/add.png"),
+		// NewMenu.MENU_ID);
+		// // newMenuManager.setRemoveAllWhenShown(true);
+		// newMenu = new NewMenu();
+		// newMenuManager.add(newMenu);
+		//
+		// menuManager.addMenuListener(listener);
+
+		// menuManager.add(newMenuManager);
 
 		Separator repositorySection = new Separator("repository");
 		repositorySection.setVisible(true);
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java
index 22f92967904b17931e9d3b60922dbb809532c2e2..d1cd7b88b2d007dddbd48848959700ad89ed5491 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/navigator/NewMenu.java
@@ -26,6 +26,7 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.CompoundContributionItem;
 import org.fortiss.tooling.kernel.interfaces.IPrototypeProvider;
 import org.fortiss.tooling.kernel.internal.util.EObjectSelectionUtils;
+import org.fortiss.tooling.kernel.services.ICommandStackService;
 import org.fortiss.tooling.kernel.services.ICompositorService;
 import org.fortiss.tooling.kernel.services.IModelElementService;
 import org.fortiss.tooling.kernel.services.IPrototypeService;
@@ -42,7 +43,7 @@ import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype;
 public class NewMenu extends CompoundContributionItem {
 
 	/** The menu id. */
-	public static final String MENU_ID = "org.fortiss.tooling.kernel.newmenu";
+	public static final String MENU_ID = "org.fortiss.tooling.kernel.navigator.newmenu";
 
 	/** List of available actions. */
 	private final List<AddPrototypeAction> actions = new ArrayList<AddPrototypeAction>();
@@ -98,10 +99,18 @@ public class NewMenu extends CompoundContributionItem {
 		/** {@inheritDoc} */
 		@Override
 		public void run() {
-			EObject newObject = prototype.getPrototypeCopy();
-			if (ICompositorService.INSTANCE.compose(container, newObject, null)) {
-				// TODO (FH): open editor
-			}
+			ICommandStackService.INSTANCE.runAsCommand(container,
+					new Runnable() {
+
+						@Override
+						public void run() {
+							EObject newObject = prototype.getPrototypeCopy();
+							if (ICompositorService.INSTANCE.compose(container,
+									newObject, null)) {
+								// TODO (FH): open editor
+							}
+						}
+					});
 		}
 
 		/**
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/ICommandStackService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/ICommandStackService.java
index 6f1451f61349a02e4e841e62d0b84d4bd9174e4d..4301b8191702112fa2e3e72e419764e98c24eab9 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/ICommandStackService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/ICommandStackService.java
@@ -17,6 +17,7 @@ $Id$
 +--------------------------------------------------------------------------*/
 package org.fortiss.tooling.kernel.services;
 
+import org.eclipse.emf.ecore.EObject;
 import org.fortiss.tooling.kernel.internal.CommandStackService;
 
 /**
@@ -33,5 +34,6 @@ public interface ICommandStackService {
 	/** Returns the singleton instance of the service. */
 	public static final ICommandStackService INSTANCE = new CommandStackService();
 
-	// TODO (FH): define
+	/** Runs the given Runnable within a emfStore transaction. */
+	void runAsCommand(EObject target, Runnable runner);
 }