diff --git a/examples/org.eclipse.gmf.examples.ocldriven.diagram/custom-src/org/eclipse/gmf/examples/ocldriven/diagram/custom/policies/TOECreationEditPolicyWithCustomReparent.java b/examples/org.eclipse.gmf.examples.ocldriven.diagram/custom-src/org/eclipse/gmf/examples/ocldriven/diagram/custom/policies/TOECreationEditPolicyWithCustomReparent.java
deleted file mode 100644
index 6190fae..0000000
--- a/examples/org.eclipse.gmf.examples.ocldriven.diagram/custom-src/org/eclipse/gmf/examples/ocldriven/diagram/custom/policies/TOECreationEditPolicyWithCustomReparent.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.eclipse.gmf.examples.ocldriven.diagram.custom.policies;
-
-import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.TOEVisualIDRegistry;
-import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
-
-public class TOECreationEditPolicyWithCustomReparent extends CreationEditPolicyWithCustomReparent {
-
-	public TOECreationEditPolicyWithCustomReparent() {
-		super(TOEVisualIDRegistry.TYPED_INSTANCE);
-	}
-
-}
diff --git a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/AllHolderEditPart.java b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/AllHolderEditPart.java
index 653a84e..daa6e12 100644
--- a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/AllHolderEditPart.java
+++ b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/AllHolderEditPart.java
@@ -8,12 +8,13 @@
 import org.eclipse.gef.commands.Command;
 import org.eclipse.gef.editpolicies.NonResizableEditPolicy;
 import org.eclipse.gef.handles.MoveHandle;
-import org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.AllHolderCanonicalEditPolicy;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.AllHolderItemSemanticEditPolicy;
+import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.TOEVisualIDRegistry;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
 import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
 
 /**
  * @generated
@@ -44,7 +45,7 @@
 		super.createDefaultEditPolicies();
 		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new AllHolderItemSemanticEditPolicy());
 		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new AllHolderCanonicalEditPolicy());
-		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new TOECreationEditPolicyWithCustomReparent());
+		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicyWithCustomReparent(TOEVisualIDRegistry.TYPED_INSTANCE));
 		// removeEditPolicy(org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.POPUPBAR_ROLE);
 	}
 
diff --git a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staff2EditPart.java b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staff2EditPart.java
index eab6563..b650223 100644
--- a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staff2EditPart.java
+++ b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staff2EditPart.java
@@ -1,17 +1,17 @@
 package org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts;
 
 import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.DepartmentDepartment_staff2CanonicalEditPolicy;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.DepartmentDepartment_staff2ItemSemanticEditPolicy;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.Messages;
+import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.TOEVisualIDRegistry;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
 import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
 import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
 import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
 
 /**
  * @generated
@@ -52,10 +52,9 @@
 	protected void createDefaultEditPolicies() {
 		super.createDefaultEditPolicies();
 		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DepartmentDepartment_staff2ItemSemanticEditPolicy());
-		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
+		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicyWithCustomReparent(TOEVisualIDRegistry.TYPED_INSTANCE));
 		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
 		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new DepartmentDepartment_staff2CanonicalEditPolicy());
-		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new TOECreationEditPolicyWithCustomReparent());
 	}
 
 	/**
diff --git a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staffEditPart.java b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staffEditPart.java
index 5b441ae..98755e7 100644
--- a/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staffEditPart.java
+++ b/examples/org.eclipse.gmf.examples.ocldriven.diagram/src/org/eclipse/gmf/examples/ocldriven/toe/diagram/edit/parts/DepartmentDepartment_staffEditPart.java
@@ -1,17 +1,17 @@
 package org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.parts;
 
 import org.eclipse.draw2d.IFigure;
-import org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.DepartmentDepartment_staffCanonicalEditPolicy;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.edit.policies.DepartmentDepartment_staffItemSemanticEditPolicy;
 import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.Messages;
+import org.eclipse.gmf.examples.ocldriven.toe.diagram.part.TOEVisualIDRegistry;
 import org.eclipse.gmf.runtime.diagram.ui.editparts.ShapeCompartmentEditPart;
-import org.eclipse.gmf.runtime.diagram.ui.editpolicies.CreationEditPolicy;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.DragDropEditPolicy;
 import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles;
 import org.eclipse.gmf.runtime.diagram.ui.figures.ResizableCompartmentFigure;
 import org.eclipse.gmf.runtime.draw2d.ui.figures.ConstrainedToolbarLayout;
 import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.gmf.tooling.runtime.edit.policies.reparent.CreationEditPolicyWithCustomReparent;
 
 /**
  * @generated
@@ -52,10 +52,9 @@
 	protected void createDefaultEditPolicies() {
 		super.createDefaultEditPolicies();
 		installEditPolicy(EditPolicyRoles.SEMANTIC_ROLE, new DepartmentDepartment_staffItemSemanticEditPolicy());
-		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicy());
+		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new CreationEditPolicyWithCustomReparent(TOEVisualIDRegistry.TYPED_INSTANCE));
 		installEditPolicy(EditPolicyRoles.DRAG_DROP_ROLE, new DragDropEditPolicy());
 		installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new DepartmentDepartment_staffCanonicalEditPolicy());
-		installEditPolicy(EditPolicyRoles.CREATION_ROLE, new TOECreationEditPolicyWithCustomReparent());
 	}
 
 	/**
diff --git a/examples/org.eclipse.gmf.examples.ocldriven/model/toe.gmfgen b/examples/org.eclipse.gmf.examples.ocldriven/model/toe.gmfgen
index d133676..f54f310 100644
--- a/examples/org.eclipse.gmf.examples.ocldriven/model/toe.gmfgen
+++ b/examples/org.eclipse.gmf.examples.ocldriven/model/toe.gmfgen
@@ -18,10 +18,6 @@
     <viewmap
         xsi:type="gmfgen:FigureViewmap"
         figureQualifiedClassName="org.eclipse.draw2d.FreeformLayer"/>
-    <behaviour
-        xsi:type="gmfgen:CustomBehaviour"
-        key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE"
-        editPolicyQualifiedClassName="org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent"/>
     <domainDiagramElement
         href="toe.genmodel#//toe/AllHolder"/>
     <childNodes
@@ -631,10 +627,6 @@
           xsi:type="gmfgen:ParentAssignedViewmap"
           getterName="getFigureDepartmentFigure_content_pane"
           figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
-      <behaviour
-          xsi:type="gmfgen:CustomBehaviour"
-          key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE"
-          editPolicyQualifiedClassName="org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent"/>
     </compartments>
     <compartments
         visualID="7002"
@@ -654,10 +646,6 @@
           xsi:type="gmfgen:ParentAssignedViewmap"
           getterName="getFigureDepartmentFigure_content_pane"
           figureQualifiedClassName="org.eclipse.draw2d.RectangleFigure"/>
-      <behaviour
-          xsi:type="gmfgen:CustomBehaviour"
-          key="org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles.CREATION_ROLE"
-          editPolicyQualifiedClassName="org.eclipse.gmf.examples.ocldriven.diagram.custom.policies.TOECreationEditPolicyWithCustomReparent"/>
     </compartments>
     <palette>
       <groups
