[471114] Regen QVTr CS, CG
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreContainerAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreContainerAssignmentImpl.java
index f5a4a9b..9da213e 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreContainerAssignmentImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreContainerAssignmentImpl.java
@@ -23,6 +23,7 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
 import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
 
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreContainerAssignment;
@@ -101,7 +102,7 @@
 		EStructuralFeature oldEStructuralFeature = eStructuralFeature;
 		eStructuralFeature = newEStructuralFeature;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0, oldEStructuralFeature, eStructuralFeature));
+			eNotify(new ENotificationImpl(this, Notification.SET, CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5, oldEStructuralFeature, eStructuralFeature));
 	}
 
 	/**
@@ -112,7 +113,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				return getEStructuralFeature();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -126,7 +127,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				setEStructuralFeature((EStructuralFeature)newValue);
 				return;
 		}
@@ -141,7 +142,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				setEStructuralFeature((EStructuralFeature)null);
 				return;
 		}
@@ -156,7 +157,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				return eStructuralFeature != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java
index 8f3428c..86c13b5 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcorePropertyAssignmentImpl.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGValuedElementImpl;
 import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcorePropertyAssignment;
 import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
@@ -91,7 +92,7 @@
 		EStructuralFeature oldEStructuralFeature = eStructuralFeature;
 		eStructuralFeature = newEStructuralFeature;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0, oldEStructuralFeature, eStructuralFeature));
+			eNotify(new ENotificationImpl(this, Notification.SET, CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5, oldEStructuralFeature, eStructuralFeature));
 	}
 
 	/**
@@ -102,7 +103,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				return getEStructuralFeature();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -116,7 +117,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				setEStructuralFeature((EStructuralFeature)newValue);
 				return;
 		}
@@ -131,7 +132,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				setEStructuralFeature((EStructuralFeature)null);
 				return;
 		}
@@ -146,7 +147,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0:
+			case CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5:
 				return eStructuralFeature != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java
index 9765915..50a3c72 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/CGEcoreRealizedVariableImpl.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.EClassifier;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.examples.codegen.cgmodel.impl.CGVariableImpl;
 import org.eclipse.ocl.examples.codegen.cgmodel.util.CGModelVisitor;
 import org.eclipse.qvtd.codegen.qvticgmodel.CGEcoreRealizedVariable;
 import org.eclipse.qvtd.codegen.qvticgmodel.QVTiCGModelPackage;
@@ -91,7 +92,7 @@
 		EClassifier oldEClassifier = eClassifier;
 		eClassifier = newEClassifier;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0, oldEClassifier, eClassifier));
+			eNotify(new ENotificationImpl(this, Notification.SET, CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3, oldEClassifier, eClassifier));
 	}
 
 	/**
@@ -102,7 +103,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0:
+			case CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3:
 				return getEClassifier();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -116,7 +117,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0:
+			case CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3:
 				setEClassifier((EClassifier)newValue);
 				return;
 		}
@@ -131,7 +132,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0:
+			case CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3:
 				setEClassifier((EClassifier)null);
 				return;
 		}
@@ -146,7 +147,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0:
+			case CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3:
 				return eClassifier != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
index 7e6a7b0..d3e7d17 100644
--- a/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.codegen/emf-gen/org/eclipse/qvtd/codegen/qvticgmodel/impl/QVTiCGModelPackageImpl.java
@@ -861,13 +861,13 @@
 		cgConnectionVariableEClass = createEClass(1);
 
 		cgEcoreContainerAssignmentEClass = createEClass(2);
-		createEReference(cgEcoreContainerAssignmentEClass, CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0);
+		createEReference(cgEcoreContainerAssignmentEClass, CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5);
 
 		cgEcorePropertyAssignmentEClass = createEClass(3);
-		createEReference(cgEcorePropertyAssignmentEClass, CGPropertyAssignmentImpl.CG_PROPERTY_ASSIGNMENT_FEATURE_COUNT + 0);
+		createEReference(cgEcorePropertyAssignmentEClass, CGValuedElementImpl.CG_VALUED_ELEMENT_FEATURE_COUNT + 5);
 
 		cgEcoreRealizedVariableEClass = createEClass(4);
-		createEReference(cgEcoreRealizedVariableEClass, CGRealizedVariableImpl.CG_REALIZED_VARIABLE_FEATURE_COUNT + 0);
+		createEReference(cgEcoreRealizedVariableEClass, CGVariableImpl.CG_VARIABLE_FEATURE_COUNT + 3);
 
 		cgFunctionEClass = createEClass(5);
 
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/BottomPatternCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/BottomPatternCSImpl.java
index 7f957a6..a787458 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/BottomPatternCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/BottomPatternCSImpl.java
@@ -28,6 +28,7 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 
 import org.eclipse.qvtd.xtext.qvtcorecs.BottomPatternCS;
@@ -120,7 +121,7 @@
 	@Override
 	public EList<EnforcementOperationCS> getOwnedEnforcementOperations() {
 		if (ownedEnforcementOperations == null) {
-			ownedEnforcementOperations = new EObjectContainmentEList<EnforcementOperationCS>(EnforcementOperationCS.class, this, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0);
+			ownedEnforcementOperations = new EObjectContainmentEList<EnforcementOperationCS>(EnforcementOperationCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 		}
 		return ownedEnforcementOperations;
 	}
@@ -133,7 +134,7 @@
 	@Override
 	public EList<RealizedVariableCS> getOwnedRealizedVariables() {
 		if (ownedRealizedVariables == null) {
-			ownedRealizedVariables = new EObjectContainmentEList<RealizedVariableCS>(RealizedVariableCS.class, this, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1);
+			ownedRealizedVariables = new EObjectContainmentEList<RealizedVariableCS>(RealizedVariableCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
 		}
 		return ownedRealizedVariables;
 	}
@@ -146,7 +147,7 @@
 	@Override
 	public EList<PredicateOrAssignmentCS> getOwnedConstraints() {
 		if (ownedConstraints == null) {
-			ownedConstraints = new EObjectContainmentEList<PredicateOrAssignmentCS>(PredicateOrAssignmentCS.class, this, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2);
+			ownedConstraints = new EObjectContainmentEList<PredicateOrAssignmentCS>(PredicateOrAssignmentCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
 		}
 		return ownedConstraints;
 	}
@@ -159,11 +160,11 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ((InternalEList<?>)getOwnedEnforcementOperations()).basicRemove(otherEnd, msgs);
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ((InternalEList<?>)getOwnedRealizedVariables()).basicRemove(otherEnd, msgs);
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ((InternalEList<?>)getOwnedConstraints()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -177,11 +178,11 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return getOwnedEnforcementOperations();
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return getOwnedRealizedVariables();
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return getOwnedConstraints();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -196,15 +197,15 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				getOwnedEnforcementOperations().clear();
 				getOwnedEnforcementOperations().addAll((Collection<? extends EnforcementOperationCS>)newValue);
 				return;
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				getOwnedRealizedVariables().clear();
 				getOwnedRealizedVariables().addAll((Collection<? extends RealizedVariableCS>)newValue);
 				return;
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				getOwnedConstraints().clear();
 				getOwnedConstraints().addAll((Collection<? extends PredicateOrAssignmentCS>)newValue);
 				return;
@@ -220,13 +221,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				getOwnedEnforcementOperations().clear();
 				return;
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				getOwnedRealizedVariables().clear();
 				return;
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				getOwnedConstraints().clear();
 				return;
 		}
@@ -241,11 +242,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ownedEnforcementOperations != null && !ownedEnforcementOperations.isEmpty();
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ownedRealizedVariables != null && !ownedRealizedVariables.isEmpty();
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ownedConstraints != null && !ownedConstraints.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/DomainCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/DomainCSImpl.java
index 394ddeb..bb8ae98 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/DomainCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/DomainCSImpl.java
@@ -23,6 +23,7 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import org.eclipse.ocl.xtext.basecs.impl.NamedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
@@ -146,7 +147,7 @@
 		boolean oldIsCheck = isCheck;
 		isCheck = newIsCheck;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AreaCSImpl.AREA_CS_FEATURE_COUNT + 0, oldIsCheck, isCheck));
+			eNotify(new ENotificationImpl(this, Notification.SET, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2, oldIsCheck, isCheck));
 	}
 
 	/**
@@ -169,7 +170,7 @@
 		boolean oldIsEnforce = isEnforce;
 		isEnforce = newIsEnforce;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AreaCSImpl.AREA_CS_FEATURE_COUNT + 1, oldIsEnforce, isEnforce));
+			eNotify(new ENotificationImpl(this, Notification.SET, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3, oldIsEnforce, isEnforce));
 	}
 
 	/**
@@ -184,7 +185,7 @@
 			direction = (TypedModel)eResolveProxy(oldDirection);
 			if (direction != oldDirection) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AreaCSImpl.AREA_CS_FEATURE_COUNT + 2, oldDirection, direction));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4, oldDirection, direction));
 			}
 		}
 		return direction;
@@ -209,7 +210,7 @@
 		TypedModel oldDirection = direction;
 		direction = newDirection;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AreaCSImpl.AREA_CS_FEATURE_COUNT + 2, oldDirection, direction));
+			eNotify(new ENotificationImpl(this, Notification.SET, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4, oldDirection, direction));
 	}
 
 	/**
@@ -230,11 +231,11 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2:
 				return isIsCheck();
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 1:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3:
 				return isIsEnforce();
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 2:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4:
 				if (resolve) return getDirection();
 				return basicGetDirection();
 		}
@@ -249,13 +250,13 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2:
 				setIsCheck((Boolean)newValue);
 				return;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 1:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3:
 				setIsEnforce((Boolean)newValue);
 				return;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 2:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4:
 				setDirection((TypedModel)newValue);
 				return;
 		}
@@ -270,13 +271,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2:
 				setIsCheck(IS_CHECK_EDEFAULT);
 				return;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 1:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3:
 				setIsEnforce(IS_ENFORCE_EDEFAULT);
 				return;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 2:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4:
 				setDirection((TypedModel)null);
 				return;
 		}
@@ -291,11 +292,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2:
 				return isCheck != IS_CHECK_EDEFAULT;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 1:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3:
 				return isEnforce != IS_ENFORCE_EDEFAULT;
-			case AreaCSImpl.AREA_CS_FEATURE_COUNT + 2:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4:
 				return direction != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/GuardPatternCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/GuardPatternCSImpl.java
index 5f3e2ca..5587f19 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/GuardPatternCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/GuardPatternCSImpl.java
@@ -28,6 +28,7 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 
 import org.eclipse.qvtd.xtext.qvtcorecs.GuardPatternCS;
@@ -95,7 +96,7 @@
 	@Override
 	public EList<PredicateCS> getOwnedPredicates() {
 		if (ownedPredicates == null) {
-			ownedPredicates = new EObjectContainmentEList<PredicateCS>(PredicateCS.class, this, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0);
+			ownedPredicates = new EObjectContainmentEList<PredicateCS>(PredicateCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 		}
 		return ownedPredicates;
 	}
@@ -108,7 +109,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ((InternalEList<?>)getOwnedPredicates()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -122,7 +123,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return getOwnedPredicates();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -137,7 +138,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				getOwnedPredicates().clear();
 				getOwnedPredicates().addAll((Collection<? extends PredicateCS>)newValue);
 				return;
@@ -153,7 +154,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				getOwnedPredicates().clear();
 				return;
 		}
@@ -168,7 +169,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ownedPredicates != null && !ownedPredicates.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/QVTcoreCSPackageImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/QVTcoreCSPackageImpl.java
index ef877dc..8d985fb 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/QVTcoreCSPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/QVTcoreCSPackageImpl.java
@@ -806,25 +806,25 @@
 		createEReference(areaCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		bottomPatternCSEClass = createEClass(1);
-		createEReference(bottomPatternCSEClass, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0);
-		createEReference(bottomPatternCSEClass, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 1);
-		createEReference(bottomPatternCSEClass, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 2);
+		createEReference(bottomPatternCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(bottomPatternCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(bottomPatternCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
 
 		directionCSEClass = createEClass(2);
 		createEReference(directionCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 0);
 		createEReference(directionCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		domainCSEClass = createEClass(3);
-		createEAttribute(domainCSEClass, AreaCSImpl.AREA_CS_FEATURE_COUNT + 0);
-		createEAttribute(domainCSEClass, AreaCSImpl.AREA_CS_FEATURE_COUNT + 1);
-		createEReference(domainCSEClass, AreaCSImpl.AREA_CS_FEATURE_COUNT + 2);
+		createEAttribute(domainCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEAttribute(domainCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 3);
+		createEReference(domainCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 4);
 
 		enforcementOperationCSEClass = createEClass(4);
 		createEAttribute(enforcementOperationCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		createEReference(enforcementOperationCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		guardPatternCSEClass = createEClass(5);
-		createEReference(guardPatternCSEClass, PatternCSImpl.PATTERN_CS_FEATURE_COUNT + 0);
+		createEReference(guardPatternCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		mappingCSEClass = createEClass(6);
 		createEAttribute(mappingCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 0);
@@ -869,7 +869,7 @@
 		createEReference(transformationCSEClass, AbstractTransformationCSImpl.ABSTRACT_TRANSFORMATION_CS_FEATURE_COUNT + 1);
 
 		unrealizedVariableCSEClass = createEClass(16);
-		createEReference(unrealizedVariableCSEClass, RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0);
+		createEReference(unrealizedVariableCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0);
 	}
 
 	/**
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/UnrealizedVariableCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/UnrealizedVariableCSImpl.java
index 02574e7..a37adcb 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/UnrealizedVariableCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/emf-gen/org/eclipse/qvtd/xtext/qvtcorecs/impl/UnrealizedVariableCSImpl.java
@@ -24,6 +24,7 @@
 
 import org.eclipse.jdt.annotation.NonNull;
 
+import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
@@ -103,7 +104,7 @@
 		ExpCS oldOwnedInitExpression = ownedInitExpression;
 		ownedInitExpression = newOwnedInitExpression;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0, oldOwnedInitExpression, newOwnedInitExpression);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, oldOwnedInitExpression, newOwnedInitExpression);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -119,14 +120,14 @@
 		if (newOwnedInitExpression != ownedInitExpression) {
 			NotificationChain msgs = null;
 			if (ownedInitExpression != null)
-				msgs = ((InternalEObject)ownedInitExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0), null, msgs);
+				msgs = ((InternalEObject)ownedInitExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0), null, msgs);
 			if (newOwnedInitExpression != null)
-				msgs = ((InternalEObject)newOwnedInitExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0), null, msgs);
+				msgs = ((InternalEObject)newOwnedInitExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0), null, msgs);
 			msgs = basicSetOwnedInitExpression(newOwnedInitExpression, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0, newOwnedInitExpression, newOwnedInitExpression));
+			eNotify(new ENotificationImpl(this, Notification.SET, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, newOwnedInitExpression, newOwnedInitExpression));
 	}
 
 	/**
@@ -137,7 +138,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				return basicSetOwnedInitExpression(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -151,7 +152,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getOwnedInitExpression();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -165,7 +166,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setOwnedInitExpression((ExpCS)newValue);
 				return;
 		}
@@ -180,7 +181,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setOwnedInitExpression((ExpCS)null);
 				return;
 		}
@@ -195,7 +196,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case RealizeableVariableCSImpl.REALIZEABLE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ownedInitExpression != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AddStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AddStatementCSImpl.java
index 532f6ab..5b8f1fb 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AddStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AddStatementCSImpl.java
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.qvtd.pivot.qvtimperative.ConnectionVariable;
@@ -116,7 +117,7 @@
 	@Override
 	public EList<PathNameCS> getObservedProperties() {
 		if (observedProperties == null) {
-			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0);
+			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return observedProperties;
 	}
@@ -140,7 +141,7 @@
 		ExpCS oldOwnedExpression = ownedExpression;
 		ownedExpression = newOwnedExpression;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1, oldOwnedExpression, newOwnedExpression);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldOwnedExpression, newOwnedExpression);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -156,14 +157,14 @@
 		if (newOwnedExpression != ownedExpression) {
 			NotificationChain msgs = null;
 			if (ownedExpression != null)
-				msgs = ((InternalEObject)ownedExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)ownedExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			if (newOwnedExpression != null)
-				msgs = ((InternalEObject)newOwnedExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)newOwnedExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			msgs = basicSetOwnedExpression(newOwnedExpression, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1, newOwnedExpression, newOwnedExpression));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, newOwnedExpression, newOwnedExpression));
 	}
 
 	/**
@@ -178,7 +179,7 @@
 			targetVariable = (ConnectionVariable)eResolveProxy(oldTargetVariable);
 			if (targetVariable != oldTargetVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, oldTargetVariable, targetVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldTargetVariable, targetVariable));
 			}
 		}
 		return targetVariable;
@@ -203,7 +204,7 @@
 		ConnectionVariable oldTargetVariable = targetVariable;
 		targetVariable = newTargetVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, oldTargetVariable, targetVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldTargetVariable, targetVariable));
 	}
 
 	/**
@@ -214,9 +215,9 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ((InternalEList<?>)getObservedProperties()).basicRemove(otherEnd, msgs);
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return basicSetOwnedExpression(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -230,11 +231,11 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getObservedProperties();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return getOwnedExpression();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				if (resolve) return getTargetVariable();
 				return basicGetTargetVariable();
 		}
@@ -250,14 +251,14 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				getObservedProperties().addAll((Collection<? extends PathNameCS>)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedExpression((ExpCS)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setTargetVariable((ConnectionVariable)newValue);
 				return;
 		}
@@ -272,13 +273,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedExpression((ExpCS)null);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setTargetVariable((ConnectionVariable)null);
 				return;
 		}
@@ -293,11 +294,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return observedProperties != null && !observedProperties.isEmpty();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ownedExpression != null;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return targetVariable != null;
 		}
 		return super.eIsSet(featureID);
@@ -312,7 +313,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (derivedFeatureID) {
-				case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
@@ -328,7 +329,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (baseFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AppendParameterBindingCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AppendParameterBindingCSImpl.java
index 01e1dcd..fc278ee 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AppendParameterBindingCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/AppendParameterBindingCSImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.pivot.qvtimperative.AppendParameter;
 import org.eclipse.qvtd.pivot.qvtimperative.ConnectionVariable;
 import org.eclipse.qvtd.xtext.qvtimperativecs.AppendParameterBindingCS;
@@ -101,7 +102,7 @@
 			value = (ConnectionVariable)eResolveProxy(oldValue);
 			if (value != oldValue) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 			}
 		}
 		return value;
@@ -126,7 +127,7 @@
 		ConnectionVariable oldValue = value;
 		value = newValue;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 	}
 
 	/**
@@ -141,7 +142,7 @@
 			referredVariable = (AppendParameter)eResolveProxy(oldReferredVariable);
 			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 			}
 		}
 		return referredVariable;
@@ -166,7 +167,7 @@
 		AppendParameter oldReferredVariable = referredVariable;
 		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -177,10 +178,10 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				if (resolve) return getValue();
 				return basicGetValue();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				if (resolve) return getReferredVariable();
 				return basicGetReferredVariable();
 		}
@@ -195,10 +196,10 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((ConnectionVariable)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((AppendParameter)newValue);
 				return;
 		}
@@ -213,10 +214,10 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((ConnectionVariable)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((AppendParameter)null);
 				return;
 		}
@@ -231,9 +232,9 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return value != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				return referredVariable != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/CheckStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/CheckStatementCSImpl.java
index 12a1cc1..df5228d 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/CheckStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/CheckStatementCSImpl.java
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.qvtd.xtext.qvtimperativecs.CheckStatementCS;
@@ -102,7 +103,7 @@
 	@Override
 	public EList<PathNameCS> getObservedProperties() {
 		if (observedProperties == null) {
-			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0);
+			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return observedProperties;
 	}
@@ -126,7 +127,7 @@
 		ExpCS oldOwnedCondition = ownedCondition;
 		ownedCondition = newOwnedCondition;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1, oldOwnedCondition, newOwnedCondition);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldOwnedCondition, newOwnedCondition);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -142,14 +143,14 @@
 		if (newOwnedCondition != ownedCondition) {
 			NotificationChain msgs = null;
 			if (ownedCondition != null)
-				msgs = ((InternalEObject)ownedCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)ownedCondition).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			if (newOwnedCondition != null)
-				msgs = ((InternalEObject)newOwnedCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)newOwnedCondition).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			msgs = basicSetOwnedCondition(newOwnedCondition, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1, newOwnedCondition, newOwnedCondition));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, newOwnedCondition, newOwnedCondition));
 	}
 
 	/**
@@ -160,9 +161,9 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ((InternalEList<?>)getObservedProperties()).basicRemove(otherEnd, msgs);
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return basicSetOwnedCondition(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -176,9 +177,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getObservedProperties();
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return getOwnedCondition();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -193,11 +194,11 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				getObservedProperties().addAll((Collection<? extends PathNameCS>)newValue);
 				return;
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedCondition((ExpCS)newValue);
 				return;
 		}
@@ -212,10 +213,10 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				return;
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedCondition((ExpCS)null);
 				return;
 		}
@@ -230,9 +231,9 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return observedProperties != null && !observedProperties.isEmpty();
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ownedCondition != null;
 		}
 		return super.eIsSet(featureID);
@@ -247,7 +248,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (derivedFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
@@ -263,7 +264,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (baseFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/DeclareStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/DeclareStatementCSImpl.java
index 4ee1697..dd45c86 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/DeclareStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/DeclareStatementCSImpl.java
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
@@ -320,7 +321,7 @@
 		}
 		if (baseClass == ObservableStatementCS.class) {
 			switch (derivedFeatureID) {
-				case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
@@ -341,7 +342,7 @@
 		}
 		if (baseClass == ObservableStatementCS.class) {
 			switch (baseFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterBindingCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterBindingCSImpl.java
index 8882535..42f1110 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterBindingCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterBindingCSImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.pivot.qvtimperative.ConnectionVariable;
 import org.eclipse.qvtd.pivot.qvtimperative.GuardParameter;
 import org.eclipse.qvtd.xtext.qvtimperativecs.GuardParameterBindingCS;
@@ -122,7 +123,7 @@
 			value = (ConnectionVariable)eResolveProxy(oldValue);
 			if (value != oldValue) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 			}
 		}
 		return value;
@@ -147,7 +148,7 @@
 		ConnectionVariable oldValue = value;
 		value = newValue;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 	}
 
 	/**
@@ -162,7 +163,7 @@
 			referredVariable = (GuardParameter)eResolveProxy(oldReferredVariable);
 			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 			}
 		}
 		return referredVariable;
@@ -187,7 +188,7 @@
 		GuardParameter oldReferredVariable = referredVariable;
 		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -210,7 +211,7 @@
 		boolean oldIsCheck = isCheck;
 		isCheck = newIsCheck;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2, oldIsCheck, isCheck));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, oldIsCheck, isCheck));
 	}
 
 	/**
@@ -231,13 +232,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				if (resolve) return getValue();
 				return basicGetValue();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				if (resolve) return getReferredVariable();
 				return basicGetReferredVariable();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isIsCheck();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -251,13 +252,13 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((ConnectionVariable)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((GuardParameter)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck((Boolean)newValue);
 				return;
 		}
@@ -272,13 +273,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((ConnectionVariable)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((GuardParameter)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck(IS_CHECK_EDEFAULT);
 				return;
 		}
@@ -293,11 +294,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return value != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				return referredVariable != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isCheck != IS_CHECK_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterCSImpl.java
index d39dd2a..0ffffc2 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/GuardParameterCSImpl.java
@@ -24,6 +24,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 
 import org.eclipse.ocl.pivot.Property;
+import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTypedModel;
@@ -108,7 +109,7 @@
 			referredTypedModel = (ImperativeTypedModel)eResolveProxy(oldReferredTypedModel);
 			if (referredTypedModel != oldReferredTypedModel) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
 			}
 		}
 		return referredTypedModel;
@@ -133,7 +134,7 @@
 		ImperativeTypedModel oldReferredTypedModel = referredTypedModel;
 		referredTypedModel = newReferredTypedModel;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
 	}
 
 	/**
@@ -148,7 +149,7 @@
 			successProperty = (Property)eResolveProxy(oldSuccessProperty);
 			if (successProperty != oldSuccessProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1, oldSuccessProperty, successProperty));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1, oldSuccessProperty, successProperty));
 			}
 		}
 		return successProperty;
@@ -173,7 +174,7 @@
 		Property oldSuccessProperty = successProperty;
 		successProperty = newSuccessProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1, oldSuccessProperty, successProperty));
+			eNotify(new ENotificationImpl(this, Notification.SET, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1, oldSuccessProperty, successProperty));
 	}
 
 	/**
@@ -184,10 +185,10 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				if (resolve) return getReferredTypedModel();
 				return basicGetReferredTypedModel();
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1:
 				if (resolve) return getSuccessProperty();
 				return basicGetSuccessProperty();
 		}
@@ -202,10 +203,10 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setReferredTypedModel((ImperativeTypedModel)newValue);
 				return;
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1:
 				setSuccessProperty((Property)newValue);
 				return;
 		}
@@ -220,10 +221,10 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setReferredTypedModel((ImperativeTypedModel)null);
 				return;
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1:
 				setSuccessProperty((Property)null);
 				return;
 		}
@@ -238,9 +239,9 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				return referredTypedModel != null;
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1:
 				return successProperty != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/LoopParameterBindingCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/LoopParameterBindingCSImpl.java
index bb31b7b..48be2c1 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/LoopParameterBindingCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/LoopParameterBindingCSImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.pivot.qvtimperative.GuardParameter;
 import org.eclipse.qvtd.pivot.qvtimperative.LoopVariable;
 import org.eclipse.qvtd.xtext.qvtimperativecs.LoopParameterBindingCS;
@@ -122,7 +123,7 @@
 			value = (LoopVariable)eResolveProxy(oldValue);
 			if (value != oldValue) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 			}
 		}
 		return value;
@@ -147,7 +148,7 @@
 		LoopVariable oldValue = value;
 		value = newValue;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldValue, value));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldValue, value));
 	}
 
 	/**
@@ -162,7 +163,7 @@
 			referredVariable = (GuardParameter)eResolveProxy(oldReferredVariable);
 			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 			}
 		}
 		return referredVariable;
@@ -187,7 +188,7 @@
 		GuardParameter oldReferredVariable = referredVariable;
 		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -210,7 +211,7 @@
 		boolean oldIsCheck = isCheck;
 		isCheck = newIsCheck;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2, oldIsCheck, isCheck));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, oldIsCheck, isCheck));
 	}
 
 	/**
@@ -231,13 +232,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				if (resolve) return getValue();
 				return basicGetValue();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				if (resolve) return getReferredVariable();
 				return basicGetReferredVariable();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isIsCheck();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -251,13 +252,13 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((LoopVariable)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((GuardParameter)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck((Boolean)newValue);
 				return;
 		}
@@ -272,13 +273,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setValue((LoopVariable)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((GuardParameter)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck(IS_CHECK_EDEFAULT);
 				return;
 		}
@@ -293,11 +294,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return value != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				return referredVariable != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isCheck != IS_CHECK_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingCallCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingCallCSImpl.java
index 08a6997..a1dff6e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingCallCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingCallCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.pivot.qvtimperative.Mapping;
@@ -166,7 +167,7 @@
 		boolean oldIsInstall = isInstall;
 		isInstall = newIsInstall;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0, oldIsInstall, isInstall));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0, oldIsInstall, isInstall));
 	}
 
 	/**
@@ -189,7 +190,7 @@
 		boolean oldIsInvoke = isInvoke;
 		isInvoke = newIsInvoke;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1, oldIsInvoke, isInvoke));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldIsInvoke, isInvoke));
 	}
 
 	/**
@@ -212,7 +213,7 @@
 		Mapping oldReferredMapping = referredMapping;
 		referredMapping = newReferredMapping;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4, oldReferredMapping, referredMapping));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4, oldReferredMapping, referredMapping));
 	}
 
 	/**
@@ -233,7 +234,7 @@
 	@Override
 	public EList<MappingParameterBindingCS> getOwnedBindings() {
 		if (ownedBindings == null) {
-			ownedBindings = new EObjectContainmentWithInverseEList<MappingParameterBindingCS>(MappingParameterBindingCS.class, this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, ExpCSImpl.EXP_CS_FEATURE_COUNT + 0);
+			ownedBindings = new EObjectContainmentWithInverseEList<MappingParameterBindingCS>(MappingParameterBindingCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, ExpCSImpl.EXP_CS_FEATURE_COUNT + 0);
 		}
 		return ownedBindings;
 	}
@@ -257,7 +258,7 @@
 		PathNameCS oldOwnedPathName = ownedPathName;
 		ownedPathName = newOwnedPathName;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3, oldOwnedPathName, newOwnedPathName);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, oldOwnedPathName, newOwnedPathName);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -273,14 +274,14 @@
 		if (newOwnedPathName != ownedPathName) {
 			NotificationChain msgs = null;
 			if (ownedPathName != null)
-				msgs = ((InternalEObject)ownedPathName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3), null, msgs);
+				msgs = ((InternalEObject)ownedPathName).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3), null, msgs);
 			if (newOwnedPathName != null)
-				msgs = ((InternalEObject)newOwnedPathName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3), null, msgs);
+				msgs = ((InternalEObject)newOwnedPathName).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3), null, msgs);
 			msgs = basicSetOwnedPathName(newOwnedPathName, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3, newOwnedPathName, newOwnedPathName));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, newOwnedPathName, newOwnedPathName));
 	}
 
 	/**
@@ -292,7 +293,7 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedBindings()).basicAdd(otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
@@ -306,9 +307,9 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ((InternalEList<?>)getOwnedBindings()).basicRemove(otherEnd, msgs);
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return basicSetOwnedPathName(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -322,15 +323,15 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return isIsInstall();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return isIsInvoke();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return getOwnedBindings();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return getOwnedPathName();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return getReferredMapping();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -345,20 +346,20 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				setIsInstall((Boolean)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIsInvoke((Boolean)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				getOwnedBindings().clear();
 				getOwnedBindings().addAll((Collection<? extends MappingParameterBindingCS>)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setOwnedPathName((PathNameCS)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setReferredMapping((Mapping)newValue);
 				return;
 		}
@@ -373,19 +374,19 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				setIsInstall(IS_INSTALL_EDEFAULT);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIsInvoke(IS_INVOKE_EDEFAULT);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				getOwnedBindings().clear();
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setOwnedPathName((PathNameCS)null);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setReferredMapping((Mapping)null);
 				return;
 		}
@@ -400,15 +401,15 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return isInstall != IS_INSTALL_EDEFAULT;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return isInvoke != IS_INVOKE_EDEFAULT;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ownedBindings != null && !ownedBindings.isEmpty();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ownedPathName != null;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return referredMapping != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingLoopCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingLoopCSImpl.java
index 30e16c6..a822a0e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingLoopCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingLoopCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.ocl.xtext.essentialoclcs.VariableCS;
@@ -124,7 +125,7 @@
 	@Override
 	public EList<PathNameCS> getObservedProperties() {
 		if (observedProperties == null) {
-			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0);
+			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return observedProperties;
 	}
@@ -148,7 +149,7 @@
 		VariableCS oldOwnedIterator = ownedIterator;
 		ownedIterator = newOwnedIterator;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1, oldOwnedIterator, newOwnedIterator);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldOwnedIterator, newOwnedIterator);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -164,14 +165,14 @@
 		if (newOwnedIterator != ownedIterator) {
 			NotificationChain msgs = null;
 			if (ownedIterator != null)
-				msgs = ((InternalEObject)ownedIterator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)ownedIterator).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			if (newOwnedIterator != null)
-				msgs = ((InternalEObject)newOwnedIterator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)newOwnedIterator).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1), null, msgs);
 			msgs = basicSetOwnedIterator(newOwnedIterator, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1, newOwnedIterator, newOwnedIterator));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, newOwnedIterator, newOwnedIterator));
 	}
 
 	/**
@@ -193,7 +194,7 @@
 		ExpCS oldOwnedInExpression = ownedInExpression;
 		ownedInExpression = newOwnedInExpression;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, oldOwnedInExpression, newOwnedInExpression);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldOwnedInExpression, newOwnedInExpression);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -209,14 +210,14 @@
 		if (newOwnedInExpression != ownedInExpression) {
 			NotificationChain msgs = null;
 			if (ownedInExpression != null)
-				msgs = ((InternalEObject)ownedInExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2), null, msgs);
+				msgs = ((InternalEObject)ownedInExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2), null, msgs);
 			if (newOwnedInExpression != null)
-				msgs = ((InternalEObject)newOwnedInExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2), null, msgs);
+				msgs = ((InternalEObject)newOwnedInExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2), null, msgs);
 			msgs = basicSetOwnedInExpression(newOwnedInExpression, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, newOwnedInExpression, newOwnedInExpression));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, newOwnedInExpression, newOwnedInExpression));
 	}
 
 	/**
@@ -227,7 +228,7 @@
 	@Override
 	public EList<MappingStatementCS> getOwnedMappingStatements() {
 		if (ownedMappingStatements == null) {
-			ownedMappingStatements = new EObjectContainmentEList<MappingStatementCS>(MappingStatementCS.class, this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3);
+			ownedMappingStatements = new EObjectContainmentEList<MappingStatementCS>(MappingStatementCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
 		}
 		return ownedMappingStatements;
 	}
@@ -240,13 +241,13 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ((InternalEList<?>)getObservedProperties()).basicRemove(otherEnd, msgs);
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return basicSetOwnedIterator(null, msgs);
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return basicSetOwnedInExpression(null, msgs);
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ((InternalEList<?>)getOwnedMappingStatements()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -260,13 +261,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getObservedProperties();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return getOwnedIterator();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return getOwnedInExpression();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return getOwnedMappingStatements();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -281,17 +282,17 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				getObservedProperties().addAll((Collection<? extends PathNameCS>)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedIterator((VariableCS)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setOwnedInExpression((ExpCS)newValue);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				getOwnedMappingStatements().clear();
 				getOwnedMappingStatements().addAll((Collection<? extends MappingStatementCS>)newValue);
 				return;
@@ -307,16 +308,16 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setOwnedIterator((VariableCS)null);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setOwnedInExpression((ExpCS)null);
 				return;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				getOwnedMappingStatements().clear();
 				return;
 		}
@@ -331,13 +332,13 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return observedProperties != null && !observedProperties.isEmpty();
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return ownedIterator != null;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return ownedInExpression != null;
-			case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ownedMappingStatements != null && !ownedMappingStatements.isEmpty();
 		}
 		return super.eIsSet(featureID);
@@ -352,7 +353,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (derivedFeatureID) {
-				case MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
@@ -368,7 +369,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == ObservableStatementCS.class) {
 			switch (baseFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingParameterBindingCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingParameterBindingCSImpl.java
index 0a9c34e..70c7d8e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingParameterBindingCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/MappingParameterBindingCSImpl.java
@@ -20,6 +20,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.xtext.qvtimperativecs.MappingCallCS;
 import org.eclipse.qvtd.xtext.qvtimperativecs.MappingParameterBindingCS;
@@ -102,7 +103,7 @@
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
 			if (newOwningMappingCall != null)
-				msgs = ((InternalEObject)newOwningMappingCall).eInverseAdd(this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, MappingCallCS.class, msgs);
+				msgs = ((InternalEObject)newOwningMappingCall).eInverseAdd(this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, MappingCallCS.class, msgs);
 			msgs = basicSetOwningMappingCall(newOwningMappingCall, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
@@ -149,7 +150,7 @@
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 0:
-				return eInternalContainer().eInverseRemove(this, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2, MappingCallCS.class, msgs);
+				return eInternalContainer().eInverseRemove(this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, MappingCallCS.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/NewStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/NewStatementCSImpl.java
index 115a7ae..750ca8a 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/NewStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/NewStatementCSImpl.java
@@ -26,6 +26,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
@@ -383,7 +384,7 @@
 		}
 		if (baseClass == ObservableStatementCS.class) {
 			switch (derivedFeatureID) {
-				case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0: return StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0;
+				case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
@@ -404,7 +405,7 @@
 		}
 		if (baseClass == ObservableStatementCS.class) {
 			switch (baseFeatureID) {
-				case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0: return TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
+				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/ObservableStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/ObservableStatementCSImpl.java
index 307fe77..f533ee5 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/ObservableStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/ObservableStatementCSImpl.java
@@ -23,6 +23,7 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.ocl.xtext.basecs.PathNameCS;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.qvtd.xtext.qvtimperativecs.ObservableStatementCS;
 import org.eclipse.qvtd.xtext.qvtimperativecs.QVTimperativeCSPackage;
 
@@ -85,7 +86,7 @@
 	@Override
 	public EList<PathNameCS> getObservedProperties() {
 		if (observedProperties == null) {
-			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0);
+			observedProperties = new EObjectContainmentEList<PathNameCS>(PathNameCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return observedProperties;
 	}
@@ -98,7 +99,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ((InternalEList<?>)getObservedProperties()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -112,7 +113,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getObservedProperties();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -127,7 +128,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				getObservedProperties().addAll((Collection<? extends PathNameCS>)newValue);
 				return;
@@ -143,7 +144,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getObservedProperties().clear();
 				return;
 		}
@@ -158,7 +159,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return observedProperties != null && !observedProperties.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/QVTimperativeCSPackageImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/QVTimperativeCSPackageImpl.java
index ba69a5a..a6bb64e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/QVTimperativeCSPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/QVTimperativeCSPackageImpl.java
@@ -17,6 +17,7 @@
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.eclipse.ocl.pivot.PivotPackage;
 import org.eclipse.ocl.xtext.basecs.BaseCSPackage;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.NamedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.RootPackageCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
@@ -1203,12 +1204,12 @@
 
 		// Create classes and their features
 		addStatementCSEClass = createEClass(0);
-		createEReference(addStatementCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1);
-		createEReference(addStatementCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(addStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(addStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
 
 		appendParameterBindingCSEClass = createEClass(1);
-		createEReference(appendParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0);
-		createEReference(appendParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1);
+		createEReference(appendParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1);
+		createEReference(appendParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2);
 
 		appendParameterCSEClass = createEClass(2);
 
@@ -1219,7 +1220,7 @@
 		createEAttribute(bufferStatementCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 3);
 
 		checkStatementCSEClass = createEClass(4);
-		createEReference(checkStatementCSEClass, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(checkStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		declareStatementCSEClass = createEClass(5);
 		createEReference(declareStatementCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1);
@@ -1231,18 +1232,18 @@
 		createEAttribute(directionCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 2);
 
 		guardParameterBindingCSEClass = createEClass(7);
-		createEReference(guardParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0);
-		createEReference(guardParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1);
-		createEAttribute(guardParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2);
+		createEReference(guardParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1);
+		createEReference(guardParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2);
+		createEAttribute(guardParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
 
 		guardParameterCSEClass = createEClass(8);
-		createEReference(guardParameterCSEClass, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0);
-		createEReference(guardParameterCSEClass, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 1);
+		createEReference(guardParameterCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0);
+		createEReference(guardParameterCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		loopParameterBindingCSEClass = createEClass(9);
-		createEReference(loopParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0);
-		createEReference(loopParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1);
-		createEAttribute(loopParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2);
+		createEReference(loopParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1);
+		createEReference(loopParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2);
+		createEAttribute(loopParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
 
 		mappingCSEClass = createEClass(10);
 		createEAttribute(mappingCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 0);
@@ -1253,16 +1254,16 @@
 		createEAttribute(mappingCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 5);
 
 		mappingCallCSEClass = createEClass(11);
-		createEAttribute(mappingCallCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 0);
-		createEAttribute(mappingCallCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1);
-		createEReference(mappingCallCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2);
-		createEReference(mappingCallCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3);
-		createEReference(mappingCallCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 4);
+		createEAttribute(mappingCallCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
+		createEAttribute(mappingCallCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(mappingCallCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(mappingCallCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
+		createEReference(mappingCallCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4);
 
 		mappingLoopCSEClass = createEClass(12);
-		createEReference(mappingLoopCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 1);
-		createEReference(mappingLoopCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 2);
-		createEReference(mappingLoopCSEClass, MappingStatementCSImpl.MAPPING_STATEMENT_CS_FEATURE_COUNT + 3);
+		createEReference(mappingLoopCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(mappingLoopCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(mappingLoopCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
 
 		mappingParameterCSEClass = createEClass(13);
 
@@ -1277,7 +1278,7 @@
 		createEReference(newStatementCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 3);
 
 		observableStatementCSEClass = createEClass(17);
-		createEReference(observableStatementCSEClass, StatementCSImpl.STATEMENT_CS_FEATURE_COUNT + 0);
+		createEReference(observableStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 
 		paramDeclarationCSEClass = createEClass(18);
 
@@ -1289,19 +1290,19 @@
 		createEAttribute(queryCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 5);
 
 		setStatementCSEClass = createEClass(20);
-		createEReference(setStatementCSEClass, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0);
-		createEReference(setStatementCSEClass, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1);
-		createEReference(setStatementCSEClass, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2);
-		createEAttribute(setStatementCSEClass, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3);
-		createEAttribute(setStatementCSEClass, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4);
+		createEReference(setStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEReference(setStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(setStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
+		createEAttribute(setStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4);
+		createEAttribute(setStatementCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5);
 
 		simpleParameterBindingCSEClass = createEClass(21);
-		createEReference(simpleParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0);
-		createEReference(simpleParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1);
-		createEAttribute(simpleParameterBindingCSEClass, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2);
+		createEReference(simpleParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1);
+		createEReference(simpleParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2);
+		createEAttribute(simpleParameterBindingCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
 
 		simpleParameterCSEClass = createEClass(22);
-		createEReference(simpleParameterCSEClass, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0);
+		createEReference(simpleParameterCSEClass, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0);
 
 		statementCSEClass = createEClass(23);
 
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SetStatementCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SetStatementCSImpl.java
index 11e5adb..95369c6 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SetStatementCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SetStatementCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.pivot.Property;
 import org.eclipse.ocl.pivot.VariableDeclaration;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.qvtd.xtext.qvtimperativecs.QVTimperativeCSPackage;
@@ -156,7 +157,7 @@
 			referredProperty = (Property)eResolveProxy(oldReferredProperty);
 			if (referredProperty != oldReferredProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0, oldReferredProperty, referredProperty));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldReferredProperty, referredProperty));
 			}
 		}
 		return referredProperty;
@@ -181,7 +182,7 @@
 		Property oldReferredProperty = referredProperty;
 		referredProperty = newReferredProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0, oldReferredProperty, referredProperty));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldReferredProperty, referredProperty));
 	}
 
 	/**
@@ -196,7 +197,7 @@
 			referredVariable = (VariableDeclaration)eResolveProxy(oldReferredVariable);
 			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 			}
 		}
 		return referredVariable;
@@ -221,7 +222,7 @@
 		VariableDeclaration oldReferredVariable = referredVariable;
 		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -243,7 +244,7 @@
 		ExpCS oldOwnedExpression = ownedExpression;
 		ownedExpression = newOwnedExpression;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2, oldOwnedExpression, newOwnedExpression);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, oldOwnedExpression, newOwnedExpression);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -259,14 +260,14 @@
 		if (newOwnedExpression != ownedExpression) {
 			NotificationChain msgs = null;
 			if (ownedExpression != null)
-				msgs = ((InternalEObject)ownedExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2), null, msgs);
+				msgs = ((InternalEObject)ownedExpression).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3), null, msgs);
 			if (newOwnedExpression != null)
-				msgs = ((InternalEObject)newOwnedExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2), null, msgs);
+				msgs = ((InternalEObject)newOwnedExpression).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3), null, msgs);
 			msgs = basicSetOwnedExpression(newOwnedExpression, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2, newOwnedExpression, newOwnedExpression));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, newOwnedExpression, newOwnedExpression));
 	}
 
 	/**
@@ -289,7 +290,7 @@
 		boolean oldIsNotify = isNotify;
 		isNotify = newIsNotify;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3, oldIsNotify, isNotify));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4, oldIsNotify, isNotify));
 	}
 
 	/**
@@ -312,7 +313,7 @@
 		boolean oldIsPartial = isPartial;
 		isPartial = newIsPartial;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4, oldIsPartial, isPartial));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5, oldIsPartial, isPartial));
 	}
 
 	/**
@@ -333,7 +334,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return basicSetOwnedExpression(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -347,17 +348,17 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				if (resolve) return getReferredProperty();
 				return basicGetReferredProperty();
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				if (resolve) return getReferredVariable();
 				return basicGetReferredVariable();
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return getOwnedExpression();
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return isIsNotify();
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				return isIsPartial();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -371,19 +372,19 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setReferredProperty((Property)newValue);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setReferredVariable((VariableDeclaration)newValue);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setOwnedExpression((ExpCS)newValue);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setIsNotify((Boolean)newValue);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				setIsPartial((Boolean)newValue);
 				return;
 		}
@@ -398,19 +399,19 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setReferredProperty((Property)null);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setReferredVariable((VariableDeclaration)null);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setOwnedExpression((ExpCS)null);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setIsNotify(IS_NOTIFY_EDEFAULT);
 				return;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				setIsPartial(IS_PARTIAL_EDEFAULT);
 				return;
 		}
@@ -425,15 +426,15 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return referredProperty != null;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return referredVariable != null;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return ownedExpression != null;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return isNotify != IS_NOTIFY_EDEFAULT;
-			case ObservableStatementCSImpl.OBSERVABLE_STATEMENT_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				return isPartial != IS_PARTIAL_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterBindingCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterBindingCSImpl.java
index 1f1c38a..4b862af 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterBindingCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterBindingCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.pivot.qvtimperative.SimpleParameter;
 import org.eclipse.qvtd.xtext.qvtimperativecs.QVTimperativeCSPackage;
 import org.eclipse.qvtd.xtext.qvtimperativecs.SimpleParameterBindingCS;
@@ -130,7 +131,7 @@
 		ExpCS oldOwnedValue = ownedValue;
 		ownedValue = newOwnedValue;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, oldOwnedValue, newOwnedValue);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, oldOwnedValue, newOwnedValue);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -146,14 +147,14 @@
 		if (newOwnedValue != ownedValue) {
 			NotificationChain msgs = null;
 			if (ownedValue != null)
-				msgs = ((InternalEObject)ownedValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0), null, msgs);
+				msgs = ((InternalEObject)ownedValue).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ExpCSImpl.EXP_CS_FEATURE_COUNT + 1), null, msgs);
 			if (newOwnedValue != null)
-				msgs = ((InternalEObject)newOwnedValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0), null, msgs);
+				msgs = ((InternalEObject)newOwnedValue).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ExpCSImpl.EXP_CS_FEATURE_COUNT + 1), null, msgs);
 			msgs = basicSetOwnedValue(newOwnedValue, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0, newOwnedValue, newOwnedValue));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 1, newOwnedValue, newOwnedValue));
 	}
 
 	/**
@@ -168,7 +169,7 @@
 			referredVariable = (SimpleParameter)eResolveProxy(oldReferredVariable);
 			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 			}
 		}
 		return referredVariable;
@@ -193,7 +194,7 @@
 		SimpleParameter oldReferredVariable = referredVariable;
 		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1, oldReferredVariable, referredVariable));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 2, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -216,7 +217,7 @@
 		boolean oldIsCheck = isCheck;
 		isCheck = newIsCheck;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2, oldIsCheck, isCheck));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, oldIsCheck, isCheck));
 	}
 
 	/**
@@ -237,7 +238,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return basicSetOwnedValue(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -251,12 +252,12 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return getOwnedValue();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				if (resolve) return getReferredVariable();
 				return basicGetReferredVariable();
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isIsCheck();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -270,13 +271,13 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setOwnedValue((ExpCS)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((SimpleParameter)newValue);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck((Boolean)newValue);
 				return;
 		}
@@ -291,13 +292,13 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setOwnedValue((ExpCS)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setReferredVariable((SimpleParameter)null);
 				return;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				setIsCheck(IS_CHECK_EDEFAULT);
 				return;
 		}
@@ -312,11 +313,11 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				return ownedValue != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				return referredVariable != null;
-			case MappingParameterBindingCSImpl.MAPPING_PARAMETER_BINDING_CS_FEATURE_COUNT + 2:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return isCheck != IS_CHECK_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterCSImpl.java
index 6b01c91..6e398f3 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/emf-gen/org/eclipse/qvtd/xtext/qvtimperativecs/impl/SimpleParameterCSImpl.java
@@ -19,6 +19,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.xtext.basecs.impl.TypedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.qvtd.pivot.qvtimperative.ImperativeTypedModel;
 import org.eclipse.qvtd.xtext.qvtimperativecs.QVTimperativeCSPackage;
@@ -88,7 +89,7 @@
 			referredTypedModel = (ImperativeTypedModel)eResolveProxy(oldReferredTypedModel);
 			if (referredTypedModel != oldReferredTypedModel) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
 			}
 		}
 		return referredTypedModel;
@@ -113,7 +114,7 @@
 		ImperativeTypedModel oldReferredTypedModel = referredTypedModel;
 		referredTypedModel = newReferredTypedModel;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0, oldReferredTypedModel, referredTypedModel));
 	}
 
 	/**
@@ -124,7 +125,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				if (resolve) return getReferredTypedModel();
 				return basicGetReferredTypedModel();
 		}
@@ -139,7 +140,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setReferredTypedModel((ImperativeTypedModel)newValue);
 				return;
 		}
@@ -154,7 +155,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				setReferredTypedModel((ImperativeTypedModel)null);
 				return;
 		}
@@ -169,7 +170,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case MappingParameterCSImpl.MAPPING_PARAMETER_CS_FEATURE_COUNT + 0:
+			case TypedElementCSImpl.TYPED_ELEMENT_CS_FEATURE_COUNT + 0:
 				return referredTypedModel != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/CollectionTemplateCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/CollectionTemplateCSImpl.java
index 33cde68..d2f4d07 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/CollectionTemplateCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/CollectionTemplateCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.xtext.qvtrelationcs.CollectionTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.ElementTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.QVTrelationCSPackage;
@@ -99,7 +100,7 @@
 	@Override
 	public EList<TemplateVariableCS> getOwnedMemberIdentifiers() {
 		if (ownedMemberIdentifiers == null) {
-			ownedMemberIdentifiers = new EObjectContainmentEList<TemplateVariableCS>(TemplateVariableCS.class, this, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0);
+			ownedMemberIdentifiers = new EObjectContainmentEList<TemplateVariableCS>(TemplateVariableCS.class, this, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
 		}
 		return ownedMemberIdentifiers;
 	}
@@ -123,7 +124,7 @@
 		ElementTemplateCS oldOwnedRestIdentifier = ownedRestIdentifier;
 		ownedRestIdentifier = newOwnedRestIdentifier;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1, oldOwnedRestIdentifier, newOwnedRestIdentifier);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 4, oldOwnedRestIdentifier, newOwnedRestIdentifier);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -139,14 +140,14 @@
 		if (newOwnedRestIdentifier != ownedRestIdentifier) {
 			NotificationChain msgs = null;
 			if (ownedRestIdentifier != null)
-				msgs = ((InternalEObject)ownedRestIdentifier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)ownedRestIdentifier).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ExpCSImpl.EXP_CS_FEATURE_COUNT + 4), null, msgs);
 			if (newOwnedRestIdentifier != null)
-				msgs = ((InternalEObject)newOwnedRestIdentifier).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1), null, msgs);
+				msgs = ((InternalEObject)newOwnedRestIdentifier).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ExpCSImpl.EXP_CS_FEATURE_COUNT + 4), null, msgs);
 			msgs = basicSetOwnedRestIdentifier(newOwnedRestIdentifier, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1, newOwnedRestIdentifier, newOwnedRestIdentifier));
+			eNotify(new ENotificationImpl(this, Notification.SET, ExpCSImpl.EXP_CS_FEATURE_COUNT + 4, newOwnedRestIdentifier, newOwnedRestIdentifier));
 	}
 
 	/**
@@ -157,9 +158,9 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return ((InternalEList<?>)getOwnedMemberIdentifiers()).basicRemove(otherEnd, msgs);
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 4:
 				return basicSetOwnedRestIdentifier(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -173,9 +174,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return getOwnedMemberIdentifiers();
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 4:
 				return getOwnedRestIdentifier();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -190,11 +191,11 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				getOwnedMemberIdentifiers().clear();
 				getOwnedMemberIdentifiers().addAll((Collection<? extends TemplateVariableCS>)newValue);
 				return;
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 4:
 				setOwnedRestIdentifier((ElementTemplateCS)newValue);
 				return;
 		}
@@ -209,10 +210,10 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				getOwnedMemberIdentifiers().clear();
 				return;
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 4:
 				setOwnedRestIdentifier((ElementTemplateCS)null);
 				return;
 		}
@@ -227,9 +228,9 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return ownedMemberIdentifiers != null && !ownedMemberIdentifiers.isEmpty();
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 4:
 				return ownedRestIdentifier != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/DomainCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/DomainCSImpl.java
index 286a419..194f7a3 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/DomainCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/DomainCSImpl.java
@@ -21,6 +21,7 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.qvtd.pivot.qvtbase.TypedModel;
@@ -219,7 +220,7 @@
 		String oldImplementedBy = implementedBy;
 		implementedBy = newImplementedBy;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0, oldImplementedBy, implementedBy));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0, oldImplementedBy, implementedBy));
 	}
 
 	/**
@@ -242,7 +243,7 @@
 		boolean oldIsCheckonly = isCheckonly;
 		isCheckonly = newIsCheckonly;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1, oldIsCheckonly, isCheckonly));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1, oldIsCheckonly, isCheckonly));
 	}
 
 	/**
@@ -265,7 +266,7 @@
 		boolean oldIsEnforce = isEnforce;
 		isEnforce = newIsEnforce;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2, oldIsEnforce, isEnforce));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2, oldIsEnforce, isEnforce));
 	}
 
 	/**
@@ -280,7 +281,7 @@
 			modelId = (TypedModel)eResolveProxy(oldModelId);
 			if (modelId != oldModelId) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3, oldModelId, modelId));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, oldModelId, modelId));
 			}
 		}
 		return modelId;
@@ -305,7 +306,7 @@
 		TypedModel oldModelId = modelId;
 		modelId = newModelId;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3, oldModelId, modelId));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3, oldModelId, modelId));
 	}
 
 	/**
@@ -328,7 +329,7 @@
 		boolean oldIsReplace = isReplace;
 		isReplace = newIsReplace;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4, oldIsReplace, isReplace));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4, oldIsReplace, isReplace));
 	}
 
 	/**
@@ -339,7 +340,7 @@
 	@Override
 	public EList<DomainPatternCS> getOwnedPatterns() {
 		if (ownedPatterns == null) {
-			ownedPatterns = new EObjectContainmentEList<DomainPatternCS>(DomainPatternCS.class, this, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5);
+			ownedPatterns = new EObjectContainmentEList<DomainPatternCS>(DomainPatternCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5);
 		}
 		return ownedPatterns;
 	}
@@ -352,7 +353,7 @@
 	@Override
 	public EList<DefaultValueCS> getOwnedDefaultValues() {
 		if (ownedDefaultValues == null) {
-			ownedDefaultValues = new EObjectContainmentEList<DefaultValueCS>(DefaultValueCS.class, this, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6);
+			ownedDefaultValues = new EObjectContainmentEList<DefaultValueCS>(DefaultValueCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6);
 		}
 		return ownedDefaultValues;
 	}
@@ -376,7 +377,7 @@
 		ExpCS oldOwnedImplementedBy = ownedImplementedBy;
 		ownedImplementedBy = newOwnedImplementedBy;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7, oldOwnedImplementedBy, newOwnedImplementedBy);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7, oldOwnedImplementedBy, newOwnedImplementedBy);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -392,14 +393,14 @@
 		if (newOwnedImplementedBy != ownedImplementedBy) {
 			NotificationChain msgs = null;
 			if (ownedImplementedBy != null)
-				msgs = ((InternalEObject)ownedImplementedBy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7), null, msgs);
+				msgs = ((InternalEObject)ownedImplementedBy).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7), null, msgs);
 			if (newOwnedImplementedBy != null)
-				msgs = ((InternalEObject)newOwnedImplementedBy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7), null, msgs);
+				msgs = ((InternalEObject)newOwnedImplementedBy).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - (ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7), null, msgs);
 			msgs = basicSetOwnedImplementedBy(newOwnedImplementedBy, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7, newOwnedImplementedBy, newOwnedImplementedBy));
+			eNotify(new ENotificationImpl(this, Notification.SET, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7, newOwnedImplementedBy, newOwnedImplementedBy));
 	}
 
 	/**
@@ -420,11 +421,11 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				return ((InternalEList<?>)getOwnedPatterns()).basicRemove(otherEnd, msgs);
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6:
 				return ((InternalEList<?>)getOwnedDefaultValues()).basicRemove(otherEnd, msgs);
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7:
 				return basicSetOwnedImplementedBy(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -438,22 +439,22 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getImplementedBy();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return isIsCheckonly();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return isIsEnforce();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				if (resolve) return getModelId();
 				return basicGetModelId();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return isIsReplace();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				return getOwnedPatterns();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6:
 				return getOwnedDefaultValues();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7:
 				return getOwnedImplementedBy();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -468,30 +469,30 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				setImplementedBy((String)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIsCheckonly((Boolean)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setIsEnforce((Boolean)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setModelId((TypedModel)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setIsReplace((Boolean)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				getOwnedPatterns().clear();
 				getOwnedPatterns().addAll((Collection<? extends DomainPatternCS>)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6:
 				getOwnedDefaultValues().clear();
 				getOwnedDefaultValues().addAll((Collection<? extends DefaultValueCS>)newValue);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7:
 				setOwnedImplementedBy((ExpCS)newValue);
 				return;
 		}
@@ -506,28 +507,28 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				setImplementedBy(IMPLEMENTED_BY_EDEFAULT);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIsCheckonly(IS_CHECKONLY_EDEFAULT);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				setIsEnforce(IS_ENFORCE_EDEFAULT);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				setModelId((TypedModel)null);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				setIsReplace(IS_REPLACE_EDEFAULT);
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				getOwnedPatterns().clear();
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6:
 				getOwnedDefaultValues().clear();
 				return;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7:
 				setOwnedImplementedBy((ExpCS)null);
 				return;
 		}
@@ -542,21 +543,21 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return IMPLEMENTED_BY_EDEFAULT == null ? implementedBy != null : !IMPLEMENTED_BY_EDEFAULT.equals(implementedBy);
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1:
 				return isCheckonly != IS_CHECKONLY_EDEFAULT;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2:
 				return isEnforce != IS_ENFORCE_EDEFAULT;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3:
 				return modelId != null;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4:
 				return isReplace != IS_REPLACE_EDEFAULT;
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5:
 				return ownedPatterns != null && !ownedPatterns.isEmpty();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6:
 				return ownedDefaultValues != null && !ownedDefaultValues.isEmpty();
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7:
 				return ownedImplementedBy != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ElementTemplateCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ElementTemplateCSImpl.java
index dbf1064..c5944ef 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ElementTemplateCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ElementTemplateCSImpl.java
@@ -15,6 +15,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.xtext.basecs.impl.NamedElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.qvtd.pivot.qvtrelation.SharedVariable;
 import org.eclipse.qvtd.xtext.qvtrelationcs.ElementTemplateCS;
@@ -84,7 +85,7 @@
 			identifier = (SharedVariable)eResolveProxy(oldIdentifier);
 			if (identifier != oldIdentifier) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0, oldIdentifier, identifier));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1, oldIdentifier, identifier));
 			}
 		}
 		return identifier;
@@ -109,7 +110,7 @@
 		SharedVariable oldIdentifier = identifier;
 		identifier = newIdentifier;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0, oldIdentifier, identifier));
+			eNotify(new ENotificationImpl(this, Notification.SET, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1, oldIdentifier, identifier));
 	}
 
 	/**
@@ -120,7 +121,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1:
 				if (resolve) return getIdentifier();
 				return basicGetIdentifier();
 		}
@@ -135,7 +136,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIdentifier((SharedVariable)newValue);
 				return;
 		}
@@ -150,7 +151,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1:
 				setIdentifier((SharedVariable)null);
 				return;
 		}
@@ -165,7 +166,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0:
+			case NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1:
 				return identifier != null;
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ObjectTemplateCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ObjectTemplateCSImpl.java
index 4504fc1..eb4caf7 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ObjectTemplateCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/ObjectTemplateCSImpl.java
@@ -21,6 +21,7 @@
 import org.eclipse.jdt.annotation.NonNull;
 import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.xtext.qvtrelationcs.ObjectTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.PropertyTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.QVTrelationCSPackage;
@@ -84,7 +85,7 @@
 	@Override
 	public EList<PropertyTemplateCS> getOwnedPropertyTemplates() {
 		if (ownedPropertyTemplates == null) {
-			ownedPropertyTemplates = new EObjectContainmentWithInverseEList<PropertyTemplateCS>(PropertyTemplateCS.class, this, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
+			ownedPropertyTemplates = new EObjectContainmentWithInverseEList<PropertyTemplateCS>(PropertyTemplateCS.class, this, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return ownedPropertyTemplates;
 	}
@@ -98,7 +99,7 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedPropertyTemplates()).basicAdd(otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
@@ -112,7 +113,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return ((InternalEList<?>)getOwnedPropertyTemplates()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -126,7 +127,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return getOwnedPropertyTemplates();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -141,7 +142,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				getOwnedPropertyTemplates().clear();
 				getOwnedPropertyTemplates().addAll((Collection<? extends PropertyTemplateCS>)newValue);
 				return;
@@ -157,7 +158,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				getOwnedPropertyTemplates().clear();
 				return;
 		}
@@ -172,7 +173,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0:
+			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 3:
 				return ownedPropertyTemplates != null && !ownedPropertyTemplates.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PrimitiveTypeDomainCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PrimitiveTypeDomainCSImpl.java
index d5e60be..338e92b 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PrimitiveTypeDomainCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PrimitiveTypeDomainCSImpl.java
@@ -18,6 +18,7 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.qvtd.xtext.qvtrelationcs.PrimitiveTypeDomainCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.PrimitiveTypeDomainPatternCS;
@@ -82,7 +83,7 @@
 	@Override
 	public EList<PrimitiveTypeDomainPatternCS> getOwnedPatterns() {
 		if (ownedPatterns == null) {
-			ownedPatterns = new EObjectContainmentEList<PrimitiveTypeDomainPatternCS>(PrimitiveTypeDomainPatternCS.class, this, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0);
+			ownedPatterns = new EObjectContainmentEList<PrimitiveTypeDomainPatternCS>(PrimitiveTypeDomainPatternCS.class, this, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		}
 		return ownedPatterns;
 	}
@@ -95,7 +96,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ((InternalEList<?>)getOwnedPatterns()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -109,7 +110,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return getOwnedPatterns();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -124,7 +125,7 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getOwnedPatterns().clear();
 				getOwnedPatterns().addAll((Collection<? extends PrimitiveTypeDomainPatternCS>)newValue);
 				return;
@@ -140,7 +141,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				getOwnedPatterns().clear();
 				return;
 		}
@@ -155,7 +156,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0:
+			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
 				return ownedPatterns != null && !ownedPatterns.isEmpty();
 		}
 		return super.eIsSet(featureID);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PropertyTemplateCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PropertyTemplateCSImpl.java
index 1054aea..db9a346 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PropertyTemplateCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/PropertyTemplateCSImpl.java
@@ -22,6 +22,7 @@
 import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.util.BaseCSVisitor;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
+import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
 import org.eclipse.qvtd.xtext.qvtrelationcs.ObjectTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.PropertyTemplateCS;
 import org.eclipse.qvtd.xtext.qvtrelationcs.QVTrelationCSPackage;
@@ -137,7 +138,7 @@
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
 			if (newOwningObjectTemplate != null)
-				msgs = ((InternalEObject)newOwningObjectTemplate).eInverseAdd(this, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0, ObjectTemplateCS.class, msgs);
+				msgs = ((InternalEObject)newOwningObjectTemplate).eInverseAdd(this, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, ObjectTemplateCS.class, msgs);
 			msgs = basicSetOwningObjectTemplate(newOwningObjectTemplate, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
@@ -318,7 +319,7 @@
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
 			case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0:
-				return eInternalContainer().eInverseRemove(this, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0, ObjectTemplateCS.class, msgs);
+				return eInternalContainer().eInverseRemove(this, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3, ObjectTemplateCS.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/QVTrelationCSPackageImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/QVTrelationCSPackageImpl.java
index 3ee837d..d887ee0 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/QVTrelationCSPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/QVTrelationCSPackageImpl.java
@@ -1044,28 +1044,28 @@
 		abstractDomainCSEClass = createEClass(0);
 
 		collectionTemplateCSEClass = createEClass(1);
-		createEReference(collectionTemplateCSEClass, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0);
-		createEReference(collectionTemplateCSEClass, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 1);
+		createEReference(collectionTemplateCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
+		createEReference(collectionTemplateCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 4);
 
 		defaultValueCSEClass = createEClass(2);
 		createEReference(defaultValueCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 		createEReference(defaultValueCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		domainCSEClass = createEClass(3);
-		createEAttribute(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0);
-		createEAttribute(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 1);
-		createEAttribute(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 2);
-		createEReference(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 3);
-		createEAttribute(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 4);
-		createEReference(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 5);
-		createEReference(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 6);
-		createEReference(domainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 7);
+		createEAttribute(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
+		createEAttribute(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 1);
+		createEAttribute(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 2);
+		createEReference(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 3);
+		createEAttribute(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 4);
+		createEReference(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 5);
+		createEReference(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 6);
+		createEReference(domainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 7);
 
 		domainPatternCSEClass = createEClass(4);
 		createEReference(domainPatternCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 
 		elementTemplateCSEClass = createEClass(5);
-		createEReference(elementTemplateCSEClass, TemplateVariableCSImpl.TEMPLATE_VARIABLE_CS_FEATURE_COUNT + 0);
+		createEReference(elementTemplateCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		keyDeclCSEClass = createEClass(6);
 		createEReference(keyDeclCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
@@ -1078,7 +1078,7 @@
 		createEReference(modelDeclCSEClass, NamedElementCSImpl.NAMED_ELEMENT_CS_FEATURE_COUNT + 1);
 
 		objectTemplateCSEClass = createEClass(8);
-		createEReference(objectTemplateCSEClass, TemplateCSImpl.TEMPLATE_CS_FEATURE_COUNT + 0);
+		createEReference(objectTemplateCSEClass, ExpCSImpl.EXP_CS_FEATURE_COUNT + 3);
 
 		paramDeclarationCSEClass = createEClass(9);
 
@@ -1089,7 +1089,7 @@
 		createEReference(predicateCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 
 		primitiveTypeDomainCSEClass = createEClass(12);
-		createEReference(primitiveTypeDomainCSEClass, AbstractDomainCSImpl.ABSTRACT_DOMAIN_CS_FEATURE_COUNT + 0);
+		createEReference(primitiveTypeDomainCSEClass, ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0);
 
 		primitiveTypeDomainPatternCSEClass = createEClass(13);
 
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/TemplateCSImpl.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/TemplateCSImpl.java
index 3de7389..c1469fe 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/TemplateCSImpl.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/impl/TemplateCSImpl.java
@@ -17,7 +17,6 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 import org.eclipse.ocl.xtext.basecs.NamedElementCS;
 import org.eclipse.ocl.xtext.basecs.TypedRefCS;
-import org.eclipse.ocl.xtext.basecs.impl.ModelElementCSImpl;
 import org.eclipse.ocl.xtext.basecs.impl.NamedElementCSImpl;
 import org.eclipse.ocl.xtext.essentialoclcs.ExpCS;
 import org.eclipse.ocl.xtext.essentialoclcs.impl.ExpCSImpl;
@@ -276,13 +275,13 @@
 		switch (featureID) {
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 0:
 				setName((String)newValue);
-				return;
+			return;
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setOwnedType((TypedRefCS)newValue);
-				return;
+			return;
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setOwnedGuardExpression((ExpCS)newValue);
-				return;
+			return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -297,13 +296,13 @@
 		switch (featureID) {
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 0:
 				setName(NAME_EDEFAULT);
-				return;
+			return;
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 1:
 				setOwnedType((TypedRefCS)null);
-				return;
+			return;
 			case ExpCSImpl.EXP_CS_FEATURE_COUNT + 2:
 				setOwnedGuardExpression((ExpCS)null);
-				return;
+			return;
 		}
 		super.eUnset(featureID);
 	}
@@ -335,7 +334,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == NamedElementCS.class) {
 			switch (derivedFeatureID) {
-				case ExpCSImpl.EXP_CS_FEATURE_COUNT + 0: return ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0;
+				case ExpCSImpl.EXP_CS_FEATURE_COUNT + 0: return 5;
 				default: return -1;
 			}
 		}
@@ -357,7 +356,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == NamedElementCS.class) {
 			switch (baseFeatureID) {
-				case ModelElementCSImpl.MODEL_ELEMENT_CS_FEATURE_COUNT + 0: return ExpCSImpl.EXP_CS_FEATURE_COUNT + 0;
+				case 5: return ExpCSImpl.EXP_CS_FEATURE_COUNT + 0;
 				default: return -1;
 			}
 		}