[512089] Use owned/referred-style QVTs names
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ContentsAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ContentsAnalysis.java
index fb73fcd..cb0e16c 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ContentsAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ContentsAnalysis.java
@@ -78,7 +78,7 @@
 		}
 		if (!edges.contains(newEdge)) {
 			edges.add(newEdge);
-			for (@NonNull PropertyDatum superAbstractDatum : ClassUtil.nullFree(propertyDatum.getSuper())) {
+			for (@NonNull PropertyDatum superAbstractDatum : ClassUtil.nullFree(propertyDatum.getSuperPropertyDatums())) {
 				addNewEdge(newEdge, superAbstractDatum);
 			}
 		}
@@ -150,21 +150,21 @@
 		//		}
 		Iterable<@NonNull PropertyDatum> forwardPropertyDatums = scheduleManager.getAllPropertyDatums(forwardClassDatum);
 		for (PropertyDatum propertyDatum : forwardPropertyDatums) {
-			if ((propertyDatum.getProperty() == forwardProperty) && (propertyDatum.getClassDatum() == forwardClassDatum)) {
+			if ((propertyDatum.getReferredProperty() == forwardProperty) && (propertyDatum.getOwningClassDatum() == forwardClassDatum)) {
 				return propertyDatum;
 			}
 		}
 		PropertyDatum bestPropertyDatum = null;
 		for (PropertyDatum propertyDatum : forwardPropertyDatums) {
-			if (propertyDatum.getProperty() == forwardProperty) {
+			if (propertyDatum.getReferredProperty() == forwardProperty) {
 				if (bestPropertyDatum == null) {
 					bestPropertyDatum = propertyDatum;
 				}
 				else {
-					CompleteClass completeClass = propertyDatum.getClassDatum().getCompleteClass();
+					CompleteClass completeClass = propertyDatum.getOwningClassDatum().getCompleteClass();
 					assert completeClass != null;
 					Set<@NonNull CompleteClass> allSuperCompleteClasses = Sets.newHashSet(completeClass.getProperSuperCompleteClasses());
-					if (allSuperCompleteClasses.contains(bestPropertyDatum.getClassDatum().getCompleteClass())) {
+					if (allSuperCompleteClasses.contains(bestPropertyDatum.getOwningClassDatum().getCompleteClass())) {
 						bestPropertyDatum = propertyDatum;
 					}
 				}
@@ -178,20 +178,20 @@
 		ClassDatum reverseClassDatum = RegionUtil.getElementalClassDatum(classDatumAnalysis);
 		Iterable<@NonNull PropertyDatum> reversePropertyDatums = scheduleManager.getAllPropertyDatums(reverseClassDatum);
 		for (PropertyDatum propertyDatum : reversePropertyDatums) {
-			if ((propertyDatum.getProperty() == reverseProperty) && (propertyDatum.getClassDatum() == reverseClassDatum)) {
+			if ((propertyDatum.getReferredProperty() == reverseProperty) && (propertyDatum.getOwningClassDatum() == reverseClassDatum)) {
 				return propertyDatum;
 			}
 		}
 		for (PropertyDatum propertyDatum : reversePropertyDatums) {
-			if (propertyDatum.getProperty() == reverseProperty) {
+			if (propertyDatum.getReferredProperty() == reverseProperty) {
 				if (bestPropertyDatum == null) {
 					bestPropertyDatum = propertyDatum;
 				}
 				else {
-					CompleteClass completeClass = propertyDatum.getClassDatum().getCompleteClass();
+					CompleteClass completeClass = propertyDatum.getOwningClassDatum().getCompleteClass();
 					assert completeClass != null;
 					Set<@NonNull CompleteClass> allSuperCompleteClasses = Sets.newHashSet(completeClass.getProperSuperCompleteClasses());
-					if (allSuperCompleteClasses.contains(bestPropertyDatum.getClassDatum().getCompleteClass())) {
+					if (allSuperCompleteClasses.contains(bestPropertyDatum.getOwningClassDatum().getCompleteClass())) {
 						bestPropertyDatum = propertyDatum;
 					}
 				}
@@ -245,7 +245,7 @@
 	private @Nullable Iterable<@NonNull NavigableEdge> getCompositeNewEdges(@NonNull NavigableEdge predicatedEdge) {
 		Set<@NonNull NavigableEdge> realizedEdges = null;
 		for (Map.Entry<@NonNull PropertyDatum, @NonNull List<@NonNull NavigableEdge>> entry : propertyDatum2newEdges.entrySet()) {
-			Property property = entry.getKey().getProperty();
+			Property property = entry.getKey().getReferredProperty();
 			if (property != null) {
 				@Nullable Property compositeProperty = null;
 				if (property.isIsComposite()) {
@@ -337,7 +337,7 @@
 		List<@NonNull NavigableEdge> edges = propertyDatum2newEdges.get(propertyDatum);
 		if (edges != null) {
 			if (edges.remove(newEdge)) {
-				for (@NonNull PropertyDatum superAbstractDatum : ClassUtil.nullFree(propertyDatum.getSuper())) {
+				for (@NonNull PropertyDatum superAbstractDatum : ClassUtil.nullFree(propertyDatum.getSuperPropertyDatums())) {
 					removeNewEdge(newEdge, superAbstractDatum);
 				}
 			}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/DatumCaches.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/DatumCaches.java
index e00f1be..ec38eb9 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/DatumCaches.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/DatumCaches.java
@@ -124,10 +124,10 @@
 
 	private MappingAction analyzeMapping(@NonNull Mapping mapping) {
 		MappingAction ma = QVTscheduleFactory.eINSTANCE.createMappingAction();
-		ma.setMapping(mapping);
-		ma.setScheduleModel(scheduleManager.getScheduleModel());
-		List<AbstractDatum> productions = ma.getProductions();
-		List<AbstractDatum> requisites = ma.getRequisites();
+		ma.setReferredMapping(mapping);
+		ma.setOwningScheduleModel(scheduleManager.getScheduleModel());
+		List<AbstractDatum> productions = ma.getProducedDatums();
+		List<AbstractDatum> requisites = ma.getRequiredDatums();
 		TreeIterator<EObject> it = mapping.eAllContents();
 		while (it.hasNext()) {
 			EObject eObj = it.next();
@@ -231,7 +231,7 @@
 
 	private @NonNull Iterable<@NonNull PropertyDatum> getAllPropertyDatumsInternal(@NonNull Set<@NonNull ClassDatum> classDatums, @NonNull Set<@NonNull PropertyDatum> propertyDatums, @NonNull ClassDatum cDatum) {
 		if (classDatums.add(cDatum)) {
-			propertyDatums.addAll(ClassUtil.nullFree(cDatum.getPropertyDatums()));
+			propertyDatums.addAll(ClassUtil.nullFree(cDatum.getOwningPropertyDatums()));
 		}
 		for (@NonNull ClassDatum superClassDatum : ClassUtil.nullFree(cDatum.getSuperClassDatums())) {
 			getAllPropertyDatumsInternal(classDatums, propertyDatums, superClassDatum);
@@ -292,10 +292,10 @@
 		ClassDatum classDatum = completeClass2classDatums.get(completeClass);
 		if (classDatum == null) {
 			classDatum = QVTscheduleFactory.eINSTANCE.createClassDatum();
-			classDatum.setScheduleModel(scheduleManager.getScheduleModel());
+			classDatum.setOwningScheduleModel(scheduleManager.getScheduleModel());
 			classDatum.setCompleteClass(completeClass);
-			classDatum.setPrimaryClass(completeClass.getPrimaryClass());
-			classDatum.setTypedModel(typedModel);
+			classDatum.setReferredClass(completeClass.getPrimaryClass());
+			classDatum.setReferredTypedModel(typedModel);
 			org.eclipse.ocl.pivot.@NonNull Class aClass = completeClass.getPrimaryClass();
 			if (!(aClass instanceof DataType)) {
 				List<ClassDatum> superClassDatums = classDatum.getSuperClassDatums();
@@ -449,25 +449,25 @@
 			return cachedPropertyDatum;
 		}
 		for (PropertyDatum propertyDatum : allPropertyDatums) {
-			if (propertyDatum.getProperty().equals(property)) {
+			if (propertyDatum.getReferredProperty().equals(property)) {
 				return propertyDatum;
 			}
 		}
 		// If not found we create it
-		TypedModel typedModel = classDatum.getTypedModel();
+		TypedModel typedModel = classDatum.getReferredTypedModel();
 		assert typedModel != null;
 		CompleteClass targetCompleteClass = classDatum.getCompleteClass();
 		org.eclipse.ocl.pivot.Class owningClass = PivotUtil.getOwningClass(property);
 		CompleteClass hostCompleteClass = completeModel.getCompleteClass(owningClass);
 		PropertyDatum propertyDatum = QVTscheduleFactory.eINSTANCE.createPropertyDatum();
-		propertyDatum.setTypedModel(typedModel);
-		propertyDatum.setProperty(property);
-		propertyDatum.setClassDatum(classDatum);
+		propertyDatum.setReferredTypedModel(typedModel);
+		propertyDatum.setReferredProperty(property);
+		propertyDatum.setOwningClassDatum(classDatum);
 		assert targetCompleteClass.conformsTo(hostCompleteClass);
 		for (@NonNull CompleteClass superCompleteClass : targetCompleteClass.getSuperCompleteClasses()) {
 			if (superCompleteClass.conformsTo(hostCompleteClass)) {
 				PropertyDatum superPropDatum = getPropertyDatum(typedModel, superCompleteClass, property);
-				propertyDatum.getSuper().add(superPropDatum);
+				propertyDatum.getSuperPropertyDatums().add(superPropDatum);
 			}
 		}
 		PropertyDatum oldPropertyDatum = property2propertyDatum.put(property, propertyDatum);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ExpressionAnalyzer.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ExpressionAnalyzer.java
index 53e3745..1351af2 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ExpressionAnalyzer.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ExpressionAnalyzer.java
@@ -122,7 +122,7 @@
 		Node targetNode = analyze(operationCallExp.getOwnedArguments().get(0));
 		String name = operationCallExp.getReferredOperation().getName();
 		createPredicateEdge(sourceNode, "«" + name + "»", targetNode);
-		return RegionUtil.createTrueNode(RegionUtil.getRegion(sourceNode));
+		return RegionUtil.createTrueNode(RegionUtil.getOwningRegion(sourceNode));
 	}
 
 	private @NonNull Node analyzeOperationCallExp_oclAsType(@NonNull Node sourceNode, @NonNull OperationCallExp operationCallExp) {
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/MappingAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/MappingAnalysis.java
index 45e6684..4a70dbb 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/MappingAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/MappingAnalysis.java
@@ -98,8 +98,8 @@
 	private MappingAnalysis(@NonNull ScheduleModel scheduleModel, @NonNull Mapping mapping) {
 		this.mappingRegion = (BasicMappingRegionImpl) QVTscheduleFactory.eINSTANCE.createBasicMappingRegion();
 		mappingRegion.setFixmeScheduleModel(scheduleModel);
-		scheduleModel.getOtherMappingRegions().add(mappingRegion);
-		mappingRegion.setMapping(mapping);
+		scheduleModel.getOwnedOtherMappingRegions().add(mappingRegion);
+		mappingRegion.setReferredMapping(mapping);
 		this.expressionAnalyzer = new ExpressionAnalyzer(this);
 		//
 		guardPatterns.add(ClassUtil.nonNull(mapping.getGuardPattern()));
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/QVTm2QVTs.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/QVTm2QVTs.java
index 1932a95..2ccf200 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/QVTm2QVTs.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/QVTm2QVTs.java
@@ -167,7 +167,7 @@
 		String operationName = ClassUtil.nonNullState(operationDatum.toString());
 		OperationRegion operationRegion = QVTscheduleFactory.eINSTANCE.createOperationRegion();
 		((OperationRegionImpl)operationRegion).setFixmeScheduleModel(scheduleManager.getScheduleModel());
-		operationRegion.setOperation(ClassUtil.nonNullState(operationCallExp.getReferredOperation()));
+		operationRegion.setReferredOperation(ClassUtil.nonNullState(operationCallExp.getReferredOperation()));
 		operationRegion.setName(operationName);
 		//
 		Variable selfVariable = specification.getOwnedContext();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/RegionUtil.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/RegionUtil.java
index 5a5d3f5..877a70f 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/RegionUtil.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/RegionUtil.java
@@ -133,7 +133,7 @@
 		assert sourceNode.isClass() || (property.getOpposite() != null);	// FIXME review is this relevant?
 		String name = property.getName();
 		assert name != null;
-		Region region = getRegion(sourceNode);
+		Region region = getOwningRegion(sourceNode);
 		ScheduleManager scheduleManager = getScheduleManager(region);
 		PatternTypedNode node = QVTscheduleFactory.eINSTANCE.createPatternTypedNode();
 		node.initialize(nodeRole, region, name, scheduleManager.getClassDatum(navigationCallExp));
@@ -152,7 +152,7 @@
 		org.eclipse.ocl.pivot.Class type = (org.eclipse.ocl.pivot.Class)property.getType();
 		assert type != null;
 		TypedModel typedModel = getTypedModel(getClassDatumAnalysis(targetNode));
-		Region region = getRegion(targetNode);
+		Region region = getOwningRegion(targetNode);
 		ScheduleManager scheduleManager = RegionUtil.getScheduleManager(region);
 		ClassDatum classDatum = scheduleManager.getClassDatum(type, typedModel);
 		PatternTypedNode node = QVTscheduleFactory.eINSTANCE.createPatternTypedNode();
@@ -164,7 +164,7 @@
 
 	public static @NonNull Node createDependencyClassNode(@NonNull Node parentNode, @NonNull NavigationAssignment navigationAssignment) {
 		assert parentNode.isClass();
-		ScheduleManager scheduleManager = RegionUtil.getScheduleManager(getRegion(parentNode));
+		ScheduleManager scheduleManager = RegionUtil.getScheduleManager(getOwningRegion(parentNode));
 		Property property = QVTcoreUtil.getTargetProperty(navigationAssignment);
 		assert property != null;
 		org.eclipse.ocl.pivot.Class type = (org.eclipse.ocl.pivot.Class)property.getType();
@@ -175,7 +175,7 @@
 		ClassDatumAnalysis classDatumAnalysis = scheduleManager.getClassDatumAnalysis(classDatum);
 		String name = property.getName();
 		assert name != null;
-		return createDependencyNode(RegionUtil.getRegion(parentNode), name, classDatumAnalysis);
+		return createDependencyNode(RegionUtil.getOwningRegion(parentNode), name, classDatumAnalysis);
 	}
 
 	public static @NonNull Node createDependencyNode(@NonNull Region region, @NonNull String name, @NonNull ClassDatumAnalysis classDatumAnalysis) {
@@ -213,7 +213,7 @@
 	}
 
 	public static @NonNull VariableNode createIteratorNode(@NonNull Variable iterator, @NonNull Node sourceNode) {
-		Region region = getRegion(sourceNode);
+		Region region = getOwningRegion(sourceNode);
 		ScheduleManager scheduleManager = getScheduleManager(region);
 		Role nodeRole = getNodeRole(sourceNode);
 		IteratorNode node = QVTscheduleFactory.eINSTANCE.createIteratorNode();
@@ -223,7 +223,7 @@
 	}
 
 	public static @NonNull VariableNode createLetVariableNode(@NonNull Variable letVariable, @NonNull Node inNode) {
-		Region region = getRegion(inNode);
+		Region region = getOwningRegion(inNode);
 		ScheduleManager scheduleManager = getScheduleManager(region);
 		Role nodeRole = getNodeRole(inNode);
 		PatternVariableNode node = QVTscheduleFactory.eINSTANCE.createPatternVariableNode();
@@ -321,13 +321,13 @@
 	}
 
 	public static @NonNull Node createPatternNode(@NonNull Role nodeRole, @NonNull Node sourceNode, @NonNull Property source2targetProperty, boolean isMatched) {
-		Region region = getRegion(sourceNode);
+		Region region = getOwningRegion(sourceNode);
 		assert sourceNode.isClass();
 		ScheduleManager scheduleManager = getScheduleManager(region);
 		org.eclipse.ocl.pivot.Class type = (org.eclipse.ocl.pivot.Class)source2targetProperty.getType();
 		assert type != null;
 		Type elementType = PivotUtil.getElementalType(type);
-		TypedModel typedModel = elementType instanceof DataType ? scheduleManager.getDomainAnalysis().getPrimitiveTypeModel() : sourceNode.getClassDatum().getTypedModel();
+		TypedModel typedModel = elementType instanceof DataType ? scheduleManager.getDomainAnalysis().getPrimitiveTypeModel() : sourceNode.getClassDatum().getReferredTypedModel();
 		assert typedModel != null;
 		ClassDatum classDatum = scheduleManager.getClassDatum(type, typedModel);
 		String name = source2targetProperty.getName();
@@ -394,7 +394,7 @@
 	}
 
 	public static @NonNull Node createStepNode(@NonNull String name, @NonNull CallExp callExp, @NonNull Node sourceNode, boolean isMatched) {
-		Region region = getRegion(sourceNode);
+		Region region = getOwningRegion(sourceNode);
 		ScheduleManager scheduleManager = getScheduleManager(region);
 		DomainUsage domainUsage = scheduleManager.getDomainUsage(callExp);
 		boolean isMiddleOrOutput = domainUsage.isOutput() || domainUsage.isMiddle();
@@ -450,7 +450,7 @@
 
 	public static @NonNull Map<@NonNull CompleteClass, @NonNull List<@NonNull Node>> getCompleteClass2Nodes(@NonNull Region region) {
 		Map<@NonNull CompleteClass, @NonNull List<@NonNull Node>> completeClass2nodes = new HashMap<>();
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			CompleteClass completeClass = node.getCompleteClass();
 			List<@NonNull Node> mergedNodes = completeClass2nodes.get(completeClass);
 			if (mergedNodes == null) {
@@ -518,7 +518,7 @@
 			case REALIZED: phase = Role.REALIZED; break;
 			case PREDICATED: phase = Role.PREDICATED; break;
 			case LOADED: {
-				boolean isDirty = getScheduleManager(getRegion(sourceNode)).isDirty(property);
+				boolean isDirty = getScheduleManager(getOwningRegion(sourceNode)).isDirty(property);
 				phase = isDirty ? Role.PREDICATED : Role.LOADED; break;
 			}
 			case CONSTANT: phase = Role.CONSTANT; break;
@@ -532,7 +532,7 @@
 	}
 
 	public static @NonNull TypedModel getTypedModel(@NonNull ClassDatumAnalysis classDatumAnalysis) {
-		return ClassUtil.nonNullState(classDatumAnalysis.getClassDatum().getTypedModel());
+		return ClassUtil.nonNullState(classDatumAnalysis.getClassDatum().getReferredTypedModel());
 	}
 
 	/**
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ScheduleManager.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ScheduleManager.java
index 60894c7..42dd9c3 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ScheduleManager.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtm2qvts/ScheduleManager.java
@@ -457,7 +457,7 @@
 		} catch (IOException e) {
 			System.err.println("Failed to generate '" + dotURI + "' : " + e.getLocalizedMessage());
 		}
-		for (@NonNull Region nestedRegion : RegionUtil.getRegions(region)) {
+		for (@NonNull Region nestedRegion : RegionUtil.getOwnedRegions(region)) {
 			if (nestedRegion instanceof ScheduledRegion) {
 				writeRegionDOTfile((@NonNull ScheduledRegion)nestedRegion, suffix);
 			}
@@ -476,7 +476,7 @@
 		} catch (IOException e) {
 			System.err.println("Failed to generate '" + dotURI + "' : " + e.getLocalizedMessage());
 		}
-		for (@NonNull Region nestedRegion : RegionUtil.getRegions(region)) {
+		for (@NonNull Region nestedRegion : RegionUtil.getOwnedRegions(region)) {
 			if (nestedRegion instanceof ScheduledRegion) {
 				writeRegionGraphMLfile((@NonNull ScheduledRegion)nestedRegion, suffix);
 			}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
index eb943157..a345e15 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractRegion2Mapping.java
@@ -90,7 +90,7 @@
 		assert name != null;
 		this.mapping = QVTimperativeUtil.createMapping(name);
 		this.names = new HashSet<@NonNull String>(visitor.getReservedNames());
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			for (TypedElement typedElement : node.getTypedElements()) {
 				Node oldNode = qvtm2node.put(typedElement, node);
 				assert (oldNode == null) || (oldNode == node);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractScheduledRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractScheduledRegion2Mapping.java
index 0fc43ba..3aa25c0 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractScheduledRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/AbstractScheduledRegion2Mapping.java
@@ -76,7 +76,7 @@
 				mappingParameterBindings.add(helper.createLoopParameterBinding((GuardParameter) guardVariable, loopVariable));
 			}
 			for (@NonNull Node callingNode : calledGuardNode.getUsedBindingSources()) {
-				if (callingNode.getRegion() == region) {
+				if (callingNode.getOwningRegion() == region) {
 					OCLExpression sourceExpression = createSelectByKind(callingNode);
 					mappingParameterBindings.add(helper.createSimpleParameterBinding((SimpleParameter) guardVariable, sourceExpression));
 				}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
index a40d9f0..fbc3813 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java
@@ -823,7 +823,7 @@
 				}
 			}
 		} */
-		for (@NonNull Edge edge : RegionUtil.getEdges(region)) {
+		for (@NonNull Edge edge : RegionUtil.getOwnedEdges(region)) {
 			if (edge.isPredicate()) {
 				ExpressionCreator expressionCreator = new ExpressionCreator();
 				ExpressionCreator inlineExpressionCreator = expressionCreator.getInlineExpressionCreator();
@@ -850,7 +850,7 @@
 	private @NonNull GuardParameter createGuardParameter(@NonNull Node guardNode) {
 		ClassDatumAnalysis classDatumAnalysis = RegionUtil.getClassDatumAnalysis(guardNode);
 		Type variableType = guardNode.getCompleteClass().getPrimaryClass();
-		ImperativeTypedModel iTypedModel = ClassUtil.nonNullState(visitor.getQVTiTypedModel(classDatumAnalysis.getClassDatum().getTypedModel()));
+		ImperativeTypedModel iTypedModel = ClassUtil.nonNullState(visitor.getQVTiTypedModel(classDatumAnalysis.getClassDatum().getReferredTypedModel()));
 		GuardParameter guardVariable = helper.createGuardParameter(getSafeName(guardNode), iTypedModel, variableType, true);
 		mapping.getOwnedMappingParameters().add(guardVariable);
 		VariableDeclaration oldVariable = node2variable.put(guardNode, guardVariable);
@@ -875,7 +875,7 @@
 					bestHeadNode = headNode;
 				}
 				for (@NonNull Node callingSource : callingSources) {
-					headCallingRegions.add(RegionUtil.getRegion(callingSource));
+					headCallingRegions.add(RegionUtil.getOwningRegion(callingSource));
 				}
 				if (bestHeadNode != null) {
 					headNodes.add(bestHeadNode);
@@ -1294,7 +1294,7 @@
 					}
 				}
 				ClassDatum classDatum = newNode.getClassDatum();
-				TypedModel pTypedModel = classDatum.getTypedModel();
+				TypedModel pTypedModel = classDatum.getReferredTypedModel();
 				ImperativeTypedModel iTypedModel = ClassUtil.nonNullState(visitor.getQVTiTypedModel(pTypedModel));
 				NewStatement newStatement = QVTimperativeUtil.createNewStatement(getSafeName(newNode), iTypedModel, classDatum.getCompleteClass().getPrimaryClass());
 				newStatement.setOwnedExpression(constructor);
@@ -1322,13 +1322,13 @@
 			AbstractRegion2Mapping calledRegion2Mapping = visitor.getRegion2Mapping(calledRegion);
 			for (@NonNull Node calledGuardNode : calledRegion2Mapping.getGuardNodes()) {
 				for (@NonNull Node callingNode : calledGuardNode.getPassedBindingSources()) {
-					if (callingNode.getRegion() == region) {
+					if (callingNode.getOwningRegion() == region) {
 						Node oldNode = source2target.put(callingNode, calledGuardNode);
 						assert oldNode == null;
 					}
 				}
 				for (@NonNull Node callingNode : calledGuardNode.getUsedBindingSources()) {
-					if (callingNode.getRegion() == region) {
+					if (callingNode.getOwningRegion() == region) {
 						Node oldNode = source2target.put(callingNode, calledGuardNode);
 						assert oldNode == null;
 					}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java
index ce89df6..2b30db1 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java
@@ -405,7 +405,7 @@
 		//		String name = rootRegion.getName();
 		//
 		List<@NonNull Region> callableRegions = new ArrayList<>();
-		for (@NonNull Region region : RegionUtil.getRegions(rootScheduledRegion)) {
+		for (@NonNull Region region : RegionUtil.getOwnedRegions(rootScheduledRegion)) {
 			if (region.isOperationRegion()) {}
 			//			else if (region.isConnectionRegion()) {
 			//				callableRegions.add(region);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
index fa5fc34..0d0415e 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/RootRegion2Mapping.java
@@ -70,11 +70,11 @@
 		//	Create domains
 		//
 		Set<@NonNull ImperativeTypedModel> checkableTypedModels = new HashSet<>();
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			ClassDatum classDatum = node.getClassDatum();
 			org.eclipse.ocl.pivot.Class type = classDatum.getCompleteClass().getPrimaryClass();
 			if (!(type instanceof DataType) && !(type instanceof AnyType) && !(type instanceof VoidType) && !(type instanceof InvalidType)) {
-				TypedModel qvtmTypedModel = classDatum.getTypedModel();
+				TypedModel qvtmTypedModel = classDatum.getReferredTypedModel();
 				ImperativeTypedModel qvtiTypedModel = visitor.getQVTiTypedModel(qvtmTypedModel);
 				if (qvtiTypedModel != null) {
 					checkableTypedModels.add(qvtiTypedModel);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/CallTreeBuilder.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/CallTreeBuilder.java
index 837f0af..ee255cc 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/CallTreeBuilder.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/CallTreeBuilder.java
@@ -114,7 +114,7 @@
 				assert commonRegion != null;
 				List<@NonNull Region> intermediateRegions = connection.getIntermediateRegions();
 				for (@NonNull Region intermediateRegion : intermediateRegions) {
-					Region checkCommonRegion = commonRegion.getLoopingConnections().size() > 0 ? RegionUtil.getInvokingRegion(commonRegion) : commonRegion;
+					Region checkCommonRegion = commonRegion.getLoopingConnections().size() > 0 ? RegionUtil.getOwningScheduledRegion(commonRegion) : commonRegion;
 					assert commonRegion.getLoopingConnections().size() > 0
 					? Iterables.contains(commonRegion.getCallableParents(), getCommonRegion(commonRegion, intermediateRegion))
 						: getCommonRegion(commonRegion, intermediateRegion) == checkCommonRegion;
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ClassDatumAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ClassDatumAnalysis.java
index f91cafb..60882c3 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ClassDatumAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ClassDatumAnalysis.java
@@ -58,7 +58,7 @@
 		ClassDatum classDatum = RegionUtil.getClassDatum(node);
 		ClassDatumAnalysis adapter = ClassUtil.getAdapter(ClassDatumAnalysis.class, classDatum);
 		if (adapter == null) {
-			adapter = RegionUtil.getScheduleManager(RegionUtil.getRegion(node)).getClassDatumAnalysis(classDatum);
+			adapter = RegionUtil.getScheduleManager(RegionUtil.getOwningRegion(node)).getClassDatumAnalysis(classDatum);
 		}
 		return adapter;
 	}
@@ -86,7 +86,7 @@
 		this.scheduleManager = scheduleManager;
 		this.classDatum = classDatum;
 		classDatum.eAdapters().add(this);
-		TypedModel typedModel = QVTscheduleUtil.getTypedModel(classDatum);
+		TypedModel typedModel = QVTscheduleUtil.getReferredTypedModel(classDatum);
 		this.domainUsage = scheduleManager.getDomainUsage(typedModel);
 		Type type = classDatum.getCompleteClass().getPrimaryClass();
 		Type elementType = type;
@@ -187,8 +187,8 @@
 		List<@NonNull Mapping> producedBy2 = producedBy;
 		if (producedBy2  == null) {
 			producedBy = producedBy2 = new ArrayList<>();
-			for (@NonNull MappingAction producingAction : ClassUtil.nullFree(classDatum.getProducedBy())) {
-				Mapping mapping = producingAction.getMapping();
+			for (@NonNull MappingAction producingAction : ClassUtil.nullFree(classDatum.getProducedByActions())) {
+				Mapping mapping = producingAction.getReferredMapping();
 				assert mapping != null;
 				producedBy2.add(mapping);
 			}
@@ -208,8 +208,8 @@
 		List<@NonNull Mapping> requiredBy2 = requiredBy;
 		if (requiredBy2  == null) {
 			requiredBy = requiredBy2 = new ArrayList<>();
-			for (@NonNull MappingAction consumingAction : ClassUtil.nullFree(classDatum.getRequiredBy())) {
-				Mapping mapping = consumingAction.getMapping();
+			for (@NonNull MappingAction consumingAction : ClassUtil.nullFree(classDatum.getRequiredByActions())) {
+				Mapping mapping = consumingAction.getReferredMapping();
 				assert mapping != null;
 				requiredBy2.add(mapping);
 			}
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/QVTs2QVTs.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/QVTs2QVTs.java
index 70b5f85..5b5227b 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/QVTs2QVTs.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/QVTs2QVTs.java
@@ -135,7 +135,7 @@
 
 	private @NonNull NodeConnection createNodeConnection(@NonNull ScheduledRegion scheduledRegion, @NonNull Set<@NonNull Node> sourceSet, @NonNull ClassDatum classDatum, @NonNull SymbolNameBuilder s) {
 		NodeConnection connection = QVTscheduleFactory.eINSTANCE.createNodeConnection();
-		connection.setRegion(scheduledRegion);
+		connection.setOwningScheduledRegion(scheduledRegion);
 		connection.getSourceEnds().addAll(sourceSet);
 		connection.setName(scheduleManager.getScheduleModel().reserveSymbolName(s, connection));
 		connection.setClassDatum(classDatum);
@@ -151,7 +151,7 @@
 	 * composition relationships that form part of an extended metamodel that is not known until run-time.
 	 */
 	private @NonNull LoadingRegion createRootContainmentRegion(@NonNull ScheduledRegion rootScheduledRegion) {
-		loadingRegion.setInvokingRegion(rootScheduledRegion);
+		loadingRegion.setOwningScheduledRegion(rootScheduledRegion);
 		if (QVTm2QVTs.DEBUG_GRAPHS.isActive()) {
 			scheduleManager.writeDebugGraphs(loadingRegion, null);
 		}
@@ -221,7 +221,7 @@
 		if (predicatedProperty.isIsImplicit()) {
 			return;			// unnavigable opposites are handled by the navigable property
 		}
-		ScheduledRegion invokingRegion2 = region.getInvokingRegion();
+		ScheduledRegion invokingRegion2 = region.getOwningScheduledRegion();
 		assert invokingRegion2 != null;
 		NavigableEdge castEdge = QVTscheduleUtil.getCastTarget(predicatedEdge);
 		Node castTarget = QVTscheduleUtil.getCastTarget(castEdge.getEdgeTarget());
@@ -258,11 +258,11 @@
 				Set<@NonNull Region> edgeSourceRegions = new HashSet<>();
 				Set<@NonNull Region> nodeSourceRegions = new HashSet<>();
 				for (@NonNull NavigableEdge realizedEdge : realizedEdges) {
-					edgeSourceRegions.add(QVTscheduleUtil.getRegion(realizedEdge));
+					edgeSourceRegions.add(QVTscheduleUtil.getOwningRegion(realizedEdge));
 				}
 				if (sourceNodes != null) {
 					for (@NonNull Node sourceNode : sourceNodes) {
-						nodeSourceRegions.add(QVTscheduleUtil.getRegion(sourceNode));
+						nodeSourceRegions.add(QVTscheduleUtil.getOwningRegion(sourceNode));
 					}
 				}
 				//
@@ -280,7 +280,7 @@
 							if (!thoseEdges.contains(realizedEdge)) {
 								thoseEdges.add(realizedEdge);
 								assert conformantEdgeSourceRegions != null;
-								conformantEdgeSourceRegions.add(QVTscheduleUtil.getRegion(realizedEdge));
+								conformantEdgeSourceRegions.add(QVTscheduleUtil.getOwningRegion(realizedEdge));
 							}
 						}
 					}
@@ -293,7 +293,7 @@
 							edgeConnection.addUsedTargetEdge(castEdge, false);
 							if (QVTscheduleConstants.CONNECTION_CREATION.isActive()) {
 								for (@NonNull NavigableEdge thatEdge : thoseEdges) {
-									QVTscheduleConstants.CONNECTION_CREATION.println("    from " + thatEdge.getRegion() + "  : " + thatEdge);
+									QVTscheduleConstants.CONNECTION_CREATION.println("    from " + thatEdge.getOwningRegion() + "  : " + thatEdge);
 								}
 							}
 						}
@@ -319,7 +319,7 @@
 				if (QVTscheduleConstants.CONNECTION_CREATION.isActive()) {
 					QVTscheduleConstants.CONNECTION_CREATION.println("  NodeConnection \"" + predicatedConnection + "\" to " + castTarget);
 					for (@NonNull Node sourceNode : sourceNodes) {
-						QVTscheduleConstants.CONNECTION_CREATION.println("    from " + sourceNode.getRegion() + " : " + sourceNode);
+						QVTscheduleConstants.CONNECTION_CREATION.println("    from " + sourceNode.getOwningRegion() + " : " + sourceNode);
 					}
 				}
 			}
@@ -332,14 +332,14 @@
 		EdgeConnection connection = QVTscheduleFactory.eINSTANCE.createEdgeConnection();
 
 		//		protected DatumConnectionImpl(@NonNull ScheduledRegion region, @NonNull Set<@NonNull CE> sourceEnds, @NonNull String name) {
-		connection.setRegion(scheduledRegion);
+		connection.setOwningScheduledRegion(scheduledRegion);
 		connection.setName(scheduleManager.getScheduleModel().reserveSymbolName(s, connection));
 		connection.getSourceEnds().addAll(sourceSet);
 		//		}
 
 		//		public EdgeConnectionImpl(@NonNull ScheduledRegion region, @NonNull Set<@NonNull NavigableEdge> sourceEdges, @NonNull String name, @NonNull Property property) {
 		//			super(region, sourceEdges, name);
-		connection.setProperty(property);
+		connection.setReferredProperty(property);
 		for (@NonNull NavigableEdge sourceEdge : sourceSet) {
 			sourceEdge.addOutgoingConnection(connection);
 		}
@@ -354,7 +354,7 @@
 	 * surrounding all possible sources.
 	 */
 	private @Nullable NodeConnection createHeadConnection(@NonNull Region region, @NonNull Node headNode) {
-		ScheduledRegion invokingRegion2 = RegionUtil.getInvokingRegion(region);
+		ScheduledRegion invokingRegion2 = RegionUtil.getOwningScheduledRegion(region);
 		ClassDatumAnalysis classDatumAnalysis = RegionUtil.getClassDatumAnalysis(headNode);
 		List<@NonNull Node> headSources = null;
 		//
@@ -391,7 +391,7 @@
 		if (QVTscheduleConstants.CONNECTION_CREATION.isActive()) {
 			QVTscheduleConstants.CONNECTION_CREATION.println((headNode.isDependency() ? "  Extra NodeConnection " : "  Head NodeConnection \"") + headConnection + "\" to " + headNode);
 			for (@NonNull Node sourceNode : headSources) {
-				QVTscheduleConstants.CONNECTION_CREATION.println("    from " + sourceNode.getRegion() + " : " + sourceNode);
+				QVTscheduleConstants.CONNECTION_CREATION.println("    from " + sourceNode.getOwningRegion() + " : " + sourceNode);
 			}
 		}
 		return headConnection;
@@ -838,13 +838,13 @@
 	public @NonNull ScheduledRegion createRootRegion(@NonNull Iterable<@NonNull ? extends Region> allRegions) {
 		ScheduledRegion rootRegion = null;
 		for (@NonNull Region region : Lists.newArrayList(allRegions)) {
-			if (region.getInvokingRegion() == null) {
+			if (region.getOwningScheduledRegion() == null) {
 				if (rootRegion == null) {
 					rootRegion = QVTscheduleFactory.eINSTANCE.createScheduledRegion();
-					rootRegion.setScheduleModel(scheduleManager.getScheduleModel());
+					rootRegion.setOwningScheduleModel(scheduleManager.getScheduleModel());
 					rootRegion.setName(rootName);
 				}
-				region.setInvokingRegion(rootRegion);
+				region.setOwningScheduledRegion(rootRegion);
 			}
 		}
 		assert rootRegion != null;
@@ -862,7 +862,7 @@
 		//
 		//	Identify the content of each region.
 		//
-		for (@NonNull Region region : RegionUtil.getRegions(rootScheduledRegion)) {
+		for (@NonNull Region region : RegionUtil.getOwnedRegions(rootScheduledRegion)) {
 			contentsAnalysis.addRegion(region);
 		}
 		if (QVTm2QVTs.DUMP_CLASS_TO_REALIZED_NODES.isActive()) {
@@ -1069,7 +1069,7 @@
 			int orderedRegionIndex = orderedRegions.indexOf(oldRegions.get(0));
 			for (@NonNull Region oldRegion : oldRegions) {
 				orderedRegions.remove(oldRegion);
-				oldRegion.setInvokingRegion(null);
+				oldRegion.setOwningScheduledRegion(null);
 			}
 			orderedRegions.add(orderedRegionIndex, newRegion);
 			QVTscheduleConstants.POLLED_PROPERTIES.println("building indexes for " + newRegion + " " + newRegion.getIndexRangeText());
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/Region2Depth.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/Region2Depth.java
index 3f052e7..b01b8a8 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/Region2Depth.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/Region2Depth.java
@@ -112,15 +112,15 @@
 	}
 
 	public @NonNull Iterable<@NonNull Region> getParentRegions(@NonNull Region childRegion) {
-		ScheduledRegion childInvokingRegion = childRegion.getInvokingRegion();
+		ScheduledRegion childInvokingRegion = childRegion.getOwningScheduledRegion();
 		int childInvokingRegionDepth = childInvokingRegion != null ? getRegionDepth(childInvokingRegion) : 0;
 		List<@NonNull Region> parentRegions = region2parents.get(childRegion);
 		if (parentRegions == null) {
 			parentRegions = new ArrayList<>();
 			for (@NonNull DatumConnection<?> parentConnection : childRegion.getIncomingPassedConnections()) {
 				for (@NonNull Node source : parentConnection.getSourceNodes()) {
-					Region sourceRegion = RegionUtil.getRegion(source);
-					ScheduledRegion sourceInvokingRegion = sourceRegion.getInvokingRegion();
+					Region sourceRegion = RegionUtil.getOwningRegion(source);
+					ScheduledRegion sourceInvokingRegion = sourceRegion.getOwningScheduledRegion();
 					int sourceInvokingRegionDepth = sourceInvokingRegion != null ? getRegionDepth(sourceInvokingRegion) : 0;
 					Region parentRegion = sourceInvokingRegionDepth < childInvokingRegionDepth ? childInvokingRegion : sourceRegion;
 					//					if ((scheduledRegion == null)
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/RegionAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/RegionAnalysis.java
index 2e41e1a..377ee1d 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/RegionAnalysis.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/RegionAnalysis.java
@@ -69,11 +69,11 @@
 
 	private void addCheckedEdge(@NonNull NavigableEdge predicatedEdge) {
 		assert predicatedEdge.isPredicated();
-		assert predicatedEdge.getRegion() == region;
+		assert predicatedEdge.getOwningRegion() == region;
 		Map<@NonNull TypedModel, @NonNull Set<@NonNull NavigableEdge>> typedModel2checkedEdges2 = typedModel2checkedEdges;
 		assert typedModel2checkedEdges2 != null;
 		ClassDatum classDatum = RegionUtil.getClassDatum(predicatedEdge.getEdgeSource());
-		TypedModel typedModel = RegionUtil.getTypedModel(classDatum);
+		TypedModel typedModel = RegionUtil.getReferredTypedModel(classDatum);
 		Set<@NonNull NavigableEdge> checkedEdges = typedModel2checkedEdges2.get(typedModel);
 		if (checkedEdges == null) {
 			checkedEdges = new HashSet<>();
@@ -86,11 +86,11 @@
 
 	private void addEnforcedEdge(@NonNull NavigableEdge realizedEdge) {
 		assert realizedEdge.isRealized();
-		assert realizedEdge.getRegion() == region;
+		assert realizedEdge.getOwningRegion() == region;
 		Map<@NonNull TypedModel, @NonNull Set<@NonNull NavigableEdge>> typedModel2enforcedEdges2 = typedModel2enforcedEdges;
 		assert typedModel2enforcedEdges2 != null;
 		ClassDatum classDatum = RegionUtil.getClassDatum(realizedEdge.getEdgeSource());
-		TypedModel typedModel = RegionUtil.getTypedModel(classDatum);
+		TypedModel typedModel = RegionUtil.getReferredTypedModel(classDatum);
 		Set<@NonNull NavigableEdge> enforcedEdges = typedModel2enforcedEdges2.get(typedModel);
 		if (enforcedEdges == null) {
 			enforcedEdges = new HashSet<>();
@@ -116,7 +116,7 @@
 				Property property = QVTscheduleUtil.getProperty(predicatedEdge);
 				Node predicatedNode = predicatedEdge.getEdgeSource();
 				ClassDatum classDatum = RegionUtil.getClassDatum(predicatedNode);
-				TypedModel typedModel = RegionUtil.getTypedModel(classDatum);
+				TypedModel typedModel = RegionUtil.getReferredTypedModel(classDatum);
 				Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>> property2predicatedEdges = typedModel2property2predicatedEdges.get(typedModel);
 				if (property2predicatedEdges == null) {
 					property2predicatedEdges = new HashMap<>();
@@ -138,7 +138,7 @@
 			Property property = QVTscheduleUtil.getProperty(realizedEdge);
 			Node realizedNode = realizedEdge.getEdgeSource();
 			ClassDatum classDatum = RegionUtil.getClassDatum(realizedNode);
-			TypedModel typedModel = RegionUtil.getTypedModel(classDatum);
+			TypedModel typedModel = RegionUtil.getReferredTypedModel(classDatum);
 			Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>> property2realizedEdges = typedModel2property2realizedEdges.get(typedModel);
 			if (property2realizedEdges == null) {
 				property2realizedEdges = new HashMap<>();
@@ -171,7 +171,7 @@
 				if (edgeConnection != null) {
 					boolean isChecked = false;
 					for (@NonNull NavigableEdge usedEdge : QVTscheduleUtil.getSourceEnds(edgeConnection)) {
-						Region usedRegion = QVTscheduleUtil.getRegion(usedEdge);
+						Region usedRegion = QVTscheduleUtil.getOwningRegion(usedEdge);
 						get(usedRegion).addEnforcedEdge(usedEdge);
 						if (usedRegion.getFinalExecutionIndex() >= region.getInvocationIndex()) {
 							addCheckedEdge(predicatedEdge);
@@ -180,7 +180,7 @@
 					}
 					if (isChecked) {
 						for (@NonNull NavigableEdge usedEdge : QVTscheduleUtil.getSourceEnds(edgeConnection)) {
-							Region usedRegion = QVTscheduleUtil.getRegion(usedEdge);
+							Region usedRegion = QVTscheduleUtil.getOwningRegion(usedEdge);
 							get(usedRegion).addEnforcedEdge(usedEdge);
 						}
 					}
@@ -192,12 +192,12 @@
 				NodeConnection usedConnection = predicatedTargetNode.getIncomingUsedConnection();
 				if (usedConnection != null) {
 					for (@NonNull Node usedSourceNode : QVTscheduleUtil.getSourceEnds(usedConnection)) {
-						Region usedRegion = QVTscheduleUtil.getRegion(usedSourceNode);
+						Region usedRegion = QVTscheduleUtil.getOwningRegion(usedSourceNode);
 						if (usedRegion.getFinalExecutionIndex() >= region.getInvocationIndex()) {			// FIXME =
 							CompleteClass predicatedSourceType = predicatedSourceNode.getCompleteClass();
 							CompleteClass predicatedTargetType = predicatedTargetNode.getCompleteClass();
 							ClassDatum classDatum = laterNode.getClassDatum();
-							TypedModel typedModel = classDatum.getTypedModel();
+							TypedModel typedModel = classDatum.getReferredTypedModel();
 							Map<@NonNull Property, @NonNull List<@NonNull NavigableEdge>> property2realizedEdges = typedModel2property2realizedEdges.get(typedModel);
 							assert property2realizedEdges != null;
 							Property oclContainerProperty = RegionUtil.getScheduleManager(region).getStandardLibraryHelper().getOclContainerProperty();
@@ -215,7 +215,7 @@
 										assert realizedEdges != null;
 										for (@NonNull NavigableEdge realizedEdge : realizedEdges) {
 											// FIXME recheck for narrower types ??
-											Region earlierRegion = realizedEdge.getRegion();
+											Region earlierRegion = realizedEdge.getOwningRegion();
 											//												String isNotHazardous;
 											//											if (region == earlierRegion) {
 											//												isNotHazardous = "same region";	// FIXME must handle recursion
@@ -259,7 +259,7 @@
 								}
 								else {
 									for (@NonNull NavigableEdge realizedEdge : realizedEdges) {
-										Region earlierRegion = QVTscheduleUtil.getRegion(realizedEdge);
+										Region earlierRegion = QVTscheduleUtil.getOwningRegion(realizedEdge);
 										String checkIsHazardFreeBecause;
 										String enforceIsHazardFreeBecause;
 										Node realizedSourceNode = realizedEdge.getEdgeSource();
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ScheduleState.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ScheduleState.java
index 891c190..ccb74d1 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ScheduleState.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/ScheduleState.java
@@ -285,7 +285,7 @@
 	 * returning true if unblocked.
 	 */
 	private boolean refreshRegionBlockage(@NonNull Region region) {
-		ScheduledRegion invokingRegion = RegionUtil.getInvokingRegion(region);
+		ScheduledRegion invokingRegion = RegionUtil.getOwningScheduledRegion(region);
 		if (blockedRegions.contains(invokingRegion) && !unblockedRegions.contains(invokingRegion)) {
 			if (!refreshRegionBlockage(invokingRegion)) {
 				return false;
@@ -456,7 +456,7 @@
 	protected abstract void scheduleScheduledRegion(@NonNull ScheduledRegion scheduledRegion);
 
 	private void unblock(@NonNull Region region) {
-		assert !blockedRegions.contains(RegionUtil.getInvokingRegion(region));
+		assert !blockedRegions.contains(RegionUtil.getOwningScheduledRegion(region));
 		boolean wasRemoved0 = blockedRegions.remove(region);
 		assert wasRemoved0;
 		boolean wasRemoved1 = unblockedRegions.remove(region);
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/LateConsumerMerger.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/LateConsumerMerger.java
index c27b128..d183fe4 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/LateConsumerMerger.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/LateConsumerMerger.java
@@ -71,23 +71,23 @@
 		}
 
 		public void install(@NonNull ContentsAnalysis contentsAnalysis, @NonNull MappingRegion mergedRegion) {
-			ScheduledRegion invokingRegion = RegionUtil.getInvokingRegion(primaryRegion);
+			ScheduledRegion invokingRegion = RegionUtil.getOwningScheduledRegion(primaryRegion);
 			List<@NonNull Region> callableParents = Lists.newArrayList(primaryRegion.getCallableParents());
 			contentsAnalysis.removeRegion(primaryRegion);
 			for (@NonNull Region callableParent : callableParents) {
 				callableParent.replaceCallToChild(primaryRegion, mergedRegion);
 			}
-			primaryRegion.setInvokingRegion(invokingRegion);
+			primaryRegion.setOwningScheduledRegion(invokingRegion);
 			for (@NonNull Region secondaryRegion : secondaryRegions) {
 				contentsAnalysis.removeRegion(secondaryRegion);
-				assert invokingRegion == secondaryRegion.getInvokingRegion();
+				assert invokingRegion == secondaryRegion.getOwningScheduledRegion();
 				for (@NonNull Region callableParent : callableParents) {
 					callableParent.removeCallToChild(secondaryRegion);
 				}
-				secondaryRegion.setInvokingRegion(invokingRegion);
+				secondaryRegion.setOwningScheduledRegion(invokingRegion);
 			}
 			contentsAnalysis.addRegion(mergedRegion);
-			mergedRegion.setInvokingRegion(invokingRegion);
+			mergedRegion.setOwningScheduledRegion(invokingRegion);
 			for (@NonNull Node oldHeadNode : RegionUtil.getHeadNodes(primaryRegion)) {
 				NodeConnection incomingConnection = oldHeadNode.getIncomingConnection();
 				if (incomingConnection != null) {
@@ -133,9 +133,9 @@
 					ClassDatumAnalysis classDatumAnalysis = RegionUtil.getClassDatumAnalysis(secondaryEdge.getEdgeTarget());
 					Iterable<@NonNull NavigableEdge> realizedEdges = getContentsAnalysis().getNewEdges(secondaryEdge, classDatumAnalysis);
 					if (realizedEdges != null) {
-						int firstIndex = secondaryEdge.getRegion().getFirstIndex();
+						int firstIndex = secondaryEdge.getOwningRegion().getFirstIndex();
 						for (@NonNull NavigableEdge realizedEdge : realizedEdges) {
-							Region region = realizedEdge.getRegion();
+							Region region = realizedEdge.getOwningRegion();
 							int lastIndex = region.getLastIndex();
 							if (lastIndex >= firstIndex) {
 								if (debugFailures) {
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/RegionMerger.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/RegionMerger.java
index 8a0f265..10e46ff 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/RegionMerger.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/merger/RegionMerger.java
@@ -70,11 +70,11 @@
 		this.primaryRegion = primaryRegion;
 		//		assert !(primaryRegion instanceof MicroMappingRegion);
 		//
-		for (@NonNull Node primaryNode : RegionUtil.getNodes(primaryRegion)) {
+		for (@NonNull Node primaryNode : RegionUtil.getOwnedNodes(primaryRegion)) {
 			new NodeMerger(this, primaryNode);
 		}
 		//
-		for (@NonNull Edge primaryEdge : RegionUtil.getEdges(primaryRegion)) {
+		for (@NonNull Edge primaryEdge : RegionUtil.getOwnedEdges(primaryRegion)) {
 			if (!primaryEdge.isSecondary()) {
 				new EdgeMerger(this, primaryEdge);
 			}
@@ -117,7 +117,7 @@
 		secondaryRegions.add(secondaryRegion);
 		this.secondaryNode2primaryNode.putAll(secondaryNode2primaryNode);
 		//
-		for (@NonNull Node secondaryNode : RegionUtil.getNodes(secondaryRegion)) {
+		for (@NonNull Node secondaryNode : RegionUtil.getOwnedNodes(secondaryRegion)) {
 			Node primaryNode = secondaryNode2primaryNode.get(secondaryNode);
 			if (primaryNode != null) {
 				NodeMerger nodeMerger = oldNode2nodeMerger.get(primaryNode);
@@ -129,7 +129,7 @@
 			}
 		}
 		//
-		for (@NonNull Edge secondaryEdge : RegionUtil.getEdges(secondaryRegion)) {
+		for (@NonNull Edge secondaryEdge : RegionUtil.getOwnedEdges(secondaryRegion)) {
 			if (!secondaryEdge.isSecondary()) {
 				addSecondaryEdge(secondaryEdge);
 			}
@@ -148,13 +148,13 @@
 	}
 
 	protected void checkEdges(@NonNull MappingRegion newRegion, @NonNull Region oldRegion) {
-		for (@NonNull Edge oldEdge : RegionUtil.getEdges(oldRegion)) {
-			assert oldEdge.getRegion() == oldRegion;
+		for (@NonNull Edge oldEdge : RegionUtil.getOwnedEdges(oldRegion)) {
+			assert oldEdge.getOwningRegion() == oldRegion;
 			if (!oldEdge.isRecursion() && !oldEdge.isSecondary()) {		// FIXME Remove this irregularity
 				EdgeMerger edgeMerger = oldEdge2edgeMerger.get(oldEdge);
 				if (edgeMerger != null) {
 					assert Iterables.contains(edgeMerger.getOldEdges(), oldEdge);
-					assert edgeMerger.getNewEdge().getRegion() == newRegion;
+					assert edgeMerger.getNewEdge().getOwningRegion() == newRegion;
 				}
 				else {
 					assert debugPrunedEdges.contains(oldEdge);
@@ -164,10 +164,10 @@
 	}
 
 	protected void checkNodes(@NonNull MappingRegion newRegion, @NonNull Region oldRegion) {
-		for (@NonNull Node oldNode : RegionUtil.getNodes(oldRegion)) {
-			assert oldNode.getRegion() == oldRegion;
+		for (@NonNull Node oldNode : RegionUtil.getOwnedNodes(oldRegion)) {
+			assert oldNode.getOwningRegion() == oldRegion;
 			Node nodeMerger = getNodeMerger(oldNode).getNewNode();
-			assert nodeMerger.getRegion() == newRegion;
+			assert nodeMerger.getOwningRegion() == newRegion;
 		}
 	}
 
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/AbstractPartition.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/AbstractPartition.java
index d5caab9..d3b48b3 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/AbstractPartition.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/AbstractPartition.java
@@ -164,7 +164,7 @@
 		for (@NonNull Node node : RegionUtil.getHeadNodes(region)) {
 			gatherReachables(reachableNodes, node);
 		}
-		Set<@NonNull Node> allNodes = Sets.newHashSet(RegionUtil.getNodes(region));
+		Set<@NonNull Node> allNodes = Sets.newHashSet(RegionUtil.getOwnedNodes(region));
 		if (!reachableNodes.equals(allNodes)) {
 			Set<@NonNull Node> extraNodesSet = Sets.newHashSet(reachableNodes);
 			CompilerUtil.removeAll(extraNodesSet, allNodes);
@@ -337,7 +337,7 @@
 	 * what form of edge is required.
 	 */
 	protected void resolveEdgeRoles() {
-		for (@NonNull Edge edge : RegionUtil.getEdges(partitioner.getRegion())) {
+		for (@NonNull Edge edge : RegionUtil.getOwnedEdges(partitioner.getRegion())) {
 			if (!edge.isSecondary() && !hasEdge(edge)) {
 				Role sourceNodeRole = node2nodeRole.get(edge.getEdgeSource());
 				if (sourceNodeRole != null) {
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/Partitioner.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/Partitioner.java
index 2b1420f..0873967 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/Partitioner.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/Partitioner.java
@@ -91,7 +91,7 @@
 	}
 
 	private static void gatherCorrolaries(@NonNull Set<@NonNull Property> corrolaryProperties, @NonNull MappingRegion region) {
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			if (!node.isTrue() && node.isPattern() && node.isRealized() && RegionUtil.getClassDatumAnalysis(node).getDomainUsage().isMiddle()) {
 				for (@NonNull NavigableEdge edge : node.getNavigationEdges()) {
 					if (edge.isRealized() && edge.getEdgeTarget().isRealized()) {
@@ -189,7 +189,7 @@
 	}
 
 	private void analyzeEdges() {
-		for (@NonNull Edge edge : RegionUtil.getEdges(region)) {
+		for (@NonNull Edge edge : RegionUtil.getOwnedEdges(region)) {
 			if (!edge.isSecondary()) {
 				if (edge.isPredicated()) {
 					predicatedEdges.add(edge);
@@ -240,7 +240,7 @@
 	}
 
 	private void analyzeNodes() {
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			if (node.isTrue()) {
 				trueNodes.add(node);
 			}
@@ -284,13 +284,13 @@
 	}
 
 	private void check() {
-		for (@NonNull Node node : RegionUtil.getNodes(region)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(region)) {
 			if ((node.isSpeculated() || node.isRealized()) && !hasRealizedNode(node)) {
 				problemHandler.addProblem(RegionUtil.createRegionError(region, "Should have realized " + node));
 			}
 		}
 		Set<@NonNull Edge> allPrimaryEdges = new HashSet<>();
-		for (@NonNull Edge edge : RegionUtil.getEdges(region)) {
+		for (@NonNull Edge edge : RegionUtil.getOwnedEdges(region)) {
 			if (!edge.isSecondary()) {
 				allPrimaryEdges.add(edge);
 				if (edge.isRealized() && !hasRealizedEdge(edge)) {
@@ -299,7 +299,7 @@
 			}
 		}
 		//
-		Set<@NonNull Node> deadNodes = computeDeadNodes(RegionUtil.getNodes(region));
+		Set<@NonNull Node> deadNodes = computeDeadNodes(RegionUtil.getOwnedNodes(region));
 		Set<@NonNull Edge> deadEdges = computeDeadEdges(deadNodes);
 		allPrimaryEdges.removeAll(deadEdges);
 		Set<@NonNull Edge> partitionedEdges = new HashSet<>(debugEdge2partitions.keySet());
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/PartitioningVisitor.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/PartitioningVisitor.java
index f60f8f1..186f6cf 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/PartitioningVisitor.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/partitioner/PartitioningVisitor.java
@@ -118,13 +118,13 @@
 		//
 		//	Create the nodes.
 		//
-		for (@NonNull Node node : RegionUtil.getNodes(mappingRegion)) {
+		for (@NonNull Node node : RegionUtil.getOwnedNodes(mappingRegion)) {
 			node.accept(this);
 		}
 		//
 		//	Create the edges.
 		//
-		for (@NonNull Edge edge : RegionUtil.getEdges(mappingRegion)) {
+		for (@NonNull Edge edge : RegionUtil.getOwnedEdges(mappingRegion)) {
 			edge.accept(this);
 		}
 		//
diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/splitter/BodyStage.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/splitter/BodyStage.java
index f7c8b40..2e04bb2 100644
--- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/splitter/BodyStage.java
+++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvts/splitter/BodyStage.java
@@ -89,7 +89,7 @@
 		checkAccumulate(accumulator, directlyRequiredNodes);
 		checkAccumulate(accumulator, indirectlyRequiredNodes);
 		checkAccumulate(accumulator, deadNodes);
-		checkAccumulated(accumulator, RegionUtil.getNodes(splitter.getRegion()));
+		checkAccumulated(accumulator, RegionUtil.getOwnedNodes(splitter.getRegion()));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/AbstractDatum.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/AbstractDatum.java
index bf70b6e..043d9a7 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/AbstractDatum.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/AbstractDatum.java
@@ -25,9 +25,9 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedBy <em>Produced By</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredBy <em>Required By</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getTypedModel <em>Typed Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedByActions <em>Produced By Actions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getReferredTypedModel <em>Referred Typed Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredByActions <em>Required By Actions</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum()
@@ -36,68 +36,68 @@
  */
 public interface AbstractDatum extends Element {
 	/**
-	 * Returns the value of the '<em><b>Typed Model</b></em>' reference.
+	 * Returns the value of the '<em><b>Produced By Actions</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProducedDatums <em>Produced Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Typed Model</em>' reference isn't clear,
+	 * If the meaning of the '<em>Produced By Actions</em>' reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Typed Model</em>' reference.
-	 * @see #setTypedModel(TypedModel)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_TypedModel()
+	 * @return the value of the '<em>Produced By Actions</em>' reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_ProducedByActions()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProducedDatums
+	 * @model opposite="producedDatums"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!producedByActions'"
+	 * @generated
+	 */
+	EList<MappingAction> getProducedByActions();
+
+	/**
+	 * Returns the value of the '<em><b>Referred Typed Model</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referred Typed Model</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referred Typed Model</em>' reference.
+	 * @see #setReferredTypedModel(TypedModel)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_ReferredTypedModel()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!typedModel'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!referredTypedModel'"
 	 * @generated
 	 */
-	TypedModel getTypedModel();
+	TypedModel getReferredTypedModel();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getTypedModel <em>Typed Model</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getReferredTypedModel <em>Referred Typed Model</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Typed Model</em>' reference.
-	 * @see #getTypedModel()
+	 * @param value the new value of the '<em>Referred Typed Model</em>' reference.
+	 * @see #getReferredTypedModel()
 	 * @generated
 	 */
-	void setTypedModel(TypedModel value);
+	void setReferredTypedModel(TypedModel value);
 
 	/**
-	 * Returns the value of the '<em><b>Produced By</b></em>' reference list.
+	 * Returns the value of the '<em><b>Required By Actions</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProductions <em>Productions</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequiredDatums <em>Required Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Produced By</em>' reference list isn't clear,
+	 * If the meaning of the '<em>Required By Actions</em>' reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Produced By</em>' reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_ProducedBy()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProductions
-	 * @model opposite="productions"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!producedBy'"
+	 * @return the value of the '<em>Required By Actions</em>' reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_RequiredByActions()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequiredDatums
+	 * @model opposite="requiredDatums" derived="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!requiredByActions'"
 	 * @generated
 	 */
-	EList<MappingAction> getProducedBy();
-
-	/**
-	 * Returns the value of the '<em><b>Required By</b></em>' reference list.
-	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequisites <em>Requisites</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Required By</em>' reference list isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Required By</em>' reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getAbstractDatum_RequiredBy()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequisites
-	 * @model opposite="requisites" derived="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!AbstractDatum!requiredBy'"
-	 * @generated
-	 */
-	EList<MappingAction> getRequiredBy();
+	EList<MappingAction> getRequiredByActions();
 
 } // AbstractDatum
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/BasicMappingRegion.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/BasicMappingRegion.java
index 6df5137..df1ccd9 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/BasicMappingRegion.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/BasicMappingRegion.java
@@ -26,8 +26,8 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getMapping <em>Mapping</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getReferredMapping <em>Referred Mapping</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getBasicMappingRegion()
@@ -37,32 +37,6 @@
 public interface BasicMappingRegion extends MappingRegion {
 
 	/**
-	 * Returns the value of the '<em><b>Mapping</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * The property to navigate from source to target.
-	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Mapping</em>' reference.
-	 * @see #setMapping(Mapping)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getBasicMappingRegion_Mapping()
-	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!BasicMappingRegion!mapping'"
-	 * @generated
-	 */
-	Mapping getMapping();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getMapping <em>Mapping</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mapping</em>' reference.
-	 * @see #getMapping()
-	 * @generated
-	 */
-	void setMapping(Mapping value);
-
-	/**
 	 * Returns the value of the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -78,4 +52,30 @@
 	 */
 	@Override
 	String getName();
+
+	/**
+	 * Returns the value of the '<em><b>Referred Mapping</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * The property to navigate from source to target.
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Referred Mapping</em>' reference.
+	 * @see #setReferredMapping(Mapping)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getBasicMappingRegion_ReferredMapping()
+	 * @model required="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!BasicMappingRegion!referredMapping'"
+	 * @generated
+	 */
+	Mapping getReferredMapping();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getReferredMapping <em>Referred Mapping</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referred Mapping</em>' reference.
+	 * @see #getReferredMapping()
+	 * @generated
+	 */
+	void setReferredMapping(Mapping value);
 } // BasicMappingRegion
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/CastEdge.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/CastEdge.java
index bd6d70e..1631cb2 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/CastEdge.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/CastEdge.java
@@ -27,7 +27,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getProperty <em>Property</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getPrimaryClass <em>Primary Class</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getReferredClass <em>Referred Class</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getCastEdge()
@@ -53,31 +53,31 @@
 	Property getProperty();
 
 	/**
-	 * Returns the value of the '<em><b>Primary Class</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Class</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Primary Class</em>' reference isn't clear,
+	 * If the meaning of the '<em>Referred Class</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Primary Class</em>' reference.
-	 * @see #setPrimaryClass(org.eclipse.ocl.pivot.Class)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getCastEdge_PrimaryClass()
+	 * @return the value of the '<em>Referred Class</em>' reference.
+	 * @see #setReferredClass(org.eclipse.ocl.pivot.Class)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getCastEdge_ReferredClass()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!CastEdge!primaryClass'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!CastEdge!referredClass'"
 	 * @generated
 	 */
-	org.eclipse.ocl.pivot.Class getPrimaryClass();
+	org.eclipse.ocl.pivot.Class getReferredClass();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getPrimaryClass <em>Primary Class</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getReferredClass <em>Referred Class</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Primary Class</em>' reference.
-	 * @see #getPrimaryClass()
+	 * @param value the new value of the '<em>Referred Class</em>' reference.
+	 * @see #getReferredClass()
 	 * @generated
 	 */
-	void setPrimaryClass(org.eclipse.ocl.pivot.Class value);
+	void setReferredClass(org.eclipse.ocl.pivot.Class value);
 
 	void initializeProperty(@NonNull Property property);
 } // CastEdge
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ClassDatum.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ClassDatum.java
index 28736ce..a986dd0 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ClassDatum.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ClassDatum.java
@@ -25,9 +25,9 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getCompleteClass <em>Complete Class</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPrimaryClass <em>Primary Class</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPropertyDatums <em>Property Datums</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel <em>Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningPropertyDatums <em>Owning Property Datums</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel <em>Owning Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getReferredClass <em>Referred Class</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getSuperClassDatums <em>Super Class Datums</em>}</li>
  * </ul>
  *
@@ -64,79 +64,79 @@
 	void setCompleteClass(CompleteClass value);
 
 	/**
-	 * Returns the value of the '<em><b>Primary Class</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Primary Class</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Primary Class</em>' reference.
-	 * @see #setPrimaryClass(org.eclipse.ocl.pivot.Class)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_PrimaryClass()
-	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!primaryClass'"
-	 * @generated
-	 */
-	org.eclipse.ocl.pivot.Class getPrimaryClass();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPrimaryClass <em>Primary Class</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Primary Class</em>' reference.
-	 * @see #getPrimaryClass()
-	 * @generated
-	 */
-	void setPrimaryClass(org.eclipse.ocl.pivot.Class value);
-
-	/**
-	 * Returns the value of the '<em><b>Property Datums</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owning Property Datums</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum <em>Class Datum</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum <em>Owning Class Datum</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Property Datums</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owning Property Datums</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Property Datums</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_PropertyDatums()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum
-	 * @model opposite="classDatum" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!propertyDatums'"
+	 * @return the value of the '<em>Owning Property Datums</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_OwningPropertyDatums()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum
+	 * @model opposite="owningClassDatum" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!owningPropertyDatums'"
 	 * @generated
 	 */
-	EList<PropertyDatum> getPropertyDatums();
+	EList<PropertyDatum> getOwningPropertyDatums();
 
 	/**
-	 * Returns the value of the '<em><b>Schedule Model</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getClassDatums <em>Class Datums</em>}'.
+	 * Returns the value of the '<em><b>Owning Schedule Model</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedClassDatums <em>Owned Class Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Schedule Model</em>' container reference isn't clear,
+	 * If the meaning of the '<em>Owning Schedule Model</em>' container reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Schedule Model</em>' container reference.
-	 * @see #setScheduleModel(ScheduleModel)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_ScheduleModel()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getClassDatums
-	 * @model opposite="classDatums" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!scheduleModel'"
+	 * @return the value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #setOwningScheduleModel(ScheduleModel)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_OwningScheduleModel()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedClassDatums
+	 * @model opposite="ownedClassDatums" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!owningScheduleModel'"
 	 * @generated
 	 */
-	ScheduleModel getScheduleModel();
+	ScheduleModel getOwningScheduleModel();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel <em>Schedule Model</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel <em>Owning Schedule Model</em>}' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Schedule Model</em>' container reference.
-	 * @see #getScheduleModel()
+	 * @param value the new value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #getOwningScheduleModel()
 	 * @generated
 	 */
-	void setScheduleModel(ScheduleModel value);
+	void setOwningScheduleModel(ScheduleModel value);
+
+	/**
+	 * Returns the value of the '<em><b>Referred Class</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referred Class</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referred Class</em>' reference.
+	 * @see #setReferredClass(org.eclipse.ocl.pivot.Class)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getClassDatum_ReferredClass()
+	 * @model required="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ClassDatum!referredClass'"
+	 * @generated
+	 */
+	org.eclipse.ocl.pivot.Class getReferredClass();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getReferredClass <em>Referred Class</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referred Class</em>' reference.
+	 * @see #getReferredClass()
+	 * @generated
+	 */
+	void setReferredClass(org.eclipse.ocl.pivot.Class value);
 
 	/**
 	 * Returns the value of the '<em><b>Super Class Datums</b></em>' reference list.
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Connection.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Connection.java
index 3bc68c0..bcfd094 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Connection.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Connection.java
@@ -26,7 +26,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion <em>Owning Scheduled Region</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getConnection()
@@ -36,33 +36,33 @@
 public interface Connection extends Element, Nameable, Symbolable
 {
 	/**
-	 * Returns the value of the '<em><b>Region</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getConnections <em>Connections</em>}'.
+	 * Returns the value of the '<em><b>Owning Scheduled Region</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedConnections <em>Owned Connections</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Region</em>' container reference isn't clear,
+	 * If the meaning of the '<em>Owning Scheduled Region</em>' container reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Region</em>' container reference.
-	 * @see #setRegion(ScheduledRegion)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getConnection_Region()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getConnections
-	 * @model opposite="connections" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Connection!region'"
+	 * @return the value of the '<em>Owning Scheduled Region</em>' container reference.
+	 * @see #setOwningScheduledRegion(ScheduledRegion)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getConnection_OwningScheduledRegion()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedConnections
+	 * @model opposite="ownedConnections" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Connection!owningScheduledRegion'"
 	 * @generated
 	 */
-	ScheduledRegion getRegion();
+	ScheduledRegion getOwningScheduledRegion();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion <em>Region</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion <em>Owning Scheduled Region</em>}' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Region</em>' container reference.
-	 * @see #getRegion()
+	 * @param value the new value of the '<em>Owning Scheduled Region</em>' container reference.
+	 * @see #getOwningScheduledRegion()
 	 * @generated
 	 */
-	void setRegion(ScheduledRegion value);
+	void setOwningScheduledRegion(ScheduledRegion value);
 
 	void destroy();
 } // Connection
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ConnectionEnd.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ConnectionEnd.java
index 38ec64d..ea81c18 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ConnectionEnd.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ConnectionEnd.java
@@ -34,5 +34,5 @@
 public interface ConnectionEnd extends EObject
 {
 	@NonNull String getDisplayName();
-	/*@NonNull*/ Region getRegion();
+	/*@NonNull*/ Region getOwningRegion();
 } // ConnectionEnd
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/DatumConnection.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/DatumConnection.java
index 8acf266..50babe5 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/DatumConnection.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/DatumConnection.java
@@ -10,6 +10,7 @@
  *******************************************************************************/
 package org.eclipse.qvtd.pivot.qvtschedule;
 
+
 import java.util.List;
 import java.util.Map;
 
@@ -19,10 +20,30 @@
 import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode;
 
 /**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Datum Connection</b></em>'.
+ * @extends GraphEdge, GraphNode
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * A DatumConnection establishes that one or more source edges/nodes are available for use by one or more target edges/nodes.
+ * Derivations refine the availability to edges or nodes, pass by value, optional existence or mandatory existence.
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.DatumConnection#getConnectionRole <em>Connection Role</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.DatumConnection#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.DatumConnection#getSourceEnds <em>Source Ends</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getDatumConnection()
+ * @model abstract="true"
  * @generated
  */
-public interface DatumConnection<CE extends ConnectionEnd> extends Connection, GraphEdge, GraphNode
-{
+public interface DatumConnection<CE extends ConnectionEnd> extends Connection, GraphEdge, GraphNode {
 	/**
 	 * Returns the value of the '<em><b>Connection Role</b></em>' attribute.
 	 * The default value is <code>"UNDEFINED"</code>.
@@ -42,6 +63,7 @@
 	 * @generated
 	 */
 	ConnectionRole getConnectionRole();
+
 	/**
 	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.DatumConnection#getConnectionRole <em>Connection Role</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -52,6 +74,7 @@
 	 * @generated
 	 */
 	void setConnectionRole(ConnectionRole value);
+
 	/**
 	 * Returns the value of the '<em><b>Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
@@ -69,6 +92,7 @@
 	 */
 	@Override
 	String getName();
+
 	/**
 	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.DatumConnection#getName <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -78,6 +102,7 @@
 	 * @generated
 	 */
 	void setName(String value);
+
 	/**
 	 * Returns the value of the '<em><b>Source Ends</b></em>' reference list.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Edge.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Edge.java
index 3224d52..1f916b4 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Edge.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Edge.java
@@ -23,6 +23,7 @@
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Edge</b></em>'.
+ * @extends GraphEdge
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
@@ -35,16 +36,16 @@
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getEdgeRole <em>Edge Role</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion <em>Owning Region</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getSourceNode <em>Source Node</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getTargetNode <em>Target Node</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getEdge()
- * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.qvtd.pivot.qvtschedule.GraphEdge org.eclipse.ocl.pivot.Nameable"
+ * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.ocl.pivot.Nameable"
  * @generated
  */
-public interface Edge extends Element, GraphEdge, Nameable {
+public interface Edge extends Element, Nameable, GraphEdge {
 	/**
 	 * Returns the value of the '<em><b>Edge Role</b></em>' attribute.
 	 * The literals are from the enumeration {@link org.eclipse.qvtd.pivot.qvtschedule.Role}.
@@ -103,33 +104,33 @@
 	void setName(String value);
 
 	/**
-	 * Returns the value of the '<em><b>Region</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getEdges <em>Edges</em>}'.
+	 * Returns the value of the '<em><b>Owning Region</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedEdges <em>Owned Edges</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Region</em>' container reference isn't clear,
+	 * If the meaning of the '<em>Owning Region</em>' container reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Region</em>' container reference.
-	 * @see #setRegion(Region)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getEdge_Region()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getEdges
-	 * @model opposite="edges" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Edge!region'"
+	 * @return the value of the '<em>Owning Region</em>' container reference.
+	 * @see #setOwningRegion(Region)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getEdge_OwningRegion()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedEdges
+	 * @model opposite="ownedEdges" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Edge!owningRegion'"
 	 * @generated
 	 */
-	Region getRegion();
+	Region getOwningRegion();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion <em>Region</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion <em>Owning Region</em>}' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Region</em>' container reference.
-	 * @see #getRegion()
+	 * @param value the new value of the '<em>Owning Region</em>' container reference.
+	 * @see #getOwningRegion()
 	 * @generated
 	 */
-	void setRegion(Region value);
+	void setOwningRegion(Region value);
 
 	/**
 	 * Returns the value of the '<em><b>Source Node</b></em>' reference.
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/EdgeConnection.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/EdgeConnection.java
index 17ad318..f212b0a 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/EdgeConnection.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/EdgeConnection.java
@@ -21,30 +21,30 @@
 public interface EdgeConnection extends DatumConnection<NavigableEdge>
 {
 	/**
-	 * Returns the value of the '<em><b>Property</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Property</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Property</em>' reference isn't clear,
+	 * If the meaning of the '<em>Referred Property</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Property</em>' reference.
-	 * @see #setProperty(Property)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getEdgeConnection_Property()
+	 * @return the value of the '<em>Referred Property</em>' reference.
+	 * @see #setReferredProperty(Property)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getEdgeConnection_ReferredProperty()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!EdgeConnection!property'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!EdgeConnection!referredProperty'"
 	 * @generated
 	 */
-	Property getProperty();
+	Property getReferredProperty();
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getProperty <em>Property</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getReferredProperty <em>Referred Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Property</em>' reference.
-	 * @see #getProperty()
+	 * @param value the new value of the '<em>Referred Property</em>' reference.
+	 * @see #getReferredProperty()
 	 * @generated
 	 */
-	void setProperty(Property value);
+	void setReferredProperty(Property value);
 	void addUsedTargetEdge(@NonNull NavigableEdge targetEdge, boolean mustBeLater);
 	@Override
 	@NonNull Iterable<@NonNull NavigableEdge> getSources();
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/MappingAction.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/MappingAction.java
index 82a8068..5cd9aea 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/MappingAction.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/MappingAction.java
@@ -25,10 +25,10 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getMapping <em>Mapping</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProductions <em>Productions</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequisites <em>Requisites</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel <em>Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel <em>Owning Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProducedDatums <em>Produced Datums</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getReferredMapping <em>Referred Mapping</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequiredDatums <em>Required Datums</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction()
@@ -37,97 +37,97 @@
  */
 public interface MappingAction extends Element {
 	/**
-	 * Returns the value of the '<em><b>Mapping</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Mapping</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Mapping</em>' reference isn't clear,
+	 * If the meaning of the '<em>Referred Mapping</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mapping</em>' reference.
-	 * @see #setMapping(Mapping)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_Mapping()
+	 * @return the value of the '<em>Referred Mapping</em>' reference.
+	 * @see #setReferredMapping(Mapping)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_ReferredMapping()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!mapping'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!referredMapping'"
 	 * @generated
 	 */
-	Mapping getMapping();
+	Mapping getReferredMapping();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getMapping <em>Mapping</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getReferredMapping <em>Referred Mapping</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Mapping</em>' reference.
-	 * @see #getMapping()
+	 * @param value the new value of the '<em>Referred Mapping</em>' reference.
+	 * @see #getReferredMapping()
 	 * @generated
 	 */
-	void setMapping(Mapping value);
+	void setReferredMapping(Mapping value);
 
 	/**
-	 * Returns the value of the '<em><b>Productions</b></em>' reference list.
+	 * Returns the value of the '<em><b>Required Datums</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedBy <em>Produced By</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredByActions <em>Required By Actions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Productions</em>' reference list isn't clear,
+	 * If the meaning of the '<em>Required Datums</em>' reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Productions</em>' reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_Productions()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedBy
-	 * @model opposite="producedBy"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!productions'"
+	 * @return the value of the '<em>Required Datums</em>' reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_RequiredDatums()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredByActions
+	 * @model opposite="requiredByActions"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!requiredDatums'"
 	 * @generated
 	 */
-	EList<AbstractDatum> getProductions();
+	EList<AbstractDatum> getRequiredDatums();
 
 	/**
-	 * Returns the value of the '<em><b>Requisites</b></em>' reference list.
+	 * Returns the value of the '<em><b>Owning Schedule Model</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedMappingActions <em>Owned Mapping Actions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owning Schedule Model</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #setOwningScheduleModel(ScheduleModel)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_OwningScheduleModel()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedMappingActions
+	 * @model opposite="ownedMappingActions" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!owningScheduleModel'"
+	 * @generated
+	 */
+	ScheduleModel getOwningScheduleModel();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel <em>Owning Schedule Model</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #getOwningScheduleModel()
+	 * @generated
+	 */
+	void setOwningScheduleModel(ScheduleModel value);
+
+	/**
+	 * Returns the value of the '<em><b>Produced Datums</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredBy <em>Required By</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedByActions <em>Produced By Actions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Requisites</em>' reference list isn't clear,
+	 * If the meaning of the '<em>Produced Datums</em>' reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Requisites</em>' reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_Requisites()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredBy
-	 * @model opposite="requiredBy"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!requisites'"
+	 * @return the value of the '<em>Produced Datums</em>' reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_ProducedDatums()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedByActions
+	 * @model opposite="producedByActions"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!producedDatums'"
 	 * @generated
 	 */
-	EList<AbstractDatum> getRequisites();
-
-	/**
-	 * Returns the value of the '<em><b>Schedule Model</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getMappingActions <em>Mapping Actions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Schedule Model</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Schedule Model</em>' container reference.
-	 * @see #setScheduleModel(ScheduleModel)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getMappingAction_ScheduleModel()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getMappingActions
-	 * @model opposite="mappingActions" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!MappingAction!scheduleModel'"
-	 * @generated
-	 */
-	ScheduleModel getScheduleModel();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel <em>Schedule Model</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Schedule Model</em>' container reference.
-	 * @see #getScheduleModel()
-	 * @generated
-	 */
-	void setScheduleModel(ScheduleModel value);
+	EList<AbstractDatum> getProducedDatums();
 
 } // MappingAction
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/NavigationEdge.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/NavigationEdge.java
index 370d72f..ca95d85 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/NavigationEdge.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/NavigationEdge.java
@@ -28,7 +28,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#isPartial <em>Partial</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getProperty <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getReferredProperty <em>Referred Property</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNavigationEdge()
@@ -66,31 +66,30 @@
 	void setPartial(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Property</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Property</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
 	 * The property to navigate from source to target.
 	 * <!-- end-model-doc -->
-	 * @return the value of the '<em>Property</em>' reference.
-	 * @see #setProperty(Property)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNavigationEdge_Property()
+	 * @return the value of the '<em>Referred Property</em>' reference.
+	 * @see #setReferredProperty(Property)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNavigationEdge_ReferredProperty()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!NavigationEdge!property'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!NavigationEdge!referredProperty'"
 	 * @generated
 	 */
-	@Override
-	Property getProperty();
+	Property getReferredProperty();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getProperty <em>Property</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getReferredProperty <em>Referred Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Property</em>' reference.
-	 * @see #getProperty()
+	 * @param value the new value of the '<em>Referred Property</em>' reference.
+	 * @see #getReferredProperty()
 	 * @generated
 	 */
-	void setProperty(Property value);
+	void setReferredProperty(Property value);
 
 	void initializeProperty(@NonNull Property property, @Nullable Boolean isPartial);
 } // NavigationEdge
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Node.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Node.java
index c42f5ed..1024a32 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Node.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Node.java
@@ -29,6 +29,7 @@
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Node</b></em>'.
+ * @extends GraphNode
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
@@ -47,14 +48,14 @@
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getNodeRole <em>Node Role</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOutgoingConnections <em>Outgoing Connections</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOutgoingEdges <em>Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion <em>Owning Region</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNode()
- * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.qvtd.pivot.qvtschedule.ConnectionEnd org.eclipse.qvtd.pivot.qvtschedule.GraphNode org.eclipse.ocl.pivot.Nameable"
+ * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.qvtd.pivot.qvtschedule.ConnectionEnd org.eclipse.ocl.pivot.Nameable"
  * @generated
  */
-public interface Node extends Element, ConnectionEnd, GraphNode, Nameable
+public interface Node extends Element, ConnectionEnd, Nameable, GraphNode
 {
 	/**
 	 * Returns the value of the '<em><b>Class Datum</b></em>' reference.
@@ -193,6 +194,36 @@
 	EList<Edge> getOutgoingEdges();
 
 	/**
+	 * Returns the value of the '<em><b>Owning Region</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedNodes <em>Owned Nodes</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owning Region</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owning Region</em>' container reference.
+	 * @see #setOwningRegion(Region)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNode_OwningRegion()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedNodes
+	 * @model opposite="ownedNodes" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Node!owningRegion'"
+	 * @generated
+	 */
+	@Override
+	Region getOwningRegion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion <em>Owning Region</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owning Region</em>' container reference.
+	 * @see #getOwningRegion()
+	 * @generated
+	 */
+	void setOwningRegion(Region value);
+
+	/**
 	 * The prioritized utility of each node.
 	 */
 	public enum Utility {
@@ -259,36 +290,6 @@
 	@NonNull Iterable<@NonNull NavigableEdge> getNavigationEdges();
 	@Nullable Node getNavigationTarget(@NonNull Property source2targetProperty);
 	@NonNull Iterable<@NonNull Node> getNavigationTargets();
-	/**
-	 * Returns the value of the '<em><b>Region</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getNodes <em>Nodes</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Region</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Region</em>' container reference.
-	 * @see #setRegion(Region)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getNode_Region()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getNodes
-	 * @model opposite="nodes" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Node!region'"
-	 * @generated
-	 */
-	@Override
-	Region getRegion();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion <em>Region</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Region</em>' container reference.
-	 * @see #getRegion()
-	 * @generated
-	 */
-	void setRegion(Region value);
-
 	@NonNull Iterable<@NonNull NodeConnection> getOutgoingPassedConnections();
 	@NonNull Iterable<@NonNull NodeConnection> getOutgoingUsedBindingEdges();
 	//	@Nullable InterRegionEdge getPassedBindingEdge();
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/OperationRegion.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/OperationRegion.java
index 78b2860..80f189a 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/OperationRegion.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/OperationRegion.java
@@ -74,31 +74,30 @@
 	 */
 	void setName(String value);
 	/**
-	 * Returns the value of the '<em><b>Operation</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Operation</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Operation</em>' reference isn't clear,
+	 * If the meaning of the '<em>Referred Operation</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Operation</em>' reference.
-	 * @see #setOperation(Operation)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getOperationRegion_Operation()
+	 * @return the value of the '<em>Referred Operation</em>' reference.
+	 * @see #setReferredOperation(Operation)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getOperationRegion_ReferredOperation()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!OperationRegion!operation'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!OperationRegion!referredOperation'"
 	 * @generated
 	 */
-	Operation getOperation();
+	Operation getReferredOperation();
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getOperation <em>Operation</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getReferredOperation <em>Referred Operation</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Operation</em>' reference.
-	 * @see #getOperation()
+	 * @param value the new value of the '<em>Referred Operation</em>' reference.
+	 * @see #getReferredOperation()
 	 * @generated
 	 */
-	void setOperation(Operation value);
-
+	void setReferredOperation(Operation value);
 	/**
 	 * Returns the value of the '<em><b>Result Node</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/PropertyDatum.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/PropertyDatum.java
index 148c5db..3bad4e7 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/PropertyDatum.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/PropertyDatum.java
@@ -24,10 +24,10 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getProperty <em>Property</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum <em>Class Datum</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOpposite <em>Opposite</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuper <em>Super</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum <em>Owning Class Datum</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getReferredProperty <em>Referred Property</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuperPropertyDatums <em>Super Property Datums</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum()
@@ -36,62 +36,6 @@
  */
 public interface PropertyDatum extends AbstractDatum {
 	/**
-	 * Returns the value of the '<em><b>Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Property</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Property</em>' reference.
-	 * @see #setProperty(Property)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_Property()
-	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!property'"
-	 * @generated
-	 */
-	Property getProperty();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getProperty <em>Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Property</em>' reference.
-	 * @see #getProperty()
-	 * @generated
-	 */
-	void setProperty(Property value);
-
-	/**
-	 * Returns the value of the '<em><b>Class Datum</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPropertyDatums <em>Property Datums</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Class Datum</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Class Datum</em>' container reference.
-	 * @see #setClassDatum(ClassDatum)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_ClassDatum()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPropertyDatums
-	 * @model opposite="propertyDatums" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!classDatum'"
-	 * @generated
-	 */
-	ClassDatum getClassDatum();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum <em>Class Datum</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Class Datum</em>' container reference.
-	 * @see #getClassDatum()
-	 * @generated
-	 */
-	void setClassDatum(ClassDatum value);
-
-	/**
 	 * Returns the value of the '<em><b>Opposite</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
@@ -118,19 +62,75 @@
 	void setOpposite(PropertyDatum value);
 
 	/**
-	 * Returns the value of the '<em><b>Super</b></em>' reference list.
-	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum}.
+	 * Returns the value of the '<em><b>Owning Class Datum</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningPropertyDatums <em>Owning Property Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Super</em>' reference list isn't clear,
+	 * If the meaning of the '<em>Owning Class Datum</em>' container reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Super</em>' reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_Super()
-	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!super'"
+	 * @return the value of the '<em>Owning Class Datum</em>' container reference.
+	 * @see #setOwningClassDatum(ClassDatum)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_OwningClassDatum()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningPropertyDatums
+	 * @model opposite="owningPropertyDatums" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!owningClassDatum'"
 	 * @generated
 	 */
-	EList<PropertyDatum> getSuper();
+	ClassDatum getOwningClassDatum();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum <em>Owning Class Datum</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owning Class Datum</em>' container reference.
+	 * @see #getOwningClassDatum()
+	 * @generated
+	 */
+	void setOwningClassDatum(ClassDatum value);
+
+	/**
+	 * Returns the value of the '<em><b>Referred Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Referred Property</em>' reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Referred Property</em>' reference.
+	 * @see #setReferredProperty(Property)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_ReferredProperty()
+	 * @model required="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!referredProperty'"
+	 * @generated
+	 */
+	Property getReferredProperty();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getReferredProperty <em>Referred Property</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Referred Property</em>' reference.
+	 * @see #getReferredProperty()
+	 * @generated
+	 */
+	void setReferredProperty(Property value);
+
+	/**
+	 * Returns the value of the '<em><b>Super Property Datums</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum}.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Super Property Datums</em>' reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Super Property Datums</em>' reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getPropertyDatum_SuperPropertyDatums()
+	 * @model annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!PropertyDatum!superPropertyDatums'"
+	 * @generated
+	 */
+	EList<PropertyDatum> getSuperPropertyDatums();
 
 } // PropertyDatum
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTschedulePackage.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTschedulePackage.java
index d642246..16595df 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTschedulePackage.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTschedulePackage.java
@@ -126,31 +126,31 @@
 	int ABSTRACT_DATUM__OWNED_EXTENSIONS = PivotPackage.ELEMENT__OWNED_EXTENSIONS;
 
 	/**
-	 * The feature id for the '<em><b>Produced By</b></em>' reference list.
+	 * The feature id for the '<em><b>Produced By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_DATUM__PRODUCED_BY = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
+	int ABSTRACT_DATUM__PRODUCED_BY_ACTIONS = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Required By</b></em>' reference list.
+	 * The feature id for the '<em><b>Referred Typed Model</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_DATUM__REQUIRED_BY = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
+	int ABSTRACT_DATUM__REFERRED_TYPED_MODEL = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Typed Model</b></em>' reference.
+	 * The feature id for the '<em><b>Required By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_DATUM__TYPED_MODEL = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
+	int ABSTRACT_DATUM__REQUIRED_BY_ACTIONS = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Abstract Datum</em>' class.
@@ -256,7 +256,7 @@
 	 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getRole()
 	 * @generated
 	 */
-	int ROLE = 45;
+	int ROLE = 42;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl <em>Mapping Action</em>}' class.
@@ -494,40 +494,31 @@
 	int REGION__SYMBOL_NAME = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REGION__EDGES = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
+	int REGION__OWNED_EDGES = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REGION__INVOKING_REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
+	int REGION__OWNED_NODES = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REGION__NODES = PivotPackage.ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int REGION__REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 4;
+	int REGION__OWNING_SCHEDULED_REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Region</em>' class.
@@ -536,7 +527,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REGION_FEATURE_COUNT = PivotPackage.ELEMENT_FEATURE_COUNT + 5;
+	int REGION_FEATURE_COUNT = PivotPackage.ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>All Owned Elements</em>' operation.
@@ -611,40 +602,31 @@
 	int MAPPING_REGION__SYMBOL_NAME = REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_REGION__EDGES = REGION__EDGES;
+	int MAPPING_REGION__OWNED_EDGES = REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_REGION__INVOKING_REGION = REGION__INVOKING_REGION;
+	int MAPPING_REGION__OWNED_NODES = REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_REGION__NODES = REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MAPPING_REGION__REGION = REGION__REGION;
+	int MAPPING_REGION__OWNING_SCHEDULED_REGION = REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Mapping Region</em>' class.
@@ -738,49 +720,31 @@
 	int BASIC_MAPPING_REGION__SYMBOL_NAME = MAPPING_REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BASIC_MAPPING_REGION__EDGES = MAPPING_REGION__EDGES;
+	int BASIC_MAPPING_REGION__OWNED_EDGES = MAPPING_REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BASIC_MAPPING_REGION__INVOKING_REGION = MAPPING_REGION__INVOKING_REGION;
+	int BASIC_MAPPING_REGION__OWNED_NODES = MAPPING_REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BASIC_MAPPING_REGION__NODES = MAPPING_REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BASIC_MAPPING_REGION__REGION = MAPPING_REGION__REGION;
-
-	/**
-	 * The feature id for the '<em><b>Mapping</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int BASIC_MAPPING_REGION__MAPPING = MAPPING_REGION_FEATURE_COUNT + 0;
+	int BASIC_MAPPING_REGION__OWNING_SCHEDULED_REGION = MAPPING_REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -789,7 +753,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int BASIC_MAPPING_REGION__NAME = MAPPING_REGION_FEATURE_COUNT + 1;
+	int BASIC_MAPPING_REGION__NAME = MAPPING_REGION_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Referred Mapping</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASIC_MAPPING_REGION__REFERRED_MAPPING = MAPPING_REGION_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Basic Mapping Region</em>' class.
@@ -882,13 +855,13 @@
 	int EDGE__NAME = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EDGE__REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
+	int EDGE__OWNING_REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -999,13 +972,13 @@
 	int NAVIGABLE_EDGE__NAME = EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAVIGABLE_EDGE__REGION = EDGE__REGION;
+	int NAVIGABLE_EDGE__OWNING_REGION = EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -1152,13 +1125,13 @@
 	int CAST_EDGE__NAME = NAVIGABLE_EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CAST_EDGE__REGION = NAVIGABLE_EDGE__REGION;
+	int CAST_EDGE__OWNING_REGION = NAVIGABLE_EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -1224,13 +1197,13 @@
 	int CAST_EDGE__PROPERTY = NAVIGABLE_EDGE_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Primary Class</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Class</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CAST_EDGE__PRIMARY_CLASS = NAVIGABLE_EDGE_FEATURE_COUNT + 1;
+	int CAST_EDGE__REFERRED_CLASS = NAVIGABLE_EDGE_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Cast Edge</em>' class.
@@ -1305,31 +1278,31 @@
 	int CLASS_DATUM__OWNED_EXTENSIONS = ABSTRACT_DATUM__OWNED_EXTENSIONS;
 
 	/**
-	 * The feature id for the '<em><b>Produced By</b></em>' reference list.
+	 * The feature id for the '<em><b>Produced By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__PRODUCED_BY = ABSTRACT_DATUM__PRODUCED_BY;
+	int CLASS_DATUM__PRODUCED_BY_ACTIONS = ABSTRACT_DATUM__PRODUCED_BY_ACTIONS;
 
 	/**
-	 * The feature id for the '<em><b>Required By</b></em>' reference list.
+	 * The feature id for the '<em><b>Referred Typed Model</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__REQUIRED_BY = ABSTRACT_DATUM__REQUIRED_BY;
+	int CLASS_DATUM__REFERRED_TYPED_MODEL = ABSTRACT_DATUM__REFERRED_TYPED_MODEL;
 
 	/**
-	 * The feature id for the '<em><b>Typed Model</b></em>' reference.
+	 * The feature id for the '<em><b>Required By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__TYPED_MODEL = ABSTRACT_DATUM__TYPED_MODEL;
+	int CLASS_DATUM__REQUIRED_BY_ACTIONS = ABSTRACT_DATUM__REQUIRED_BY_ACTIONS;
 
 	/**
 	 * The feature id for the '<em><b>Complete Class</b></em>' reference.
@@ -1341,31 +1314,31 @@
 	int CLASS_DATUM__COMPLETE_CLASS = ABSTRACT_DATUM_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Primary Class</b></em>' reference.
+	 * The feature id for the '<em><b>Owning Property Datums</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__PRIMARY_CLASS = ABSTRACT_DATUM_FEATURE_COUNT + 1;
+	int CLASS_DATUM__OWNING_PROPERTY_DATUMS = ABSTRACT_DATUM_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Property Datums</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Schedule Model</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__PROPERTY_DATUMS = ABSTRACT_DATUM_FEATURE_COUNT + 2;
+	int CLASS_DATUM__OWNING_SCHEDULE_MODEL = ABSTRACT_DATUM_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Schedule Model</b></em>' container reference.
+	 * The feature id for the '<em><b>Referred Class</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASS_DATUM__SCHEDULE_MODEL = ABSTRACT_DATUM_FEATURE_COUNT + 3;
+	int CLASS_DATUM__REFERRED_CLASS = ABSTRACT_DATUM_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Super Class Datums</b></em>' reference list.
@@ -1512,13 +1485,13 @@
 	int NODE__OUTGOING_EDGES = PivotPackage.ELEMENT_FEATURE_COUNT + 6;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NODE__REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 7;
+	int NODE__OWNING_REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The number of structural features of the '<em>Node</em>' class.
@@ -1656,13 +1629,13 @@
 	int COMPOSED_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPOSED_NODE__REGION = NODE__REGION;
+	int COMPOSED_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Composed Node</em>' class.
@@ -1746,13 +1719,13 @@
 	int CONNECTION__SYMBOL_NAME = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTION__REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
+	int CONNECTION__OWNING_SCHEDULED_REGION = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Connection</em>' class.
@@ -1854,13 +1827,13 @@
 	int DATUM_CONNECTION__SYMBOL_NAME = CONNECTION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATUM_CONNECTION__REGION = CONNECTION__REGION;
+	int DATUM_CONNECTION__OWNING_SCHEDULED_REGION = CONNECTION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Connection Role</b></em>' attribute.
@@ -2025,13 +1998,13 @@
 	int DEPENDENCY_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DEPENDENCY_NODE__REGION = NODE__REGION;
+	int DEPENDENCY_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Dependency Node</em>' class.
@@ -2115,13 +2088,13 @@
 	int EDGE_CONNECTION__SYMBOL_NAME = DATUM_CONNECTION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EDGE_CONNECTION__REGION = DATUM_CONNECTION__REGION;
+	int EDGE_CONNECTION__OWNING_SCHEDULED_REGION = DATUM_CONNECTION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Connection Role</b></em>' attribute.
@@ -2151,13 +2124,13 @@
 	int EDGE_CONNECTION__SOURCE_ENDS = DATUM_CONNECTION__SOURCE_ENDS;
 
 	/**
-	 * The feature id for the '<em><b>Property</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Property</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EDGE_CONNECTION__PROPERTY = DATUM_CONNECTION_FEATURE_COUNT + 0;
+	int EDGE_CONNECTION__REFERRED_PROPERTY = DATUM_CONNECTION_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Edge Connection</em>' class.
@@ -2295,13 +2268,13 @@
 	int ERROR_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ERROR_NODE__REGION = NODE__REGION;
+	int ERROR_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Error Node</em>' class.
@@ -2394,13 +2367,13 @@
 	int EXPRESSION_EDGE__NAME = EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EXPRESSION_EDGE__REGION = EDGE__REGION;
+	int EXPRESSION_EDGE__OWNING_REGION = EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -2556,13 +2529,13 @@
 	int INPUT_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INPUT_NODE__REGION = NODE__REGION;
+	int INPUT_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Input Node</em>' class.
@@ -2655,13 +2628,13 @@
 	int ITERATED_EDGE__NAME = EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ITERATED_EDGE__REGION = EDGE__REGION;
+	int ITERATED_EDGE__OWNING_REGION = EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -2817,22 +2790,22 @@
 	int VARIABLE_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_NODE__REGION = NODE__REGION;
+	int VARIABLE_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
-	 * The feature id for the '<em><b>Variable</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Variable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_NODE__VARIABLE = NODE_FEATURE_COUNT + 0;
+	int VARIABLE_NODE__REFERRED_VARIABLE = NODE_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Variable Node</em>' class.
@@ -2970,22 +2943,22 @@
 	int ITERATOR_NODE__OUTGOING_EDGES = VARIABLE_NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ITERATOR_NODE__REGION = VARIABLE_NODE__REGION;
+	int ITERATOR_NODE__OWNING_REGION = VARIABLE_NODE__OWNING_REGION;
 
 	/**
-	 * The feature id for the '<em><b>Variable</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Variable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ITERATOR_NODE__VARIABLE = VARIABLE_NODE__VARIABLE;
+	int ITERATOR_NODE__REFERRED_VARIABLE = VARIABLE_NODE__REFERRED_VARIABLE;
 
 	/**
 	 * The number of structural features of the '<em>Iterator Node</em>' class.
@@ -3079,40 +3052,31 @@
 	int LOADING_REGION__SYMBOL_NAME = REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOADING_REGION__EDGES = REGION__EDGES;
+	int LOADING_REGION__OWNED_EDGES = REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOADING_REGION__INVOKING_REGION = REGION__INVOKING_REGION;
+	int LOADING_REGION__OWNED_NODES = REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOADING_REGION__NODES = REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LOADING_REGION__REGION = REGION__REGION;
+	int LOADING_REGION__OWNING_SCHEDULED_REGION = REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Loading Region</em>' class.
@@ -3187,40 +3151,40 @@
 	int MAPPING_ACTION__OWNED_EXTENSIONS = PivotPackage.ELEMENT__OWNED_EXTENSIONS;
 
 	/**
-	 * The feature id for the '<em><b>Mapping</b></em>' reference.
+	 * The feature id for the '<em><b>Owning Schedule Model</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_ACTION__MAPPING = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
+	int MAPPING_ACTION__OWNING_SCHEDULE_MODEL = PivotPackage.ELEMENT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Productions</b></em>' reference list.
+	 * The feature id for the '<em><b>Produced Datums</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_ACTION__PRODUCTIONS = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
+	int MAPPING_ACTION__PRODUCED_DATUMS = PivotPackage.ELEMENT_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Requisites</b></em>' reference list.
+	 * The feature id for the '<em><b>Referred Mapping</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_ACTION__REQUISITES = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
+	int MAPPING_ACTION__REFERRED_MAPPING = PivotPackage.ELEMENT_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Schedule Model</b></em>' container reference.
+	 * The feature id for the '<em><b>Required Datums</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MAPPING_ACTION__SCHEDULE_MODEL = PivotPackage.ELEMENT_FEATURE_COUNT + 3;
+	int MAPPING_ACTION__REQUIRED_DATUMS = PivotPackage.ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Mapping Action</em>' class.
@@ -3304,40 +3268,31 @@
 	int MICRO_MAPPING_REGION__SYMBOL_NAME = MAPPING_REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MICRO_MAPPING_REGION__EDGES = MAPPING_REGION__EDGES;
+	int MICRO_MAPPING_REGION__OWNED_EDGES = MAPPING_REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MICRO_MAPPING_REGION__INVOKING_REGION = MAPPING_REGION__INVOKING_REGION;
+	int MICRO_MAPPING_REGION__OWNED_NODES = MAPPING_REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MICRO_MAPPING_REGION__NODES = MAPPING_REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int MICRO_MAPPING_REGION__REGION = MAPPING_REGION__REGION;
+	int MICRO_MAPPING_REGION__OWNING_SCHEDULED_REGION = MAPPING_REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Mapping Region</b></em>' reference.
@@ -3458,40 +3413,31 @@
 	int NAMED_MAPPING_REGION__SYMBOL_NAME = MAPPING_REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_MAPPING_REGION__EDGES = MAPPING_REGION__EDGES;
+	int NAMED_MAPPING_REGION__OWNED_EDGES = MAPPING_REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_MAPPING_REGION__INVOKING_REGION = MAPPING_REGION__INVOKING_REGION;
+	int NAMED_MAPPING_REGION__OWNED_NODES = MAPPING_REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAMED_MAPPING_REGION__NODES = MAPPING_REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int NAMED_MAPPING_REGION__REGION = MAPPING_REGION__REGION;
+	int NAMED_MAPPING_REGION__OWNING_SCHEDULED_REGION = MAPPING_REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -3602,13 +3548,13 @@
 	int NAVIGATION_EDGE__NAME = NAVIGABLE_EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAVIGATION_EDGE__REGION = NAVIGABLE_EDGE__REGION;
+	int NAVIGATION_EDGE__OWNING_REGION = NAVIGABLE_EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -3674,13 +3620,13 @@
 	int NAVIGATION_EDGE__PARTIAL = NAVIGABLE_EDGE_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Property</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Property</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NAVIGATION_EDGE__PROPERTY = NAVIGABLE_EDGE_FEATURE_COUNT + 1;
+	int NAVIGATION_EDGE__REFERRED_PROPERTY = NAVIGABLE_EDGE_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Navigation Edge</em>' class.
@@ -3764,13 +3710,13 @@
 	int NODE_CONNECTION__SYMBOL_NAME = DATUM_CONNECTION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NODE_CONNECTION__REGION = DATUM_CONNECTION__REGION;
+	int NODE_CONNECTION__OWNING_SCHEDULED_REGION = DATUM_CONNECTION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Connection Role</b></em>' attribute.
@@ -3954,13 +3900,13 @@
 	int NULL_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NULL_NODE__REGION = NODE__REGION;
+	int NULL_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Matched</b></em>' attribute.
@@ -4117,13 +4063,13 @@
 	int OPERATION_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_NODE__REGION = NODE__REGION;
+	int OPERATION_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Matched</b></em>' attribute.
@@ -4216,40 +4162,31 @@
 	int OPERATION_REGION__SYMBOL_NAME = REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_REGION__EDGES = REGION__EDGES;
+	int OPERATION_REGION__OWNED_EDGES = REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_REGION__INVOKING_REGION = REGION__INVOKING_REGION;
+	int OPERATION_REGION__OWNED_NODES = REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_REGION__NODES = REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int OPERATION_REGION__REGION = REGION__REGION;
+	int OPERATION_REGION__OWNING_SCHEDULED_REGION = REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Dependency Nodes</b></em>' reference list.
@@ -4279,13 +4216,13 @@
 	int OPERATION_REGION__NAME = REGION_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Operation</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Operation</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATION_REGION__OPERATION = REGION_FEATURE_COUNT + 3;
+	int OPERATION_REGION__REFERRED_OPERATION = REGION_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Result Node</b></em>' reference.
@@ -4442,13 +4379,13 @@
 	int PATTERN_TYPED_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PATTERN_TYPED_NODE__REGION = NODE__REGION;
+	int PATTERN_TYPED_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Matched</b></em>' attribute.
@@ -4605,22 +4542,22 @@
 	int PATTERN_VARIABLE_NODE__OUTGOING_EDGES = VARIABLE_NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PATTERN_VARIABLE_NODE__REGION = VARIABLE_NODE__REGION;
+	int PATTERN_VARIABLE_NODE__OWNING_REGION = VARIABLE_NODE__OWNING_REGION;
 
 	/**
-	 * The feature id for the '<em><b>Variable</b></em>' reference.
+	 * The feature id for the '<em><b>Referred Variable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PATTERN_VARIABLE_NODE__VARIABLE = VARIABLE_NODE__VARIABLE;
+	int PATTERN_VARIABLE_NODE__REFERRED_VARIABLE = VARIABLE_NODE__REFERRED_VARIABLE;
 
 	/**
 	 * The feature id for the '<em><b>Matched</b></em>' attribute.
@@ -4732,13 +4669,13 @@
 	int PREDICATE_EDGE__NAME = EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PREDICATE_EDGE__REGION = EDGE__REGION;
+	int PREDICATE_EDGE__OWNING_REGION = EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -4831,49 +4768,31 @@
 	int PROPERTY_DATUM__OWNED_EXTENSIONS = ABSTRACT_DATUM__OWNED_EXTENSIONS;
 
 	/**
-	 * The feature id for the '<em><b>Produced By</b></em>' reference list.
+	 * The feature id for the '<em><b>Produced By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY_DATUM__PRODUCED_BY = ABSTRACT_DATUM__PRODUCED_BY;
+	int PROPERTY_DATUM__PRODUCED_BY_ACTIONS = ABSTRACT_DATUM__PRODUCED_BY_ACTIONS;
 
 	/**
-	 * The feature id for the '<em><b>Required By</b></em>' reference list.
+	 * The feature id for the '<em><b>Referred Typed Model</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY_DATUM__REQUIRED_BY = ABSTRACT_DATUM__REQUIRED_BY;
+	int PROPERTY_DATUM__REFERRED_TYPED_MODEL = ABSTRACT_DATUM__REFERRED_TYPED_MODEL;
 
 	/**
-	 * The feature id for the '<em><b>Typed Model</b></em>' reference.
+	 * The feature id for the '<em><b>Required By Actions</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY_DATUM__TYPED_MODEL = ABSTRACT_DATUM__TYPED_MODEL;
-
-	/**
-	 * The feature id for the '<em><b>Property</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DATUM__PROPERTY = ABSTRACT_DATUM_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Class Datum</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int PROPERTY_DATUM__CLASS_DATUM = ABSTRACT_DATUM_FEATURE_COUNT + 1;
+	int PROPERTY_DATUM__REQUIRED_BY_ACTIONS = ABSTRACT_DATUM__REQUIRED_BY_ACTIONS;
 
 	/**
 	 * The feature id for the '<em><b>Opposite</b></em>' reference.
@@ -4882,16 +4801,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY_DATUM__OPPOSITE = ABSTRACT_DATUM_FEATURE_COUNT + 2;
+	int PROPERTY_DATUM__OPPOSITE = ABSTRACT_DATUM_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Super</b></em>' reference list.
+	 * The feature id for the '<em><b>Owning Class Datum</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROPERTY_DATUM__SUPER = ABSTRACT_DATUM_FEATURE_COUNT + 3;
+	int PROPERTY_DATUM__OWNING_CLASS_DATUM = ABSTRACT_DATUM_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Referred Property</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY_DATUM__REFERRED_PROPERTY = ABSTRACT_DATUM_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Super Property Datums</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROPERTY_DATUM__SUPER_PROPERTY_DATUMS = ABSTRACT_DATUM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Property Datum</em>' class.
@@ -4994,13 +4931,13 @@
 	int RECURSION_EDGE__NAME = EDGE__NAME;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RECURSION_EDGE__REGION = EDGE__REGION;
+	int RECURSION_EDGE__OWNING_REGION = EDGE__OWNING_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Source Node</b></em>' reference.
@@ -5166,40 +5103,40 @@
 	int SCHEDULE_MODEL__LOADING_REGION = PivotPackage.MODEL_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Scheduled Region</b></em>' containment reference.
+	 * The feature id for the '<em><b>Owned Class Datums</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_MODEL__SCHEDULED_REGION = PivotPackage.MODEL_FEATURE_COUNT + 1;
+	int SCHEDULE_MODEL__OWNED_CLASS_DATUMS = PivotPackage.MODEL_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Class Datums</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Mapping Actions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_MODEL__CLASS_DATUMS = PivotPackage.MODEL_FEATURE_COUNT + 2;
+	int SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS = PivotPackage.MODEL_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Other Mapping Regions</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Other Mapping Regions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_MODEL__OTHER_MAPPING_REGIONS = PivotPackage.MODEL_FEATURE_COUNT + 3;
+	int SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS = PivotPackage.MODEL_FEATURE_COUNT + 3;
 
 	/**
-	 * The feature id for the '<em><b>Mapping Actions</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Scheduled Region</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_MODEL__MAPPING_ACTIONS = PivotPackage.MODEL_FEATURE_COUNT + 4;
+	int SCHEDULE_MODEL__OWNED_SCHEDULED_REGION = PivotPackage.MODEL_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Schedule Model</em>' class.
@@ -5293,49 +5230,31 @@
 	int SCHEDULED_REGION__SYMBOL_NAME = REGION__SYMBOL_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Edges</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__EDGES = REGION__EDGES;
+	int SCHEDULED_REGION__OWNED_EDGES = REGION__OWNED_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Invoking Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__INVOKING_REGION = REGION__INVOKING_REGION;
+	int SCHEDULED_REGION__OWNED_NODES = REGION__OWNED_NODES;
 
 	/**
-	 * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owning Scheduled Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__NODES = REGION__NODES;
-
-	/**
-	 * The feature id for the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SCHEDULED_REGION__REGION = REGION__REGION;
-
-	/**
-	 * The feature id for the '<em><b>Connections</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int SCHEDULED_REGION__CONNECTIONS = REGION_FEATURE_COUNT + 0;
+	int SCHEDULED_REGION__OWNING_SCHEDULED_REGION = REGION__OWNING_SCHEDULED_REGION;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5344,25 +5263,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__NAME = REGION_FEATURE_COUNT + 1;
+	int SCHEDULED_REGION__NAME = REGION_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Regions</b></em>' containment reference list.
+	 * The feature id for the '<em><b>Owned Connections</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__REGIONS = REGION_FEATURE_COUNT + 2;
+	int SCHEDULED_REGION__OWNED_CONNECTIONS = REGION_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Schedule Model</b></em>' container reference.
+	 * The feature id for the '<em><b>Owned Regions</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULED_REGION__SCHEDULE_MODEL = REGION_FEATURE_COUNT + 3;
+	int SCHEDULED_REGION__OWNED_REGIONS = REGION_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Owning Schedule Model</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULED_REGION__OWNING_SCHEDULE_MODEL = REGION_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Scheduled Region</em>' class.
@@ -5547,13 +5475,13 @@
 	int TRUE_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TRUE_NODE__REGION = NODE__REGION;
+	int TRUE_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>True Node</em>' class.
@@ -5701,13 +5629,13 @@
 	int UNKNOWN_NODE__OUTGOING_EDGES = NODE__OUTGOING_EDGES;
 
 	/**
-	 * The feature id for the '<em><b>Region</b></em>' container reference.
+	 * The feature id for the '<em><b>Owning Region</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int UNKNOWN_NODE__REGION = NODE__REGION;
+	int UNKNOWN_NODE__OWNING_REGION = NODE__OWNING_REGION;
 
 	/**
 	 * The number of structural features of the '<em>Unknown Node</em>' class.
@@ -5774,90 +5702,6 @@
 	int DOMAIN_USAGE_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge <em>Graph Edge</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getGraphEdge()
-	 * @generated
-	 */
-	int GRAPH_EDGE = 41;
-
-	/**
-	 * The number of structural features of the '<em>Graph Edge</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GRAPH_EDGE_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Graph Edge</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GRAPH_EDGE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode <em>Graph Node</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getGraphNode()
-	 * @generated
-	 */
-	int GRAPH_NODE = 42;
-
-	/**
-	 * The number of structural features of the '<em>Graph Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GRAPH_NODE_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>Graph Node</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int GRAPH_NODE_OPERATION_COUNT = 0;
-
-	/**
-	 * The meta object id for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable <em>To DO Table</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getToDOTable()
-	 * @generated
-	 */
-	int TO_DO_TABLE = 43;
-
-	/**
-	 * The number of structural features of the '<em>To DO Table</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TO_DO_TABLE_FEATURE_COUNT = 0;
-
-	/**
-	 * The number of operations of the '<em>To DO Table</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int TO_DO_TABLE_OPERATION_COUNT = 0;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.qvtd.pivot.qvtschedule.ConnectionRole <em>Connection Role</em>}' enum.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5865,7 +5709,7 @@
 	 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getConnectionRole()
 	 * @generated
 	 */
-	int CONNECTION_ROLE = 44;
+	int CONNECTION_ROLE = 41;
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum <em>Abstract Datum</em>}'.
@@ -5878,37 +5722,37 @@
 	EClass getAbstractDatum();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedBy <em>Produced By</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedByActions <em>Produced By Actions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Produced By</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedBy()
+	 * @return the meta object for the reference list '<em>Produced By Actions</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getProducedByActions()
 	 * @see #getAbstractDatum()
 	 * @generated
 	 */
-	EReference getAbstractDatum_ProducedBy();
+	EReference getAbstractDatum_ProducedByActions();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredBy <em>Required By</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getReferredTypedModel <em>Referred Typed Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Required By</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredBy()
+	 * @return the meta object for the reference '<em>Referred Typed Model</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getReferredTypedModel()
 	 * @see #getAbstractDatum()
 	 * @generated
 	 */
-	EReference getAbstractDatum_RequiredBy();
+	EReference getAbstractDatum_ReferredTypedModel();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getTypedModel <em>Typed Model</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredByActions <em>Required By Actions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Typed Model</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getTypedModel()
+	 * @return the meta object for the reference list '<em>Required By Actions</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum#getRequiredByActions()
 	 * @see #getAbstractDatum()
 	 * @generated
 	 */
-	EReference getAbstractDatum_TypedModel();
+	EReference getAbstractDatum_RequiredByActions();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion <em>Basic Mapping Region</em>}'.
@@ -5921,17 +5765,6 @@
 	EClass getBasicMappingRegion();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getMapping <em>Mapping</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Mapping</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getMapping()
-	 * @see #getBasicMappingRegion()
-	 * @generated
-	 */
-	EReference getBasicMappingRegion_Mapping();
-
-	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getName <em>Name</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5943,6 +5776,17 @@
 	EAttribute getBasicMappingRegion_Name();
 
 	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getReferredMapping <em>Referred Mapping</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Referred Mapping</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.BasicMappingRegion#getReferredMapping()
+	 * @see #getBasicMappingRegion()
+	 * @generated
+	 */
+	EReference getBasicMappingRegion_ReferredMapping();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge <em>Cast Edge</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5964,15 +5808,15 @@
 	EReference getCastEdge_Property();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getPrimaryClass <em>Primary Class</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getReferredClass <em>Referred Class</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Primary Class</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getPrimaryClass()
+	 * @return the meta object for the reference '<em>Referred Class</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.CastEdge#getReferredClass()
 	 * @see #getCastEdge()
 	 * @generated
 	 */
-	EReference getCastEdge_PrimaryClass();
+	EReference getCastEdge_ReferredClass();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum <em>Class Datum</em>}'.
@@ -5996,37 +5840,37 @@
 	EReference getClassDatum_CompleteClass();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPrimaryClass <em>Primary Class</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningPropertyDatums <em>Owning Property Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Primary Class</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPrimaryClass()
+	 * @return the meta object for the containment reference list '<em>Owning Property Datums</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningPropertyDatums()
 	 * @see #getClassDatum()
 	 * @generated
 	 */
-	EReference getClassDatum_PrimaryClass();
+	EReference getClassDatum_OwningPropertyDatums();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPropertyDatums <em>Property Datums</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Property Datums</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getPropertyDatums()
+	 * @return the meta object for the container reference '<em>Owning Schedule Model</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel()
 	 * @see #getClassDatum()
 	 * @generated
 	 */
-	EReference getClassDatum_PropertyDatums();
+	EReference getClassDatum_OwningScheduleModel();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel <em>Schedule Model</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getReferredClass <em>Referred Class</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Schedule Model</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel()
+	 * @return the meta object for the reference '<em>Referred Class</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getReferredClass()
 	 * @see #getClassDatum()
 	 * @generated
 	 */
-	EReference getClassDatum_ScheduleModel();
+	EReference getClassDatum_ReferredClass();
 
 	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getSuperClassDatums <em>Super Class Datums</em>}'.
@@ -6060,15 +5904,15 @@
 	EClass getConnection();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion <em>Region</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion <em>Owning Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion()
+	 * @return the meta object for the container reference '<em>Owning Scheduled Region</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion()
 	 * @see #getConnection()
 	 * @generated
 	 */
-	EReference getConnection_Region();
+	EReference getConnection_OwningScheduledRegion();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.ConnectionEnd <em>Connection End</em>}'.
@@ -6166,15 +6010,15 @@
 	EAttribute getEdge_Name();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion <em>Region</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion <em>Owning Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion()
+	 * @return the meta object for the container reference '<em>Owning Region</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion()
 	 * @see #getEdge()
 	 * @generated
 	 */
-	EReference getEdge_Region();
+	EReference getEdge_OwningRegion();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getSourceNode <em>Source Node</em>}'.
@@ -6209,15 +6053,15 @@
 	EClass getEdgeConnection();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getProperty <em>Property</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getReferredProperty <em>Referred Property</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Property</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getProperty()
+	 * @return the meta object for the reference '<em>Referred Property</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection#getReferredProperty()
 	 * @see #getEdgeConnection()
 	 * @generated
 	 */
-	EReference getEdgeConnection_Property();
+	EReference getEdgeConnection_ReferredProperty();
 
 	/**
 	 * Returns the meta object for enum '{@link org.eclipse.qvtd.pivot.qvtschedule.Role <em>Role</em>}'.
@@ -6251,48 +6095,48 @@
 	EReference getScheduleModel_LoadingRegion();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getScheduledRegion <em>Scheduled Region</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedClassDatums <em>Owned Class Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Scheduled Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getScheduledRegion()
+	 * @return the meta object for the containment reference list '<em>Owned Class Datums</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedClassDatums()
 	 * @see #getScheduleModel()
 	 * @generated
 	 */
-	EReference getScheduleModel_ScheduledRegion();
+	EReference getScheduleModel_OwnedClassDatums();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getClassDatums <em>Class Datums</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedMappingActions <em>Owned Mapping Actions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Class Datums</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getClassDatums()
+	 * @return the meta object for the containment reference list '<em>Owned Mapping Actions</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedMappingActions()
 	 * @see #getScheduleModel()
 	 * @generated
 	 */
-	EReference getScheduleModel_ClassDatums();
+	EReference getScheduleModel_OwnedMappingActions();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOtherMappingRegions <em>Other Mapping Regions</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedOtherMappingRegions <em>Owned Other Mapping Regions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Other Mapping Regions</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOtherMappingRegions()
+	 * @return the meta object for the containment reference list '<em>Owned Other Mapping Regions</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedOtherMappingRegions()
 	 * @see #getScheduleModel()
 	 * @generated
 	 */
-	EReference getScheduleModel_OtherMappingRegions();
+	EReference getScheduleModel_OwnedOtherMappingRegions();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getMappingActions <em>Mapping Actions</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedScheduledRegion <em>Owned Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Mapping Actions</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getMappingActions()
+	 * @return the meta object for the containment reference '<em>Owned Scheduled Region</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedScheduledRegion()
 	 * @see #getScheduleModel()
 	 * @generated
 	 */
-	EReference getScheduleModel_MappingActions();
+	EReference getScheduleModel_OwnedScheduledRegion();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion <em>Scheduled Region</em>}'.
@@ -6316,37 +6160,37 @@
 	EAttribute getScheduledRegion_Name();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getConnections <em>Connections</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedConnections <em>Owned Connections</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Connections</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getConnections()
+	 * @return the meta object for the containment reference list '<em>Owned Connections</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedConnections()
 	 * @see #getScheduledRegion()
 	 * @generated
 	 */
-	EReference getScheduledRegion_Connections();
+	EReference getScheduledRegion_OwnedConnections();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getRegions <em>Regions</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedRegions <em>Owned Regions</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Regions</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getRegions()
+	 * @return the meta object for the containment reference list '<em>Owned Regions</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedRegions()
 	 * @see #getScheduledRegion()
 	 * @generated
 	 */
-	EReference getScheduledRegion_Regions();
+	EReference getScheduledRegion_OwnedRegions();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getScheduleModel <em>Schedule Model</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Schedule Model</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getScheduleModel()
+	 * @return the meta object for the container reference '<em>Owning Schedule Model</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwningScheduleModel()
 	 * @see #getScheduledRegion()
 	 * @generated
 	 */
-	EReference getScheduledRegion_ScheduleModel();
+	EReference getScheduledRegion_OwningScheduleModel();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.Symbolable <em>Symbolable</em>}'.
@@ -6400,15 +6244,15 @@
 	EClass getVariableNode();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getVariable <em>Variable</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getReferredVariable <em>Referred Variable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Variable</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getVariable()
+	 * @return the meta object for the reference '<em>Referred Variable</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getReferredVariable()
 	 * @see #getVariableNode()
 	 * @generated
 	 */
-	EReference getVariableNode_Variable();
+	EReference getVariableNode_ReferredVariable();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage <em>Domain Usage</em>}'.
@@ -6422,39 +6266,6 @@
 	EClass getDomainUsage();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge <em>Graph Edge</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Graph Edge</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge
-	 * @model instanceClass="org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge"
-	 * @generated
-	 */
-	EClass getGraphEdge();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode <em>Graph Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Graph Node</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode
-	 * @model instanceClass="org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode"
-	 * @generated
-	 */
-	EClass getGraphNode();
-
-	/**
-	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable <em>To DO Table</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>To DO Table</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable
-	 * @model instanceClass="org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable"
-	 * @generated
-	 */
-	EClass getToDOTable();
-
-	/**
 	 * Returns the meta object for enum '{@link org.eclipse.qvtd.pivot.qvtschedule.ConnectionRole <em>Connection Role</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6535,48 +6346,48 @@
 	EClass getMappingAction();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getMapping <em>Mapping</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getReferredMapping <em>Referred Mapping</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Mapping</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getMapping()
+	 * @return the meta object for the reference '<em>Referred Mapping</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getReferredMapping()
 	 * @see #getMappingAction()
 	 * @generated
 	 */
-	EReference getMappingAction_Mapping();
+	EReference getMappingAction_ReferredMapping();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProductions <em>Productions</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequiredDatums <em>Required Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Productions</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProductions()
+	 * @return the meta object for the reference list '<em>Required Datums</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequiredDatums()
 	 * @see #getMappingAction()
 	 * @generated
 	 */
-	EReference getMappingAction_Productions();
+	EReference getMappingAction_RequiredDatums();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequisites <em>Requisites</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Requisites</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getRequisites()
+	 * @return the meta object for the container reference '<em>Owning Schedule Model</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel()
 	 * @see #getMappingAction()
 	 * @generated
 	 */
-	EReference getMappingAction_Requisites();
+	EReference getMappingAction_OwningScheduleModel();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel <em>Schedule Model</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProducedDatums <em>Produced Datums</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Schedule Model</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel()
+	 * @return the meta object for the reference list '<em>Produced Datums</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getProducedDatums()
 	 * @see #getMappingAction()
 	 * @generated
 	 */
-	EReference getMappingAction_ScheduleModel();
+	EReference getMappingAction_ProducedDatums();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingRegion <em>Mapping Region</em>}'.
@@ -6739,15 +6550,15 @@
 	EAttribute getNavigationEdge_Partial();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getProperty <em>Property</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getReferredProperty <em>Referred Property</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Property</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getProperty()
+	 * @return the meta object for the reference '<em>Referred Property</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.NavigationEdge#getReferredProperty()
 	 * @see #getNavigationEdge()
 	 * @generated
 	 */
-	EReference getNavigationEdge_Property();
+	EReference getNavigationEdge_ReferredProperty();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.Node <em>Node</em>}'.
@@ -6837,15 +6648,15 @@
 	EReference getNode_OutgoingEdges();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion <em>Region</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion <em>Owning Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion()
+	 * @return the meta object for the container reference '<em>Owning Region</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion()
 	 * @see #getNode()
 	 * @generated
 	 */
-	EReference getNode_Region();
+	EReference getNode_OwningRegion();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.NodeConnection <em>Node Connection</em>}'.
@@ -6954,15 +6765,15 @@
 	EAttribute getOperationRegion_Name();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getOperation <em>Operation</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getReferredOperation <em>Referred Operation</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Operation</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getOperation()
+	 * @return the meta object for the reference '<em>Referred Operation</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getReferredOperation()
 	 * @see #getOperationRegion()
 	 * @generated
 	 */
-	EReference getOperationRegion_Operation();
+	EReference getOperationRegion_ReferredOperation();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.OperationRegion#getResultNode <em>Result Node</em>}'.
@@ -7038,28 +6849,6 @@
 	EClass getPropertyDatum();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getProperty <em>Property</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Property</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getProperty()
-	 * @see #getPropertyDatum()
-	 * @generated
-	 */
-	EReference getPropertyDatum_Property();
-
-	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum <em>Class Datum</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Class Datum</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getClassDatum()
-	 * @see #getPropertyDatum()
-	 * @generated
-	 */
-	EReference getPropertyDatum_ClassDatum();
-
-	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOpposite <em>Opposite</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7071,15 +6860,37 @@
 	EReference getPropertyDatum_Opposite();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuper <em>Super</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum <em>Owning Class Datum</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Super</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuper()
+	 * @return the meta object for the container reference '<em>Owning Class Datum</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getOwningClassDatum()
 	 * @see #getPropertyDatum()
 	 * @generated
 	 */
-	EReference getPropertyDatum_Super();
+	EReference getPropertyDatum_OwningClassDatum();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getReferredProperty <em>Referred Property</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Referred Property</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getReferredProperty()
+	 * @see #getPropertyDatum()
+	 * @generated
+	 */
+	EReference getPropertyDatum_ReferredProperty();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuperPropertyDatums <em>Super Property Datums</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Super Property Datums</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.PropertyDatum#getSuperPropertyDatums()
+	 * @see #getPropertyDatum()
+	 * @generated
+	 */
+	EReference getPropertyDatum_SuperPropertyDatums();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.qvtd.pivot.qvtschedule.RecursionEdge <em>Recursion Edge</em>}'.
@@ -7113,48 +6924,37 @@
 	EClass getRegion();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getEdges <em>Edges</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion <em>Owning Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Edges</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getEdges()
+	 * @return the meta object for the container reference '<em>Owning Scheduled Region</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion()
 	 * @see #getRegion()
 	 * @generated
 	 */
-	EReference getRegion_Edges();
+	EReference getRegion_OwningScheduledRegion();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion <em>Invoking Region</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedEdges <em>Owned Edges</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Invoking Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion()
+	 * @return the meta object for the containment reference list '<em>Owned Edges</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedEdges()
 	 * @see #getRegion()
 	 * @generated
 	 */
-	EReference getRegion_InvokingRegion();
+	EReference getRegion_OwnedEdges();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getNodes <em>Nodes</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedNodes <em>Owned Nodes</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Nodes</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getNodes()
+	 * @return the meta object for the containment reference list '<em>Owned Nodes</em>'.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedNodes()
 	 * @see #getRegion()
 	 * @generated
 	 */
-	EReference getRegion_Nodes();
-
-	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getRegion <em>Region</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference '<em>Region</em>'.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getRegion()
-	 * @see #getRegion()
-	 * @generated
-	 */
-	EReference getRegion_Region();
+	EReference getRegion_OwnedNodes();
 
 	/**
 	 * Returns the factory that creates the instances of the model.
@@ -7190,28 +6990,28 @@
 		EClass ABSTRACT_DATUM = eINSTANCE.getAbstractDatum();
 
 		/**
-		 * The meta object literal for the '<em><b>Produced By</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Produced By Actions</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ABSTRACT_DATUM__PRODUCED_BY = eINSTANCE.getAbstractDatum_ProducedBy();
+		EReference ABSTRACT_DATUM__PRODUCED_BY_ACTIONS = eINSTANCE.getAbstractDatum_ProducedByActions();
 
 		/**
-		 * The meta object literal for the '<em><b>Required By</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Referred Typed Model</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ABSTRACT_DATUM__REQUIRED_BY = eINSTANCE.getAbstractDatum_RequiredBy();
+		EReference ABSTRACT_DATUM__REFERRED_TYPED_MODEL = eINSTANCE.getAbstractDatum_ReferredTypedModel();
 
 		/**
-		 * The meta object literal for the '<em><b>Typed Model</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Required By Actions</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference ABSTRACT_DATUM__TYPED_MODEL = eINSTANCE.getAbstractDatum_TypedModel();
+		EReference ABSTRACT_DATUM__REQUIRED_BY_ACTIONS = eINSTANCE.getAbstractDatum_RequiredByActions();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.BasicMappingRegionImpl <em>Basic Mapping Region</em>}' class.
@@ -7224,14 +7024,6 @@
 		EClass BASIC_MAPPING_REGION = eINSTANCE.getBasicMappingRegion();
 
 		/**
-		 * The meta object literal for the '<em><b>Mapping</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference BASIC_MAPPING_REGION__MAPPING = eINSTANCE.getBasicMappingRegion_Mapping();
-
-		/**
 		 * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7240,6 +7032,14 @@
 		EAttribute BASIC_MAPPING_REGION__NAME = eINSTANCE.getBasicMappingRegion_Name();
 
 		/**
+		 * The meta object literal for the '<em><b>Referred Mapping</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference BASIC_MAPPING_REGION__REFERRED_MAPPING = eINSTANCE.getBasicMappingRegion_ReferredMapping();
+
+		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.CastEdgeImpl <em>Cast Edge</em>}' class.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7258,12 +7058,12 @@
 		EReference CAST_EDGE__PROPERTY = eINSTANCE.getCastEdge_Property();
 
 		/**
-		 * The meta object literal for the '<em><b>Primary Class</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Class</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CAST_EDGE__PRIMARY_CLASS = eINSTANCE.getCastEdge_PrimaryClass();
+		EReference CAST_EDGE__REFERRED_CLASS = eINSTANCE.getCastEdge_ReferredClass();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl <em>Class Datum</em>}' class.
@@ -7284,28 +7084,28 @@
 		EReference CLASS_DATUM__COMPLETE_CLASS = eINSTANCE.getClassDatum_CompleteClass();
 
 		/**
-		 * The meta object literal for the '<em><b>Primary Class</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Owning Property Datums</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CLASS_DATUM__PRIMARY_CLASS = eINSTANCE.getClassDatum_PrimaryClass();
+		EReference CLASS_DATUM__OWNING_PROPERTY_DATUMS = eINSTANCE.getClassDatum_OwningPropertyDatums();
 
 		/**
-		 * The meta object literal for the '<em><b>Property Datums</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owning Schedule Model</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CLASS_DATUM__PROPERTY_DATUMS = eINSTANCE.getClassDatum_PropertyDatums();
+		EReference CLASS_DATUM__OWNING_SCHEDULE_MODEL = eINSTANCE.getClassDatum_OwningScheduleModel();
 
 		/**
-		 * The meta object literal for the '<em><b>Schedule Model</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Referred Class</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CLASS_DATUM__SCHEDULE_MODEL = eINSTANCE.getClassDatum_ScheduleModel();
+		EReference CLASS_DATUM__REFERRED_CLASS = eINSTANCE.getClassDatum_ReferredClass();
 
 		/**
 		 * The meta object literal for the '<em><b>Super Class Datums</b></em>' reference list feature.
@@ -7336,12 +7136,12 @@
 		EClass CONNECTION = eINSTANCE.getConnection();
 
 		/**
-		 * The meta object literal for the '<em><b>Region</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Owning Scheduled Region</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CONNECTION__REGION = eINSTANCE.getConnection_Region();
+		EReference CONNECTION__OWNING_SCHEDULED_REGION = eINSTANCE.getConnection_OwningScheduledRegion();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.ConnectionEnd <em>Connection End</em>}' class.
@@ -7424,12 +7224,12 @@
 		EAttribute EDGE__NAME = eINSTANCE.getEdge_Name();
 
 		/**
-		 * The meta object literal for the '<em><b>Region</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Owning Region</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference EDGE__REGION = eINSTANCE.getEdge_Region();
+		EReference EDGE__OWNING_REGION = eINSTANCE.getEdge_OwningRegion();
 
 		/**
 		 * The meta object literal for the '<em><b>Source Node</b></em>' reference feature.
@@ -7458,12 +7258,12 @@
 		EClass EDGE_CONNECTION = eINSTANCE.getEdgeConnection();
 
 		/**
-		 * The meta object literal for the '<em><b>Property</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Property</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference EDGE_CONNECTION__PROPERTY = eINSTANCE.getEdgeConnection_Property();
+		EReference EDGE_CONNECTION__REFERRED_PROPERTY = eINSTANCE.getEdgeConnection_ReferredProperty();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.Role <em>Role</em>}' enum.
@@ -7494,36 +7294,36 @@
 		EReference SCHEDULE_MODEL__LOADING_REGION = eINSTANCE.getScheduleModel_LoadingRegion();
 
 		/**
-		 * The meta object literal for the '<em><b>Scheduled Region</b></em>' containment reference feature.
+		 * The meta object literal for the '<em><b>Owned Class Datums</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULE_MODEL__SCHEDULED_REGION = eINSTANCE.getScheduleModel_ScheduledRegion();
+		EReference SCHEDULE_MODEL__OWNED_CLASS_DATUMS = eINSTANCE.getScheduleModel_OwnedClassDatums();
 
 		/**
-		 * The meta object literal for the '<em><b>Class Datums</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Mapping Actions</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULE_MODEL__CLASS_DATUMS = eINSTANCE.getScheduleModel_ClassDatums();
+		EReference SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS = eINSTANCE.getScheduleModel_OwnedMappingActions();
 
 		/**
-		 * The meta object literal for the '<em><b>Other Mapping Regions</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Other Mapping Regions</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULE_MODEL__OTHER_MAPPING_REGIONS = eINSTANCE.getScheduleModel_OtherMappingRegions();
+		EReference SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS = eINSTANCE.getScheduleModel_OwnedOtherMappingRegions();
 
 		/**
-		 * The meta object literal for the '<em><b>Mapping Actions</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Scheduled Region</b></em>' containment reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULE_MODEL__MAPPING_ACTIONS = eINSTANCE.getScheduleModel_MappingActions();
+		EReference SCHEDULE_MODEL__OWNED_SCHEDULED_REGION = eINSTANCE.getScheduleModel_OwnedScheduledRegion();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl <em>Scheduled Region</em>}' class.
@@ -7544,28 +7344,28 @@
 		EAttribute SCHEDULED_REGION__NAME = eINSTANCE.getScheduledRegion_Name();
 
 		/**
-		 * The meta object literal for the '<em><b>Connections</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Connections</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULED_REGION__CONNECTIONS = eINSTANCE.getScheduledRegion_Connections();
+		EReference SCHEDULED_REGION__OWNED_CONNECTIONS = eINSTANCE.getScheduledRegion_OwnedConnections();
 
 		/**
-		 * The meta object literal for the '<em><b>Regions</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Regions</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULED_REGION__REGIONS = eINSTANCE.getScheduledRegion_Regions();
+		EReference SCHEDULED_REGION__OWNED_REGIONS = eINSTANCE.getScheduledRegion_OwnedRegions();
 
 		/**
-		 * The meta object literal for the '<em><b>Schedule Model</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Owning Schedule Model</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference SCHEDULED_REGION__SCHEDULE_MODEL = eINSTANCE.getScheduledRegion_ScheduleModel();
+		EReference SCHEDULED_REGION__OWNING_SCHEDULE_MODEL = eINSTANCE.getScheduledRegion_OwningScheduleModel();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.Symbolable <em>Symbolable</em>}' class.
@@ -7616,12 +7416,12 @@
 		EClass VARIABLE_NODE = eINSTANCE.getVariableNode();
 
 		/**
-		 * The meta object literal for the '<em><b>Variable</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Variable</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference VARIABLE_NODE__VARIABLE = eINSTANCE.getVariableNode_Variable();
+		EReference VARIABLE_NODE__REFERRED_VARIABLE = eINSTANCE.getVariableNode_ReferredVariable();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage <em>Domain Usage</em>}' class.
@@ -7634,36 +7434,6 @@
 		EClass DOMAIN_USAGE = eINSTANCE.getDomainUsage();
 
 		/**
-		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge <em>Graph Edge</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge
-		 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getGraphEdge()
-		 * @generated
-		 */
-		EClass GRAPH_EDGE = eINSTANCE.getGraphEdge();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode <em>Graph Node</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode
-		 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getGraphNode()
-		 * @generated
-		 */
-		EClass GRAPH_NODE = eINSTANCE.getGraphNode();
-
-		/**
-		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable <em>To DO Table</em>}' class.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable
-		 * @see org.eclipse.qvtd.pivot.qvtschedule.impl.QVTschedulePackageImpl#getToDOTable()
-		 * @generated
-		 */
-		EClass TO_DO_TABLE = eINSTANCE.getToDOTable();
-
-		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.ConnectionRole <em>Connection Role</em>}' enum.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -7744,36 +7514,36 @@
 		EClass MAPPING_ACTION = eINSTANCE.getMappingAction();
 
 		/**
-		 * The meta object literal for the '<em><b>Mapping</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Mapping</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference MAPPING_ACTION__MAPPING = eINSTANCE.getMappingAction_Mapping();
+		EReference MAPPING_ACTION__REFERRED_MAPPING = eINSTANCE.getMappingAction_ReferredMapping();
 
 		/**
-		 * The meta object literal for the '<em><b>Productions</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Required Datums</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference MAPPING_ACTION__PRODUCTIONS = eINSTANCE.getMappingAction_Productions();
+		EReference MAPPING_ACTION__REQUIRED_DATUMS = eINSTANCE.getMappingAction_RequiredDatums();
 
 		/**
-		 * The meta object literal for the '<em><b>Requisites</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Owning Schedule Model</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference MAPPING_ACTION__REQUISITES = eINSTANCE.getMappingAction_Requisites();
+		EReference MAPPING_ACTION__OWNING_SCHEDULE_MODEL = eINSTANCE.getMappingAction_OwningScheduleModel();
 
 		/**
-		 * The meta object literal for the '<em><b>Schedule Model</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Produced Datums</b></em>' reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference MAPPING_ACTION__SCHEDULE_MODEL = eINSTANCE.getMappingAction_ScheduleModel();
+		EReference MAPPING_ACTION__PRODUCED_DATUMS = eINSTANCE.getMappingAction_ProducedDatums();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingRegionImpl <em>Mapping Region</em>}' class.
@@ -7906,12 +7676,12 @@
 		EAttribute NAVIGATION_EDGE__PARTIAL = eINSTANCE.getNavigationEdge_Partial();
 
 		/**
-		 * The meta object literal for the '<em><b>Property</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Property</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference NAVIGATION_EDGE__PROPERTY = eINSTANCE.getNavigationEdge_Property();
+		EReference NAVIGATION_EDGE__REFERRED_PROPERTY = eINSTANCE.getNavigationEdge_ReferredProperty();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl <em>Node</em>}' class.
@@ -7980,12 +7750,12 @@
 		EReference NODE__OUTGOING_EDGES = eINSTANCE.getNode_OutgoingEdges();
 
 		/**
-		 * The meta object literal for the '<em><b>Region</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Owning Region</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference NODE__REGION = eINSTANCE.getNode_Region();
+		EReference NODE__OWNING_REGION = eINSTANCE.getNode_OwningRegion();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeConnectionImpl <em>Node Connection</em>}' class.
@@ -8076,12 +7846,12 @@
 		EAttribute OPERATION_REGION__NAME = eINSTANCE.getOperationRegion_Name();
 
 		/**
-		 * The meta object literal for the '<em><b>Operation</b></em>' reference feature.
+		 * The meta object literal for the '<em><b>Referred Operation</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference OPERATION_REGION__OPERATION = eINSTANCE.getOperationRegion_Operation();
+		EReference OPERATION_REGION__REFERRED_OPERATION = eINSTANCE.getOperationRegion_ReferredOperation();
 
 		/**
 		 * The meta object literal for the '<em><b>Result Node</b></em>' reference feature.
@@ -8148,22 +7918,6 @@
 		EClass PROPERTY_DATUM = eINSTANCE.getPropertyDatum();
 
 		/**
-		 * The meta object literal for the '<em><b>Property</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROPERTY_DATUM__PROPERTY = eINSTANCE.getPropertyDatum_Property();
-
-		/**
-		 * The meta object literal for the '<em><b>Class Datum</b></em>' container reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference PROPERTY_DATUM__CLASS_DATUM = eINSTANCE.getPropertyDatum_ClassDatum();
-
-		/**
 		 * The meta object literal for the '<em><b>Opposite</b></em>' reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
@@ -8172,12 +7926,28 @@
 		EReference PROPERTY_DATUM__OPPOSITE = eINSTANCE.getPropertyDatum_Opposite();
 
 		/**
-		 * The meta object literal for the '<em><b>Super</b></em>' reference list feature.
+		 * The meta object literal for the '<em><b>Owning Class Datum</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference PROPERTY_DATUM__SUPER = eINSTANCE.getPropertyDatum_Super();
+		EReference PROPERTY_DATUM__OWNING_CLASS_DATUM = eINSTANCE.getPropertyDatum_OwningClassDatum();
+
+		/**
+		 * The meta object literal for the '<em><b>Referred Property</b></em>' reference feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROPERTY_DATUM__REFERRED_PROPERTY = eINSTANCE.getPropertyDatum_ReferredProperty();
+
+		/**
+		 * The meta object literal for the '<em><b>Super Property Datums</b></em>' reference list feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		EReference PROPERTY_DATUM__SUPER_PROPERTY_DATUMS = eINSTANCE.getPropertyDatum_SuperPropertyDatums();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RecursionEdgeImpl <em>Recursion Edge</em>}' class.
@@ -8208,36 +7978,28 @@
 		EClass REGION = eINSTANCE.getRegion();
 
 		/**
-		 * The meta object literal for the '<em><b>Edges</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owning Scheduled Region</b></em>' container reference feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference REGION__EDGES = eINSTANCE.getRegion_Edges();
+		EReference REGION__OWNING_SCHEDULED_REGION = eINSTANCE.getRegion_OwningScheduledRegion();
 
 		/**
-		 * The meta object literal for the '<em><b>Invoking Region</b></em>' container reference feature.
+		 * The meta object literal for the '<em><b>Owned Edges</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference REGION__INVOKING_REGION = eINSTANCE.getRegion_InvokingRegion();
+		EReference REGION__OWNED_EDGES = eINSTANCE.getRegion_OwnedEdges();
 
 		/**
-		 * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
+		 * The meta object literal for the '<em><b>Owned Nodes</b></em>' containment reference list feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference REGION__NODES = eINSTANCE.getRegion_Nodes();
-
-		/**
-		 * The meta object literal for the '<em><b>Region</b></em>' reference feature.
-		 * <!-- begin-user-doc -->
-		 * <!-- end-user-doc -->
-		 * @generated
-		 */
-		EReference REGION__REGION = eINSTANCE.getRegion_Region();
+		EReference REGION__OWNED_NODES = eINSTANCE.getRegion_OwnedNodes();
 
 	}
 
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTscheduleTables.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTscheduleTables.java
index 5290ef1..dbd9ee7 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTscheduleTables.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/QVTscheduleTables.java
@@ -106,7 +106,6 @@
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_NodeConnection = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_NodeConnection);
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_OperationRegion = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_OperationRegion);
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_PropertyDatum = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_PropertyDatum);
-	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_Region = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_Region);
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_ScheduleModel = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_ScheduleModel);
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_AbstractDatum = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_AbstractDatum);
 	public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_ClassDatum = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.pivot.qvtschedule.QVTscheduleTables.CLSSid_ClassDatum);
@@ -165,8 +164,6 @@
 		public static final @NonNull EcoreExecutorType _EdgeConnection = new EcoreExecutorType(QVTschedulePackage.Literals.EDGE_CONNECTION, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _ErrorNode = new EcoreExecutorType(QVTschedulePackage.Literals.ERROR_NODE, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _ExpressionEdge = new EcoreExecutorType(QVTschedulePackage.Literals.EXPRESSION_EDGE, PACKAGE, 0);
-		public static final @NonNull EcoreExecutorType _GraphEdge = new EcoreExecutorType(QVTschedulePackage.Literals.GRAPH_EDGE, PACKAGE, 0 | ExecutorType.ABSTRACT);
-		public static final @NonNull EcoreExecutorType _GraphNode = new EcoreExecutorType(QVTschedulePackage.Literals.GRAPH_NODE, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorType _InputNode = new EcoreExecutorType(QVTschedulePackage.Literals.INPUT_NODE, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _IteratedEdge = new EcoreExecutorType(QVTschedulePackage.Literals.ITERATED_EDGE, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _IteratorNode = new EcoreExecutorType(QVTschedulePackage.Literals.ITERATOR_NODE, PACKAGE, 0);
@@ -192,7 +189,6 @@
 		public static final @NonNull EcoreExecutorType _ScheduleModel = new EcoreExecutorType(QVTschedulePackage.Literals.SCHEDULE_MODEL, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _ScheduledRegion = new EcoreExecutorType(QVTschedulePackage.Literals.SCHEDULED_REGION, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _Symbolable = new EcoreExecutorType(QVTschedulePackage.Literals.SYMBOLABLE, PACKAGE, 0 | ExecutorType.ABSTRACT);
-		public static final @NonNull EcoreExecutorType _ToDOTable = new EcoreExecutorType(QVTschedulePackage.Literals.TO_DO_TABLE, PACKAGE, 0 | ExecutorType.ABSTRACT);
 		public static final @NonNull EcoreExecutorType _TrueNode = new EcoreExecutorType(QVTschedulePackage.Literals.TRUE_NODE, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _UnknownNode = new EcoreExecutorType(QVTschedulePackage.Literals.UNKNOWN_NODE, PACKAGE, 0);
 		public static final @NonNull EcoreExecutorType _VariableNode = new EcoreExecutorType(QVTschedulePackage.Literals.VARIABLE_NODE, PACKAGE, 0 | ExecutorType.ABSTRACT);
@@ -213,8 +209,6 @@
 			_EdgeConnection,
 			_ErrorNode,
 			_ExpressionEdge,
-			_GraphEdge,
-			_GraphNode,
 			_InputNode,
 			_IteratedEdge,
 			_IteratorNode,
@@ -240,7 +234,6 @@
 			_ScheduleModel,
 			_ScheduledRegion,
 			_Symbolable,
-			_ToDOTable,
 			_TrueNode,
 			_UnknownNode,
 			_VariableNode
@@ -277,21 +270,18 @@
 
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__BasicMappingRegion = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._BasicMappingRegion);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__Element = new ExecutorFragment(Types._BasicMappingRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _BasicMappingRegion__GraphNode = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__MappingRegion = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._MappingRegion);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__Nameable = new ExecutorFragment(Types._BasicMappingRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__OclAny = new ExecutorFragment(Types._BasicMappingRegion, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__OclElement = new ExecutorFragment(Types._BasicMappingRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__Region = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__Symbolable = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _BasicMappingRegion__ToDOTable = new ExecutorFragment(Types._BasicMappingRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _BasicMappingRegion__Visitable = new ExecutorFragment(Types._BasicMappingRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _CastEdge__CastEdge = new ExecutorFragment(Types._CastEdge, QVTscheduleTables.Types._CastEdge);
 		private static final @NonNull ExecutorFragment _CastEdge__ConnectionEnd = new ExecutorFragment(Types._CastEdge, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _CastEdge__Edge = new ExecutorFragment(Types._CastEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _CastEdge__Element = new ExecutorFragment(Types._CastEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _CastEdge__GraphEdge = new ExecutorFragment(Types._CastEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _CastEdge__Nameable = new ExecutorFragment(Types._CastEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _CastEdge__NavigableEdge = new ExecutorFragment(Types._CastEdge, QVTscheduleTables.Types._NavigableEdge);
 		private static final @NonNull ExecutorFragment _CastEdge__OclAny = new ExecutorFragment(Types._CastEdge, OCLstdlibTables.Types._OclAny);
@@ -308,7 +298,6 @@
 		private static final @NonNull ExecutorFragment _ComposedNode__ComposedNode = new ExecutorFragment(Types._ComposedNode, QVTscheduleTables.Types._ComposedNode);
 		private static final @NonNull ExecutorFragment _ComposedNode__ConnectionEnd = new ExecutorFragment(Types._ComposedNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _ComposedNode__Element = new ExecutorFragment(Types._ComposedNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _ComposedNode__GraphNode = new ExecutorFragment(Types._ComposedNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _ComposedNode__Nameable = new ExecutorFragment(Types._ComposedNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _ComposedNode__Node = new ExecutorFragment(Types._ComposedNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _ComposedNode__OclAny = new ExecutorFragment(Types._ComposedNode, OCLstdlibTables.Types._OclAny);
@@ -336,8 +325,6 @@
 		private static final @NonNull ExecutorFragment _DatumConnection__Connection = new ExecutorFragment(Types._DatumConnection, QVTscheduleTables.Types._Connection);
 		private static final @NonNull ExecutorFragment _DatumConnection__DatumConnection = new ExecutorFragment(Types._DatumConnection, QVTscheduleTables.Types._DatumConnection);
 		private static final @NonNull ExecutorFragment _DatumConnection__Element = new ExecutorFragment(Types._DatumConnection, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _DatumConnection__GraphEdge = new ExecutorFragment(Types._DatumConnection, QVTscheduleTables.Types._GraphEdge);
-		private static final @NonNull ExecutorFragment _DatumConnection__GraphNode = new ExecutorFragment(Types._DatumConnection, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _DatumConnection__Nameable = new ExecutorFragment(Types._DatumConnection, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _DatumConnection__OclAny = new ExecutorFragment(Types._DatumConnection, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _DatumConnection__OclElement = new ExecutorFragment(Types._DatumConnection, OCLstdlibTables.Types._OclElement);
@@ -347,7 +334,6 @@
 		private static final @NonNull ExecutorFragment _DependencyNode__ConnectionEnd = new ExecutorFragment(Types._DependencyNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _DependencyNode__DependencyNode = new ExecutorFragment(Types._DependencyNode, QVTscheduleTables.Types._DependencyNode);
 		private static final @NonNull ExecutorFragment _DependencyNode__Element = new ExecutorFragment(Types._DependencyNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _DependencyNode__GraphNode = new ExecutorFragment(Types._DependencyNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _DependencyNode__Nameable = new ExecutorFragment(Types._DependencyNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _DependencyNode__Node = new ExecutorFragment(Types._DependencyNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _DependencyNode__OclAny = new ExecutorFragment(Types._DependencyNode, OCLstdlibTables.Types._OclAny);
@@ -360,7 +346,6 @@
 
 		private static final @NonNull ExecutorFragment _Edge__Edge = new ExecutorFragment(Types._Edge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _Edge__Element = new ExecutorFragment(Types._Edge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _Edge__GraphEdge = new ExecutorFragment(Types._Edge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _Edge__Nameable = new ExecutorFragment(Types._Edge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _Edge__OclAny = new ExecutorFragment(Types._Edge, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _Edge__OclElement = new ExecutorFragment(Types._Edge, OCLstdlibTables.Types._OclElement);
@@ -370,8 +355,6 @@
 		private static final @NonNull ExecutorFragment _EdgeConnection__DatumConnection = new ExecutorFragment(Types._EdgeConnection, QVTscheduleTables.Types._DatumConnection);
 		private static final @NonNull ExecutorFragment _EdgeConnection__EdgeConnection = new ExecutorFragment(Types._EdgeConnection, QVTscheduleTables.Types._EdgeConnection);
 		private static final @NonNull ExecutorFragment _EdgeConnection__Element = new ExecutorFragment(Types._EdgeConnection, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _EdgeConnection__GraphEdge = new ExecutorFragment(Types._EdgeConnection, QVTscheduleTables.Types._GraphEdge);
-		private static final @NonNull ExecutorFragment _EdgeConnection__GraphNode = new ExecutorFragment(Types._EdgeConnection, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _EdgeConnection__Nameable = new ExecutorFragment(Types._EdgeConnection, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _EdgeConnection__OclAny = new ExecutorFragment(Types._EdgeConnection, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _EdgeConnection__OclElement = new ExecutorFragment(Types._EdgeConnection, OCLstdlibTables.Types._OclElement);
@@ -381,7 +364,6 @@
 		private static final @NonNull ExecutorFragment _ErrorNode__ConnectionEnd = new ExecutorFragment(Types._ErrorNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _ErrorNode__Element = new ExecutorFragment(Types._ErrorNode, PivotTables.Types._Element);
 		private static final @NonNull ExecutorFragment _ErrorNode__ErrorNode = new ExecutorFragment(Types._ErrorNode, QVTscheduleTables.Types._ErrorNode);
-		private static final @NonNull ExecutorFragment _ErrorNode__GraphNode = new ExecutorFragment(Types._ErrorNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _ErrorNode__Nameable = new ExecutorFragment(Types._ErrorNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _ErrorNode__Node = new ExecutorFragment(Types._ErrorNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _ErrorNode__OclAny = new ExecutorFragment(Types._ErrorNode, OCLstdlibTables.Types._OclAny);
@@ -391,23 +373,13 @@
 		private static final @NonNull ExecutorFragment _ExpressionEdge__Edge = new ExecutorFragment(Types._ExpressionEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__Element = new ExecutorFragment(Types._ExpressionEdge, PivotTables.Types._Element);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__ExpressionEdge = new ExecutorFragment(Types._ExpressionEdge, QVTscheduleTables.Types._ExpressionEdge);
-		private static final @NonNull ExecutorFragment _ExpressionEdge__GraphEdge = new ExecutorFragment(Types._ExpressionEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__Nameable = new ExecutorFragment(Types._ExpressionEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__OclAny = new ExecutorFragment(Types._ExpressionEdge, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__OclElement = new ExecutorFragment(Types._ExpressionEdge, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _ExpressionEdge__Visitable = new ExecutorFragment(Types._ExpressionEdge, PivotTables.Types._Visitable);
 
-		private static final @NonNull ExecutorFragment _GraphEdge__GraphEdge = new ExecutorFragment(Types._GraphEdge, QVTscheduleTables.Types._GraphEdge);
-		private static final @NonNull ExecutorFragment _GraphEdge__OclAny = new ExecutorFragment(Types._GraphEdge, OCLstdlibTables.Types._OclAny);
-		private static final @NonNull ExecutorFragment _GraphEdge__OclElement = new ExecutorFragment(Types._GraphEdge, OCLstdlibTables.Types._OclElement);
-
-		private static final @NonNull ExecutorFragment _GraphNode__GraphNode = new ExecutorFragment(Types._GraphNode, QVTscheduleTables.Types._GraphNode);
-		private static final @NonNull ExecutorFragment _GraphNode__OclAny = new ExecutorFragment(Types._GraphNode, OCLstdlibTables.Types._OclAny);
-		private static final @NonNull ExecutorFragment _GraphNode__OclElement = new ExecutorFragment(Types._GraphNode, OCLstdlibTables.Types._OclElement);
-
 		private static final @NonNull ExecutorFragment _InputNode__ConnectionEnd = new ExecutorFragment(Types._InputNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _InputNode__Element = new ExecutorFragment(Types._InputNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _InputNode__GraphNode = new ExecutorFragment(Types._InputNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _InputNode__InputNode = new ExecutorFragment(Types._InputNode, QVTscheduleTables.Types._InputNode);
 		private static final @NonNull ExecutorFragment _InputNode__Nameable = new ExecutorFragment(Types._InputNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _InputNode__Node = new ExecutorFragment(Types._InputNode, QVTscheduleTables.Types._Node);
@@ -417,7 +389,6 @@
 
 		private static final @NonNull ExecutorFragment _IteratedEdge__Edge = new ExecutorFragment(Types._IteratedEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _IteratedEdge__Element = new ExecutorFragment(Types._IteratedEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _IteratedEdge__GraphEdge = new ExecutorFragment(Types._IteratedEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _IteratedEdge__IteratedEdge = new ExecutorFragment(Types._IteratedEdge, QVTscheduleTables.Types._IteratedEdge);
 		private static final @NonNull ExecutorFragment _IteratedEdge__Nameable = new ExecutorFragment(Types._IteratedEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _IteratedEdge__OclAny = new ExecutorFragment(Types._IteratedEdge, OCLstdlibTables.Types._OclAny);
@@ -426,7 +397,6 @@
 
 		private static final @NonNull ExecutorFragment _IteratorNode__ConnectionEnd = new ExecutorFragment(Types._IteratorNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _IteratorNode__Element = new ExecutorFragment(Types._IteratorNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _IteratorNode__GraphNode = new ExecutorFragment(Types._IteratorNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _IteratorNode__IteratorNode = new ExecutorFragment(Types._IteratorNode, QVTscheduleTables.Types._IteratorNode);
 		private static final @NonNull ExecutorFragment _IteratorNode__Nameable = new ExecutorFragment(Types._IteratorNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _IteratorNode__Node = new ExecutorFragment(Types._IteratorNode, QVTscheduleTables.Types._Node);
@@ -436,14 +406,12 @@
 		private static final @NonNull ExecutorFragment _IteratorNode__Visitable = new ExecutorFragment(Types._IteratorNode, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _LoadingRegion__Element = new ExecutorFragment(Types._LoadingRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _LoadingRegion__GraphNode = new ExecutorFragment(Types._LoadingRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _LoadingRegion__LoadingRegion = new ExecutorFragment(Types._LoadingRegion, QVTscheduleTables.Types._LoadingRegion);
 		private static final @NonNull ExecutorFragment _LoadingRegion__Nameable = new ExecutorFragment(Types._LoadingRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _LoadingRegion__OclAny = new ExecutorFragment(Types._LoadingRegion, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _LoadingRegion__OclElement = new ExecutorFragment(Types._LoadingRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _LoadingRegion__Region = new ExecutorFragment(Types._LoadingRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _LoadingRegion__Symbolable = new ExecutorFragment(Types._LoadingRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _LoadingRegion__ToDOTable = new ExecutorFragment(Types._LoadingRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _LoadingRegion__Visitable = new ExecutorFragment(Types._LoadingRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _MappingAction__Element = new ExecutorFragment(Types._MappingAction, PivotTables.Types._Element);
@@ -453,18 +421,15 @@
 		private static final @NonNull ExecutorFragment _MappingAction__Visitable = new ExecutorFragment(Types._MappingAction, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _MappingRegion__Element = new ExecutorFragment(Types._MappingRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _MappingRegion__GraphNode = new ExecutorFragment(Types._MappingRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _MappingRegion__MappingRegion = new ExecutorFragment(Types._MappingRegion, QVTscheduleTables.Types._MappingRegion);
 		private static final @NonNull ExecutorFragment _MappingRegion__Nameable = new ExecutorFragment(Types._MappingRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _MappingRegion__OclAny = new ExecutorFragment(Types._MappingRegion, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _MappingRegion__OclElement = new ExecutorFragment(Types._MappingRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _MappingRegion__Region = new ExecutorFragment(Types._MappingRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _MappingRegion__Symbolable = new ExecutorFragment(Types._MappingRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _MappingRegion__ToDOTable = new ExecutorFragment(Types._MappingRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _MappingRegion__Visitable = new ExecutorFragment(Types._MappingRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__Element = new ExecutorFragment(Types._MicroMappingRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _MicroMappingRegion__GraphNode = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__MappingRegion = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._MappingRegion);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__MicroMappingRegion = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._MicroMappingRegion);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__Nameable = new ExecutorFragment(Types._MicroMappingRegion, PivotTables.Types._Nameable);
@@ -472,11 +437,9 @@
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__OclElement = new ExecutorFragment(Types._MicroMappingRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__Region = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__Symbolable = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _MicroMappingRegion__ToDOTable = new ExecutorFragment(Types._MicroMappingRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _MicroMappingRegion__Visitable = new ExecutorFragment(Types._MicroMappingRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__Element = new ExecutorFragment(Types._NamedMappingRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _NamedMappingRegion__GraphNode = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__MappingRegion = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._MappingRegion);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__Nameable = new ExecutorFragment(Types._NamedMappingRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__NamedMappingRegion = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._NamedMappingRegion);
@@ -484,13 +447,11 @@
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__OclElement = new ExecutorFragment(Types._NamedMappingRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__Region = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__Symbolable = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _NamedMappingRegion__ToDOTable = new ExecutorFragment(Types._NamedMappingRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _NamedMappingRegion__Visitable = new ExecutorFragment(Types._NamedMappingRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _NavigableEdge__ConnectionEnd = new ExecutorFragment(Types._NavigableEdge, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _NavigableEdge__Edge = new ExecutorFragment(Types._NavigableEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _NavigableEdge__Element = new ExecutorFragment(Types._NavigableEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _NavigableEdge__GraphEdge = new ExecutorFragment(Types._NavigableEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _NavigableEdge__Nameable = new ExecutorFragment(Types._NavigableEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _NavigableEdge__NavigableEdge = new ExecutorFragment(Types._NavigableEdge, QVTscheduleTables.Types._NavigableEdge);
 		private static final @NonNull ExecutorFragment _NavigableEdge__OclAny = new ExecutorFragment(Types._NavigableEdge, OCLstdlibTables.Types._OclAny);
@@ -500,7 +461,6 @@
 		private static final @NonNull ExecutorFragment _NavigationEdge__ConnectionEnd = new ExecutorFragment(Types._NavigationEdge, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _NavigationEdge__Edge = new ExecutorFragment(Types._NavigationEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _NavigationEdge__Element = new ExecutorFragment(Types._NavigationEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _NavigationEdge__GraphEdge = new ExecutorFragment(Types._NavigationEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _NavigationEdge__Nameable = new ExecutorFragment(Types._NavigationEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _NavigationEdge__NavigableEdge = new ExecutorFragment(Types._NavigationEdge, QVTscheduleTables.Types._NavigableEdge);
 		private static final @NonNull ExecutorFragment _NavigationEdge__NavigationEdge = new ExecutorFragment(Types._NavigationEdge, QVTscheduleTables.Types._NavigationEdge);
@@ -510,7 +470,6 @@
 
 		private static final @NonNull ExecutorFragment _Node__ConnectionEnd = new ExecutorFragment(Types._Node, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _Node__Element = new ExecutorFragment(Types._Node, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _Node__GraphNode = new ExecutorFragment(Types._Node, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _Node__Nameable = new ExecutorFragment(Types._Node, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _Node__Node = new ExecutorFragment(Types._Node, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _Node__OclAny = new ExecutorFragment(Types._Node, OCLstdlibTables.Types._OclAny);
@@ -520,8 +479,6 @@
 		private static final @NonNull ExecutorFragment _NodeConnection__Connection = new ExecutorFragment(Types._NodeConnection, QVTscheduleTables.Types._Connection);
 		private static final @NonNull ExecutorFragment _NodeConnection__DatumConnection = new ExecutorFragment(Types._NodeConnection, QVTscheduleTables.Types._DatumConnection);
 		private static final @NonNull ExecutorFragment _NodeConnection__Element = new ExecutorFragment(Types._NodeConnection, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _NodeConnection__GraphEdge = new ExecutorFragment(Types._NodeConnection, QVTscheduleTables.Types._GraphEdge);
-		private static final @NonNull ExecutorFragment _NodeConnection__GraphNode = new ExecutorFragment(Types._NodeConnection, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _NodeConnection__Nameable = new ExecutorFragment(Types._NodeConnection, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _NodeConnection__NodeConnection = new ExecutorFragment(Types._NodeConnection, QVTscheduleTables.Types._NodeConnection);
 		private static final @NonNull ExecutorFragment _NodeConnection__OclAny = new ExecutorFragment(Types._NodeConnection, OCLstdlibTables.Types._OclAny);
@@ -531,7 +488,6 @@
 
 		private static final @NonNull ExecutorFragment _NullNode__ConnectionEnd = new ExecutorFragment(Types._NullNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _NullNode__Element = new ExecutorFragment(Types._NullNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _NullNode__GraphNode = new ExecutorFragment(Types._NullNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _NullNode__Nameable = new ExecutorFragment(Types._NullNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _NullNode__Node = new ExecutorFragment(Types._NullNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _NullNode__NullNode = new ExecutorFragment(Types._NullNode, QVTscheduleTables.Types._NullNode);
@@ -541,7 +497,6 @@
 
 		private static final @NonNull ExecutorFragment _OperationNode__ConnectionEnd = new ExecutorFragment(Types._OperationNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _OperationNode__Element = new ExecutorFragment(Types._OperationNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _OperationNode__GraphNode = new ExecutorFragment(Types._OperationNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _OperationNode__Nameable = new ExecutorFragment(Types._OperationNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _OperationNode__Node = new ExecutorFragment(Types._OperationNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _OperationNode__OclAny = new ExecutorFragment(Types._OperationNode, OCLstdlibTables.Types._OclAny);
@@ -550,19 +505,16 @@
 		private static final @NonNull ExecutorFragment _OperationNode__Visitable = new ExecutorFragment(Types._OperationNode, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _OperationRegion__Element = new ExecutorFragment(Types._OperationRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _OperationRegion__GraphNode = new ExecutorFragment(Types._OperationRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _OperationRegion__Nameable = new ExecutorFragment(Types._OperationRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _OperationRegion__OclAny = new ExecutorFragment(Types._OperationRegion, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _OperationRegion__OclElement = new ExecutorFragment(Types._OperationRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _OperationRegion__OperationRegion = new ExecutorFragment(Types._OperationRegion, QVTscheduleTables.Types._OperationRegion);
 		private static final @NonNull ExecutorFragment _OperationRegion__Region = new ExecutorFragment(Types._OperationRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _OperationRegion__Symbolable = new ExecutorFragment(Types._OperationRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _OperationRegion__ToDOTable = new ExecutorFragment(Types._OperationRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _OperationRegion__Visitable = new ExecutorFragment(Types._OperationRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _PatternTypedNode__ConnectionEnd = new ExecutorFragment(Types._PatternTypedNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _PatternTypedNode__Element = new ExecutorFragment(Types._PatternTypedNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _PatternTypedNode__GraphNode = new ExecutorFragment(Types._PatternTypedNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _PatternTypedNode__Nameable = new ExecutorFragment(Types._PatternTypedNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _PatternTypedNode__Node = new ExecutorFragment(Types._PatternTypedNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _PatternTypedNode__OclAny = new ExecutorFragment(Types._PatternTypedNode, OCLstdlibTables.Types._OclAny);
@@ -572,7 +524,6 @@
 
 		private static final @NonNull ExecutorFragment _PatternVariableNode__ConnectionEnd = new ExecutorFragment(Types._PatternVariableNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _PatternVariableNode__Element = new ExecutorFragment(Types._PatternVariableNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _PatternVariableNode__GraphNode = new ExecutorFragment(Types._PatternVariableNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _PatternVariableNode__Nameable = new ExecutorFragment(Types._PatternVariableNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _PatternVariableNode__Node = new ExecutorFragment(Types._PatternVariableNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _PatternVariableNode__OclAny = new ExecutorFragment(Types._PatternVariableNode, OCLstdlibTables.Types._OclAny);
@@ -583,7 +534,6 @@
 
 		private static final @NonNull ExecutorFragment _PredicateEdge__Edge = new ExecutorFragment(Types._PredicateEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _PredicateEdge__Element = new ExecutorFragment(Types._PredicateEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _PredicateEdge__GraphEdge = new ExecutorFragment(Types._PredicateEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _PredicateEdge__Nameable = new ExecutorFragment(Types._PredicateEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _PredicateEdge__OclAny = new ExecutorFragment(Types._PredicateEdge, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _PredicateEdge__OclElement = new ExecutorFragment(Types._PredicateEdge, OCLstdlibTables.Types._OclElement);
@@ -599,7 +549,6 @@
 
 		private static final @NonNull ExecutorFragment _RecursionEdge__Edge = new ExecutorFragment(Types._RecursionEdge, QVTscheduleTables.Types._Edge);
 		private static final @NonNull ExecutorFragment _RecursionEdge__Element = new ExecutorFragment(Types._RecursionEdge, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _RecursionEdge__GraphEdge = new ExecutorFragment(Types._RecursionEdge, QVTscheduleTables.Types._GraphEdge);
 		private static final @NonNull ExecutorFragment _RecursionEdge__Nameable = new ExecutorFragment(Types._RecursionEdge, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _RecursionEdge__OclAny = new ExecutorFragment(Types._RecursionEdge, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _RecursionEdge__OclElement = new ExecutorFragment(Types._RecursionEdge, OCLstdlibTables.Types._OclElement);
@@ -607,13 +556,11 @@
 		private static final @NonNull ExecutorFragment _RecursionEdge__Visitable = new ExecutorFragment(Types._RecursionEdge, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _Region__Element = new ExecutorFragment(Types._Region, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _Region__GraphNode = new ExecutorFragment(Types._Region, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _Region__Nameable = new ExecutorFragment(Types._Region, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _Region__OclAny = new ExecutorFragment(Types._Region, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _Region__OclElement = new ExecutorFragment(Types._Region, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _Region__Region = new ExecutorFragment(Types._Region, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _Region__Symbolable = new ExecutorFragment(Types._Region, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _Region__ToDOTable = new ExecutorFragment(Types._Region, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _Region__Visitable = new ExecutorFragment(Types._Region, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _Role__OclAny = new ExecutorFragment(Types._Role, OCLstdlibTables.Types._OclAny);
@@ -633,27 +580,20 @@
 		private static final @NonNull ExecutorFragment _ScheduleModel__Visitable = new ExecutorFragment(Types._ScheduleModel, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _ScheduledRegion__Element = new ExecutorFragment(Types._ScheduledRegion, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _ScheduledRegion__GraphNode = new ExecutorFragment(Types._ScheduledRegion, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__Nameable = new ExecutorFragment(Types._ScheduledRegion, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__OclAny = new ExecutorFragment(Types._ScheduledRegion, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__OclElement = new ExecutorFragment(Types._ScheduledRegion, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__Region = new ExecutorFragment(Types._ScheduledRegion, QVTscheduleTables.Types._Region);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__ScheduledRegion = new ExecutorFragment(Types._ScheduledRegion, QVTscheduleTables.Types._ScheduledRegion);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__Symbolable = new ExecutorFragment(Types._ScheduledRegion, QVTscheduleTables.Types._Symbolable);
-		private static final @NonNull ExecutorFragment _ScheduledRegion__ToDOTable = new ExecutorFragment(Types._ScheduledRegion, QVTscheduleTables.Types._ToDOTable);
 		private static final @NonNull ExecutorFragment _ScheduledRegion__Visitable = new ExecutorFragment(Types._ScheduledRegion, PivotTables.Types._Visitable);
 
 		private static final @NonNull ExecutorFragment _Symbolable__OclAny = new ExecutorFragment(Types._Symbolable, OCLstdlibTables.Types._OclAny);
 		private static final @NonNull ExecutorFragment _Symbolable__OclElement = new ExecutorFragment(Types._Symbolable, OCLstdlibTables.Types._OclElement);
 		private static final @NonNull ExecutorFragment _Symbolable__Symbolable = new ExecutorFragment(Types._Symbolable, QVTscheduleTables.Types._Symbolable);
 
-		private static final @NonNull ExecutorFragment _ToDOTable__OclAny = new ExecutorFragment(Types._ToDOTable, OCLstdlibTables.Types._OclAny);
-		private static final @NonNull ExecutorFragment _ToDOTable__OclElement = new ExecutorFragment(Types._ToDOTable, OCLstdlibTables.Types._OclElement);
-		private static final @NonNull ExecutorFragment _ToDOTable__ToDOTable = new ExecutorFragment(Types._ToDOTable, QVTscheduleTables.Types._ToDOTable);
-
 		private static final @NonNull ExecutorFragment _TrueNode__ConnectionEnd = new ExecutorFragment(Types._TrueNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _TrueNode__Element = new ExecutorFragment(Types._TrueNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _TrueNode__GraphNode = new ExecutorFragment(Types._TrueNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _TrueNode__Nameable = new ExecutorFragment(Types._TrueNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _TrueNode__Node = new ExecutorFragment(Types._TrueNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _TrueNode__OclAny = new ExecutorFragment(Types._TrueNode, OCLstdlibTables.Types._OclAny);
@@ -663,7 +603,6 @@
 
 		private static final @NonNull ExecutorFragment _UnknownNode__ConnectionEnd = new ExecutorFragment(Types._UnknownNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _UnknownNode__Element = new ExecutorFragment(Types._UnknownNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _UnknownNode__GraphNode = new ExecutorFragment(Types._UnknownNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _UnknownNode__Nameable = new ExecutorFragment(Types._UnknownNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _UnknownNode__Node = new ExecutorFragment(Types._UnknownNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _UnknownNode__OclAny = new ExecutorFragment(Types._UnknownNode, OCLstdlibTables.Types._OclAny);
@@ -673,7 +612,6 @@
 
 		private static final @NonNull ExecutorFragment _VariableNode__ConnectionEnd = new ExecutorFragment(Types._VariableNode, QVTscheduleTables.Types._ConnectionEnd);
 		private static final @NonNull ExecutorFragment _VariableNode__Element = new ExecutorFragment(Types._VariableNode, PivotTables.Types._Element);
-		private static final @NonNull ExecutorFragment _VariableNode__GraphNode = new ExecutorFragment(Types._VariableNode, QVTscheduleTables.Types._GraphNode);
 		private static final @NonNull ExecutorFragment _VariableNode__Nameable = new ExecutorFragment(Types._VariableNode, PivotTables.Types._Nameable);
 		private static final @NonNull ExecutorFragment _VariableNode__Node = new ExecutorFragment(Types._VariableNode, QVTscheduleTables.Types._Node);
 		private static final @NonNull ExecutorFragment _VariableNode__OclAny = new ExecutorFragment(Types._VariableNode, OCLstdlibTables.Types._OclAny);
@@ -751,26 +689,26 @@
 			Operations.init();
 		}
 
-		public static final @NonNull ExecutorProperty _AbstractDatum__producedBy = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__PRODUCED_BY, Types._AbstractDatum, 0);
-		public static final @NonNull ExecutorProperty _AbstractDatum__requiredBy = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__REQUIRED_BY, Types._AbstractDatum, 1);
-		public static final @NonNull ExecutorProperty _AbstractDatum__typedModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__TYPED_MODEL, Types._AbstractDatum, 2);
+		public static final @NonNull ExecutorProperty _AbstractDatum__producedByActions = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS, Types._AbstractDatum, 0);
+		public static final @NonNull ExecutorProperty _AbstractDatum__referredTypedModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__REFERRED_TYPED_MODEL, Types._AbstractDatum, 1);
+		public static final @NonNull ExecutorProperty _AbstractDatum__requiredByActions = new EcoreExecutorProperty(QVTschedulePackage.Literals.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS, Types._AbstractDatum, 2);
 
-		public static final @NonNull ExecutorProperty _BasicMappingRegion__mapping = new EcoreExecutorProperty(QVTschedulePackage.Literals.BASIC_MAPPING_REGION__MAPPING, Types._BasicMappingRegion, 0);
-		public static final @NonNull ExecutorProperty _BasicMappingRegion__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.BASIC_MAPPING_REGION__NAME, Types._BasicMappingRegion, 1);
+		public static final @NonNull ExecutorProperty _BasicMappingRegion__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.BASIC_MAPPING_REGION__NAME, Types._BasicMappingRegion, 0);
+		public static final @NonNull ExecutorProperty _BasicMappingRegion__referredMapping = new EcoreExecutorProperty(QVTschedulePackage.Literals.BASIC_MAPPING_REGION__REFERRED_MAPPING, Types._BasicMappingRegion, 1);
 
-		public static final @NonNull ExecutorProperty _CastEdge__primaryClass = new EcoreExecutorProperty(QVTschedulePackage.Literals.CAST_EDGE__PRIMARY_CLASS, Types._CastEdge, 0);
-		public static final @NonNull ExecutorProperty _CastEdge__property = new EcoreExecutorProperty(QVTschedulePackage.Literals.CAST_EDGE__PROPERTY, Types._CastEdge, 1);
+		public static final @NonNull ExecutorProperty _CastEdge__property = new EcoreExecutorProperty(QVTschedulePackage.Literals.CAST_EDGE__PROPERTY, Types._CastEdge, 0);
+		public static final @NonNull ExecutorProperty _CastEdge__referredClass = new EcoreExecutorProperty(QVTschedulePackage.Literals.CAST_EDGE__REFERRED_CLASS, Types._CastEdge, 1);
 
 		public static final @NonNull ExecutorProperty _ClassDatum__completeClass = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__COMPLETE_CLASS, Types._ClassDatum, 0);
-		public static final @NonNull ExecutorProperty _ClassDatum__primaryClass = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__PRIMARY_CLASS, Types._ClassDatum, 1);
-		public static final @NonNull ExecutorProperty _ClassDatum__propertyDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__PROPERTY_DATUMS, Types._ClassDatum, 2);
-		public static final @NonNull ExecutorProperty _ClassDatum__scheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__SCHEDULE_MODEL, Types._ClassDatum, 3);
+		public static final @NonNull ExecutorProperty _ClassDatum__owningPropertyDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__OWNING_PROPERTY_DATUMS, Types._ClassDatum, 1);
+		public static final @NonNull ExecutorProperty _ClassDatum__owningScheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__OWNING_SCHEDULE_MODEL, Types._ClassDatum, 2);
+		public static final @NonNull ExecutorProperty _ClassDatum__referredClass = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__REFERRED_CLASS, Types._ClassDatum, 3);
 		public static final @NonNull ExecutorProperty _ClassDatum__superClassDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.CLASS_DATUM__SUPER_CLASS_DATUMS, Types._ClassDatum, 4);
 		public static final @NonNull ExecutorProperty _ClassDatum__ClassDatum__superClassDatums = new ExecutorPropertyWithImplementation("ClassDatum", Types._ClassDatum, 5, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.CLASS_DATUM__SUPER_CLASS_DATUMS));
 		public static final @NonNull ExecutorProperty _ClassDatum__Node__classDatum = new ExecutorPropertyWithImplementation("Node", Types._ClassDatum, 6, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.NODE__CLASS_DATUM));
 		public static final @NonNull ExecutorProperty _ClassDatum__NodeConnection__classDatum = new ExecutorPropertyWithImplementation("NodeConnection", Types._ClassDatum, 7, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.NODE_CONNECTION__CLASS_DATUM));
 
-		public static final @NonNull ExecutorProperty _Connection__region = new EcoreExecutorProperty(QVTschedulePackage.Literals.CONNECTION__REGION, Types._Connection, 0);
+		public static final @NonNull ExecutorProperty _Connection__owningScheduledRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.CONNECTION__OWNING_SCHEDULED_REGION, Types._Connection, 0);
 
 		public static final @NonNull ExecutorProperty _DatumConnection__connectionRole = new EcoreExecutorProperty(QVTschedulePackage.Literals.DATUM_CONNECTION__CONNECTION_ROLE, Types._DatumConnection, 0);
 		public static final @NonNull ExecutorProperty _DatumConnection__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.DATUM_CONNECTION__NAME, Types._DatumConnection, 1);
@@ -778,23 +716,23 @@
 
 		public static final @NonNull ExecutorProperty _Edge__edgeRole = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__EDGE_ROLE, Types._Edge, 0);
 		public static final @NonNull ExecutorProperty _Edge__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__NAME, Types._Edge, 1);
-		public static final @NonNull ExecutorProperty _Edge__region = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__REGION, Types._Edge, 2);
+		public static final @NonNull ExecutorProperty _Edge__owningRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__OWNING_REGION, Types._Edge, 2);
 		public static final @NonNull ExecutorProperty _Edge__sourceNode = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__SOURCE_NODE, Types._Edge, 3);
 		public static final @NonNull ExecutorProperty _Edge__targetNode = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE__TARGET_NODE, Types._Edge, 4);
 
-		public static final @NonNull ExecutorProperty _EdgeConnection__property = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE_CONNECTION__PROPERTY, Types._EdgeConnection, 0);
+		public static final @NonNull ExecutorProperty _EdgeConnection__referredProperty = new EcoreExecutorProperty(QVTschedulePackage.Literals.EDGE_CONNECTION__REFERRED_PROPERTY, Types._EdgeConnection, 0);
 		public static final @NonNull ExecutorProperty _EdgeConnection__NavigableEdge__incomingConnection = new ExecutorPropertyWithImplementation("NavigableEdge", Types._EdgeConnection, 1, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.NAVIGABLE_EDGE__INCOMING_CONNECTION));
 		public static final @NonNull ExecutorProperty _EdgeConnection__NavigableEdge__outgoingConnections = new ExecutorPropertyWithImplementation("NavigableEdge", Types._EdgeConnection, 2, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.NAVIGABLE_EDGE__OUTGOING_CONNECTIONS));
 
 		public static final @NonNull ExecutorProperty _LoadingRegion__ScheduleModel__loadingRegion = new ExecutorPropertyWithImplementation("ScheduleModel", Types._LoadingRegion, 0, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__LOADING_REGION));
 
-		public static final @NonNull ExecutorProperty _MappingAction__mapping = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__MAPPING, Types._MappingAction, 0);
-		public static final @NonNull ExecutorProperty _MappingAction__productions = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__PRODUCTIONS, Types._MappingAction, 1);
-		public static final @NonNull ExecutorProperty _MappingAction__requisites = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__REQUISITES, Types._MappingAction, 2);
-		public static final @NonNull ExecutorProperty _MappingAction__scheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__SCHEDULE_MODEL, Types._MappingAction, 3);
+		public static final @NonNull ExecutorProperty _MappingAction__owningScheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__OWNING_SCHEDULE_MODEL, Types._MappingAction, 0);
+		public static final @NonNull ExecutorProperty _MappingAction__producedDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__PRODUCED_DATUMS, Types._MappingAction, 1);
+		public static final @NonNull ExecutorProperty _MappingAction__referredMapping = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__REFERRED_MAPPING, Types._MappingAction, 2);
+		public static final @NonNull ExecutorProperty _MappingAction__requiredDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.MAPPING_ACTION__REQUIRED_DATUMS, Types._MappingAction, 3);
 
 		public static final @NonNull ExecutorProperty _MappingRegion__MicroMappingRegion__mappingRegion = new ExecutorPropertyWithImplementation("MicroMappingRegion", Types._MappingRegion, 0, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.MICRO_MAPPING_REGION__MAPPING_REGION));
-		public static final @NonNull ExecutorProperty _MappingRegion__ScheduleModel__otherMappingRegions = new ExecutorPropertyWithImplementation("ScheduleModel", Types._MappingRegion, 1, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS));
+		public static final @NonNull ExecutorProperty _MappingRegion__ScheduleModel__ownedOtherMappingRegions = new ExecutorPropertyWithImplementation("ScheduleModel", Types._MappingRegion, 1, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS));
 
 		public static final @NonNull ExecutorProperty _MicroMappingRegion__mappingRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.MICRO_MAPPING_REGION__MAPPING_REGION, Types._MicroMappingRegion, 0);
 		public static final @NonNull ExecutorProperty _MicroMappingRegion__namePrefix = new EcoreExecutorProperty(QVTschedulePackage.Literals.MICRO_MAPPING_REGION__NAME_PREFIX, Types._MicroMappingRegion, 1);
@@ -810,7 +748,7 @@
 		public static final @NonNull ExecutorProperty _NavigableEdge__NavigableEdge__oppositeEdge = new ExecutorPropertyWithImplementation("NavigableEdge", Types._NavigableEdge, 4, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.NAVIGABLE_EDGE__OPPOSITE_EDGE));
 
 		public static final @NonNull ExecutorProperty _NavigationEdge__partial = new EcoreExecutorProperty(QVTschedulePackage.Literals.NAVIGATION_EDGE__PARTIAL, Types._NavigationEdge, 0);
-		public static final @NonNull ExecutorProperty _NavigationEdge__property = new EcoreExecutorProperty(QVTschedulePackage.Literals.NAVIGATION_EDGE__PROPERTY, Types._NavigationEdge, 1);
+		public static final @NonNull ExecutorProperty _NavigationEdge__referredProperty = new EcoreExecutorProperty(QVTschedulePackage.Literals.NAVIGATION_EDGE__REFERRED_PROPERTY, Types._NavigationEdge, 1);
 
 		public static final @NonNull ExecutorProperty _Node__classDatum = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__CLASS_DATUM, Types._Node, 0);
 		public static final @NonNull ExecutorProperty _Node__incomingConnection = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__INCOMING_CONNECTION, Types._Node, 1);
@@ -819,7 +757,7 @@
 		public static final @NonNull ExecutorProperty _Node__nodeRole = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__NODE_ROLE, Types._Node, 4);
 		public static final @NonNull ExecutorProperty _Node__outgoingConnections = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__OUTGOING_CONNECTIONS, Types._Node, 5);
 		public static final @NonNull ExecutorProperty _Node__outgoingEdges = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__OUTGOING_EDGES, Types._Node, 6);
-		public static final @NonNull ExecutorProperty _Node__region = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__REGION, Types._Node, 7);
+		public static final @NonNull ExecutorProperty _Node__owningRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.NODE__OWNING_REGION, Types._Node, 7);
 		public static final @NonNull ExecutorProperty _Node__OperationRegion__dependencyNodes = new ExecutorPropertyWithImplementation("OperationRegion", Types._Node, 8, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.OPERATION_REGION__DEPENDENCY_NODES));
 		public static final @NonNull ExecutorProperty _Node__OperationRegion__headNodes = new ExecutorPropertyWithImplementation("OperationRegion", Types._Node, 9, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.OPERATION_REGION__HEAD_NODES));
 		public static final @NonNull ExecutorProperty _Node__OperationRegion__resultNode = new ExecutorPropertyWithImplementation("OperationRegion", Types._Node, 10, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.OPERATION_REGION__RESULT_NODE));
@@ -835,42 +773,40 @@
 		public static final @NonNull ExecutorProperty _OperationRegion__dependencyNodes = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__DEPENDENCY_NODES, Types._OperationRegion, 0);
 		public static final @NonNull ExecutorProperty _OperationRegion__headNodes = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__HEAD_NODES, Types._OperationRegion, 1);
 		public static final @NonNull ExecutorProperty _OperationRegion__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__NAME, Types._OperationRegion, 2);
-		public static final @NonNull ExecutorProperty _OperationRegion__operation = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__OPERATION, Types._OperationRegion, 3);
+		public static final @NonNull ExecutorProperty _OperationRegion__referredOperation = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__REFERRED_OPERATION, Types._OperationRegion, 3);
 		public static final @NonNull ExecutorProperty _OperationRegion__resultNode = new EcoreExecutorProperty(QVTschedulePackage.Literals.OPERATION_REGION__RESULT_NODE, Types._OperationRegion, 4);
 
 		public static final @NonNull ExecutorProperty _PatternTypedNode__matched = new EcoreExecutorProperty(QVTschedulePackage.Literals.PATTERN_TYPED_NODE__MATCHED, Types._PatternTypedNode, 0);
 
 		public static final @NonNull ExecutorProperty _PatternVariableNode__matched = new EcoreExecutorProperty(QVTschedulePackage.Literals.PATTERN_VARIABLE_NODE__MATCHED, Types._PatternVariableNode, 0);
 
-		public static final @NonNull ExecutorProperty _PropertyDatum__classDatum = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__CLASS_DATUM, Types._PropertyDatum, 0);
-		public static final @NonNull ExecutorProperty _PropertyDatum__opposite = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__OPPOSITE, Types._PropertyDatum, 1);
-		public static final @NonNull ExecutorProperty _PropertyDatum__property = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__PROPERTY, Types._PropertyDatum, 2);
-		public static final @NonNull ExecutorProperty _PropertyDatum__super = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__SUPER, Types._PropertyDatum, 3);
+		public static final @NonNull ExecutorProperty _PropertyDatum__opposite = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__OPPOSITE, Types._PropertyDatum, 0);
+		public static final @NonNull ExecutorProperty _PropertyDatum__owningClassDatum = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__OWNING_CLASS_DATUM, Types._PropertyDatum, 1);
+		public static final @NonNull ExecutorProperty _PropertyDatum__referredProperty = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__REFERRED_PROPERTY, Types._PropertyDatum, 2);
+		public static final @NonNull ExecutorProperty _PropertyDatum__superPropertyDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS, Types._PropertyDatum, 3);
 		public static final @NonNull ExecutorProperty _PropertyDatum__PropertyDatum__opposite = new ExecutorPropertyWithImplementation("PropertyDatum", Types._PropertyDatum, 4, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__OPPOSITE));
-		public static final @NonNull ExecutorProperty _PropertyDatum__PropertyDatum__super = new ExecutorPropertyWithImplementation("PropertyDatum", Types._PropertyDatum, 5, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__SUPER));
+		public static final @NonNull ExecutorProperty _PropertyDatum__PropertyDatum__superPropertyDatums = new ExecutorPropertyWithImplementation("PropertyDatum", Types._PropertyDatum, 5, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS));
 
 		public static final @NonNull ExecutorProperty _RecursionEdge__primary = new EcoreExecutorProperty(QVTschedulePackage.Literals.RECURSION_EDGE__PRIMARY, Types._RecursionEdge, 0);
 
-		public static final @NonNull ExecutorProperty _Region__edges = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__EDGES, Types._Region, 0);
-		public static final @NonNull ExecutorProperty _Region__invokingRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__INVOKING_REGION, Types._Region, 1);
-		public static final @NonNull ExecutorProperty _Region__nodes = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__NODES, Types._Region, 2);
-		public static final @NonNull ExecutorProperty _Region__region = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__REGION, Types._Region, 3);
-		public static final @NonNull ExecutorProperty _Region__Region__region = new ExecutorPropertyWithImplementation("Region", Types._Region, 4, new EcoreLibraryOppositeProperty(QVTschedulePackage.Literals.REGION__REGION));
+		public static final @NonNull ExecutorProperty _Region__ownedEdges = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__OWNED_EDGES, Types._Region, 0);
+		public static final @NonNull ExecutorProperty _Region__ownedNodes = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__OWNED_NODES, Types._Region, 1);
+		public static final @NonNull ExecutorProperty _Region__owningScheduledRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.REGION__OWNING_SCHEDULED_REGION, Types._Region, 2);
 
-		public static final @NonNull ExecutorProperty _ScheduleModel__classDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__CLASS_DATUMS, Types._ScheduleModel, 0);
-		public static final @NonNull ExecutorProperty _ScheduleModel__loadingRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__LOADING_REGION, Types._ScheduleModel, 1);
-		public static final @NonNull ExecutorProperty _ScheduleModel__mappingActions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__MAPPING_ACTIONS, Types._ScheduleModel, 2);
-		public static final @NonNull ExecutorProperty _ScheduleModel__otherMappingRegions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS, Types._ScheduleModel, 3);
-		public static final @NonNull ExecutorProperty _ScheduleModel__scheduledRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__SCHEDULED_REGION, Types._ScheduleModel, 4);
+		public static final @NonNull ExecutorProperty _ScheduleModel__loadingRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__LOADING_REGION, Types._ScheduleModel, 0);
+		public static final @NonNull ExecutorProperty _ScheduleModel__ownedClassDatums = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OWNED_CLASS_DATUMS, Types._ScheduleModel, 1);
+		public static final @NonNull ExecutorProperty _ScheduleModel__ownedMappingActions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS, Types._ScheduleModel, 2);
+		public static final @NonNull ExecutorProperty _ScheduleModel__ownedOtherMappingRegions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS, Types._ScheduleModel, 3);
+		public static final @NonNull ExecutorProperty _ScheduleModel__ownedScheduledRegion = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, Types._ScheduleModel, 4);
 
-		public static final @NonNull ExecutorProperty _ScheduledRegion__connections = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__CONNECTIONS, Types._ScheduledRegion, 0);
-		public static final @NonNull ExecutorProperty _ScheduledRegion__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__NAME, Types._ScheduledRegion, 1);
-		public static final @NonNull ExecutorProperty _ScheduledRegion__regions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__REGIONS, Types._ScheduledRegion, 2);
-		public static final @NonNull ExecutorProperty _ScheduledRegion__scheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__SCHEDULE_MODEL, Types._ScheduledRegion, 3);
+		public static final @NonNull ExecutorProperty _ScheduledRegion__name = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__NAME, Types._ScheduledRegion, 0);
+		public static final @NonNull ExecutorProperty _ScheduledRegion__ownedConnections = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__OWNED_CONNECTIONS, Types._ScheduledRegion, 1);
+		public static final @NonNull ExecutorProperty _ScheduledRegion__ownedRegions = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__OWNED_REGIONS, Types._ScheduledRegion, 2);
+		public static final @NonNull ExecutorProperty _ScheduledRegion__owningScheduleModel = new EcoreExecutorProperty(QVTschedulePackage.Literals.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL, Types._ScheduledRegion, 3);
 
 		public static final @NonNull ExecutorProperty _Symbolable__symbolName = new EcoreExecutorProperty(QVTschedulePackage.Literals.SYMBOLABLE__SYMBOL_NAME, Types._Symbolable, 0);
 
-		public static final @NonNull ExecutorProperty _VariableNode__variable = new EcoreExecutorProperty(QVTschedulePackage.Literals.VARIABLE_NODE__VARIABLE, Types._VariableNode, 0);
+		public static final @NonNull ExecutorProperty _VariableNode__referredVariable = new EcoreExecutorProperty(QVTschedulePackage.Literals.VARIABLE_NODE__REFERRED_VARIABLE, Types._VariableNode, 0);
 		static {
 			Init.initEnd();
 		}
@@ -904,24 +840,21 @@
 		{
 			Fragments._BasicMappingRegion__OclAny /* 0 */,
 			Fragments._BasicMappingRegion__OclElement /* 1 */,
-			Fragments._BasicMappingRegion__GraphNode /* 2 */,
 			Fragments._BasicMappingRegion__Nameable /* 2 */,
 			Fragments._BasicMappingRegion__Symbolable /* 2 */,
-			Fragments._BasicMappingRegion__ToDOTable /* 2 */,
 			Fragments._BasicMappingRegion__Visitable /* 2 */,
 			Fragments._BasicMappingRegion__Element /* 3 */,
 			Fragments._BasicMappingRegion__Region /* 4 */,
 			Fragments._BasicMappingRegion__MappingRegion /* 5 */,
 			Fragments._BasicMappingRegion__BasicMappingRegion /* 6 */
 		};
-		private static final int @NonNull [] __BasicMappingRegion = { 1,1,5,1,1,1,1 };
+		private static final int @NonNull [] __BasicMappingRegion = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _CastEdge =
 		{
 			Fragments._CastEdge__OclAny /* 0 */,
 			Fragments._CastEdge__OclElement /* 1 */,
 			Fragments._CastEdge__ConnectionEnd /* 2 */,
-			Fragments._CastEdge__GraphEdge /* 2 */,
 			Fragments._CastEdge__Nameable /* 2 */,
 			Fragments._CastEdge__Visitable /* 2 */,
 			Fragments._CastEdge__Element /* 3 */,
@@ -929,7 +862,7 @@
 			Fragments._CastEdge__NavigableEdge /* 5 */,
 			Fragments._CastEdge__CastEdge /* 6 */
 		};
-		private static final int @NonNull [] __CastEdge = { 1,1,4,1,1,1,1 };
+		private static final int @NonNull [] __CastEdge = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _ClassDatum =
 		{
@@ -947,14 +880,13 @@
 			Fragments._ComposedNode__OclAny /* 0 */,
 			Fragments._ComposedNode__OclElement /* 1 */,
 			Fragments._ComposedNode__ConnectionEnd /* 2 */,
-			Fragments._ComposedNode__GraphNode /* 2 */,
 			Fragments._ComposedNode__Nameable /* 2 */,
 			Fragments._ComposedNode__Visitable /* 2 */,
 			Fragments._ComposedNode__Element /* 3 */,
 			Fragments._ComposedNode__Node /* 4 */,
 			Fragments._ComposedNode__ComposedNode /* 5 */
 		};
-		private static final int @NonNull [] __ComposedNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __ComposedNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _Connection =
 		{
@@ -990,8 +922,6 @@
 		{
 			Fragments._DatumConnection__OclAny /* 0 */,
 			Fragments._DatumConnection__OclElement /* 1 */,
-			Fragments._DatumConnection__GraphEdge /* 2 */,
-			Fragments._DatumConnection__GraphNode /* 2 */,
 			Fragments._DatumConnection__Nameable /* 2 */,
 			Fragments._DatumConnection__Symbolable /* 2 */,
 			Fragments._DatumConnection__Visitable /* 2 */,
@@ -999,21 +929,20 @@
 			Fragments._DatumConnection__Connection /* 4 */,
 			Fragments._DatumConnection__DatumConnection /* 5 */
 		};
-		private static final int @NonNull [] __DatumConnection = { 1,1,5,1,1,1 };
+		private static final int @NonNull [] __DatumConnection = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _DependencyNode =
 		{
 			Fragments._DependencyNode__OclAny /* 0 */,
 			Fragments._DependencyNode__OclElement /* 1 */,
 			Fragments._DependencyNode__ConnectionEnd /* 2 */,
-			Fragments._DependencyNode__GraphNode /* 2 */,
 			Fragments._DependencyNode__Nameable /* 2 */,
 			Fragments._DependencyNode__Visitable /* 2 */,
 			Fragments._DependencyNode__Element /* 3 */,
 			Fragments._DependencyNode__Node /* 4 */,
 			Fragments._DependencyNode__DependencyNode /* 5 */
 		};
-		private static final int @NonNull [] __DependencyNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __DependencyNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _DomainUsage =
 		{
@@ -1027,20 +956,17 @@
 		{
 			Fragments._Edge__OclAny /* 0 */,
 			Fragments._Edge__OclElement /* 1 */,
-			Fragments._Edge__GraphEdge /* 2 */,
 			Fragments._Edge__Nameable /* 2 */,
 			Fragments._Edge__Visitable /* 2 */,
 			Fragments._Edge__Element /* 3 */,
 			Fragments._Edge__Edge /* 4 */
 		};
-		private static final int @NonNull [] __Edge = { 1,1,3,1,1 };
+		private static final int @NonNull [] __Edge = { 1,1,2,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _EdgeConnection =
 		{
 			Fragments._EdgeConnection__OclAny /* 0 */,
 			Fragments._EdgeConnection__OclElement /* 1 */,
-			Fragments._EdgeConnection__GraphEdge /* 2 */,
-			Fragments._EdgeConnection__GraphNode /* 2 */,
 			Fragments._EdgeConnection__Nameable /* 2 */,
 			Fragments._EdgeConnection__Symbolable /* 2 */,
 			Fragments._EdgeConnection__Visitable /* 2 */,
@@ -1049,84 +975,63 @@
 			Fragments._EdgeConnection__DatumConnection /* 5 */,
 			Fragments._EdgeConnection__EdgeConnection /* 6 */
 		};
-		private static final int @NonNull [] __EdgeConnection = { 1,1,5,1,1,1,1 };
+		private static final int @NonNull [] __EdgeConnection = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _ErrorNode =
 		{
 			Fragments._ErrorNode__OclAny /* 0 */,
 			Fragments._ErrorNode__OclElement /* 1 */,
 			Fragments._ErrorNode__ConnectionEnd /* 2 */,
-			Fragments._ErrorNode__GraphNode /* 2 */,
 			Fragments._ErrorNode__Nameable /* 2 */,
 			Fragments._ErrorNode__Visitable /* 2 */,
 			Fragments._ErrorNode__Element /* 3 */,
 			Fragments._ErrorNode__Node /* 4 */,
 			Fragments._ErrorNode__ErrorNode /* 5 */
 		};
-		private static final int @NonNull [] __ErrorNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __ErrorNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _ExpressionEdge =
 		{
 			Fragments._ExpressionEdge__OclAny /* 0 */,
 			Fragments._ExpressionEdge__OclElement /* 1 */,
-			Fragments._ExpressionEdge__GraphEdge /* 2 */,
 			Fragments._ExpressionEdge__Nameable /* 2 */,
 			Fragments._ExpressionEdge__Visitable /* 2 */,
 			Fragments._ExpressionEdge__Element /* 3 */,
 			Fragments._ExpressionEdge__Edge /* 4 */,
 			Fragments._ExpressionEdge__ExpressionEdge /* 5 */
 		};
-		private static final int @NonNull [] __ExpressionEdge = { 1,1,3,1,1,1 };
-
-		private static final @NonNull ExecutorFragment @NonNull [] _GraphEdge =
-		{
-			Fragments._GraphEdge__OclAny /* 0 */,
-			Fragments._GraphEdge__OclElement /* 1 */,
-			Fragments._GraphEdge__GraphEdge /* 2 */
-		};
-		private static final int @NonNull [] __GraphEdge = { 1,1,1 };
-
-		private static final @NonNull ExecutorFragment @NonNull [] _GraphNode =
-		{
-			Fragments._GraphNode__OclAny /* 0 */,
-			Fragments._GraphNode__OclElement /* 1 */,
-			Fragments._GraphNode__GraphNode /* 2 */
-		};
-		private static final int @NonNull [] __GraphNode = { 1,1,1 };
+		private static final int @NonNull [] __ExpressionEdge = { 1,1,2,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _InputNode =
 		{
 			Fragments._InputNode__OclAny /* 0 */,
 			Fragments._InputNode__OclElement /* 1 */,
 			Fragments._InputNode__ConnectionEnd /* 2 */,
-			Fragments._InputNode__GraphNode /* 2 */,
 			Fragments._InputNode__Nameable /* 2 */,
 			Fragments._InputNode__Visitable /* 2 */,
 			Fragments._InputNode__Element /* 3 */,
 			Fragments._InputNode__Node /* 4 */,
 			Fragments._InputNode__InputNode /* 5 */
 		};
-		private static final int @NonNull [] __InputNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __InputNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _IteratedEdge =
 		{
 			Fragments._IteratedEdge__OclAny /* 0 */,
 			Fragments._IteratedEdge__OclElement /* 1 */,
-			Fragments._IteratedEdge__GraphEdge /* 2 */,
 			Fragments._IteratedEdge__Nameable /* 2 */,
 			Fragments._IteratedEdge__Visitable /* 2 */,
 			Fragments._IteratedEdge__Element /* 3 */,
 			Fragments._IteratedEdge__Edge /* 4 */,
 			Fragments._IteratedEdge__IteratedEdge /* 5 */
 		};
-		private static final int @NonNull [] __IteratedEdge = { 1,1,3,1,1,1 };
+		private static final int @NonNull [] __IteratedEdge = { 1,1,2,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _IteratorNode =
 		{
 			Fragments._IteratorNode__OclAny /* 0 */,
 			Fragments._IteratorNode__OclElement /* 1 */,
 			Fragments._IteratorNode__ConnectionEnd /* 2 */,
-			Fragments._IteratorNode__GraphNode /* 2 */,
 			Fragments._IteratorNode__Nameable /* 2 */,
 			Fragments._IteratorNode__Visitable /* 2 */,
 			Fragments._IteratorNode__Element /* 3 */,
@@ -1134,22 +1039,20 @@
 			Fragments._IteratorNode__VariableNode /* 5 */,
 			Fragments._IteratorNode__IteratorNode /* 6 */
 		};
-		private static final int @NonNull [] __IteratorNode = { 1,1,4,1,1,1,1 };
+		private static final int @NonNull [] __IteratorNode = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _LoadingRegion =
 		{
 			Fragments._LoadingRegion__OclAny /* 0 */,
 			Fragments._LoadingRegion__OclElement /* 1 */,
-			Fragments._LoadingRegion__GraphNode /* 2 */,
 			Fragments._LoadingRegion__Nameable /* 2 */,
 			Fragments._LoadingRegion__Symbolable /* 2 */,
-			Fragments._LoadingRegion__ToDOTable /* 2 */,
 			Fragments._LoadingRegion__Visitable /* 2 */,
 			Fragments._LoadingRegion__Element /* 3 */,
 			Fragments._LoadingRegion__Region /* 4 */,
 			Fragments._LoadingRegion__LoadingRegion /* 5 */
 		};
-		private static final int @NonNull [] __LoadingRegion = { 1,1,5,1,1,1 };
+		private static final int @NonNull [] __LoadingRegion = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _MappingAction =
 		{
@@ -1165,69 +1068,61 @@
 		{
 			Fragments._MappingRegion__OclAny /* 0 */,
 			Fragments._MappingRegion__OclElement /* 1 */,
-			Fragments._MappingRegion__GraphNode /* 2 */,
 			Fragments._MappingRegion__Nameable /* 2 */,
 			Fragments._MappingRegion__Symbolable /* 2 */,
-			Fragments._MappingRegion__ToDOTable /* 2 */,
 			Fragments._MappingRegion__Visitable /* 2 */,
 			Fragments._MappingRegion__Element /* 3 */,
 			Fragments._MappingRegion__Region /* 4 */,
 			Fragments._MappingRegion__MappingRegion /* 5 */
 		};
-		private static final int @NonNull [] __MappingRegion = { 1,1,5,1,1,1 };
+		private static final int @NonNull [] __MappingRegion = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _MicroMappingRegion =
 		{
 			Fragments._MicroMappingRegion__OclAny /* 0 */,
 			Fragments._MicroMappingRegion__OclElement /* 1 */,
-			Fragments._MicroMappingRegion__GraphNode /* 2 */,
 			Fragments._MicroMappingRegion__Nameable /* 2 */,
 			Fragments._MicroMappingRegion__Symbolable /* 2 */,
-			Fragments._MicroMappingRegion__ToDOTable /* 2 */,
 			Fragments._MicroMappingRegion__Visitable /* 2 */,
 			Fragments._MicroMappingRegion__Element /* 3 */,
 			Fragments._MicroMappingRegion__Region /* 4 */,
 			Fragments._MicroMappingRegion__MappingRegion /* 5 */,
 			Fragments._MicroMappingRegion__MicroMappingRegion /* 6 */
 		};
-		private static final int @NonNull [] __MicroMappingRegion = { 1,1,5,1,1,1,1 };
+		private static final int @NonNull [] __MicroMappingRegion = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _NamedMappingRegion =
 		{
 			Fragments._NamedMappingRegion__OclAny /* 0 */,
 			Fragments._NamedMappingRegion__OclElement /* 1 */,
-			Fragments._NamedMappingRegion__GraphNode /* 2 */,
 			Fragments._NamedMappingRegion__Nameable /* 2 */,
 			Fragments._NamedMappingRegion__Symbolable /* 2 */,
-			Fragments._NamedMappingRegion__ToDOTable /* 2 */,
 			Fragments._NamedMappingRegion__Visitable /* 2 */,
 			Fragments._NamedMappingRegion__Element /* 3 */,
 			Fragments._NamedMappingRegion__Region /* 4 */,
 			Fragments._NamedMappingRegion__MappingRegion /* 5 */,
 			Fragments._NamedMappingRegion__NamedMappingRegion /* 6 */
 		};
-		private static final int @NonNull [] __NamedMappingRegion = { 1,1,5,1,1,1,1 };
+		private static final int @NonNull [] __NamedMappingRegion = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _NavigableEdge =
 		{
 			Fragments._NavigableEdge__OclAny /* 0 */,
 			Fragments._NavigableEdge__OclElement /* 1 */,
 			Fragments._NavigableEdge__ConnectionEnd /* 2 */,
-			Fragments._NavigableEdge__GraphEdge /* 2 */,
 			Fragments._NavigableEdge__Nameable /* 2 */,
 			Fragments._NavigableEdge__Visitable /* 2 */,
 			Fragments._NavigableEdge__Element /* 3 */,
 			Fragments._NavigableEdge__Edge /* 4 */,
 			Fragments._NavigableEdge__NavigableEdge /* 5 */
 		};
-		private static final int @NonNull [] __NavigableEdge = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __NavigableEdge = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _NavigationEdge =
 		{
 			Fragments._NavigationEdge__OclAny /* 0 */,
 			Fragments._NavigationEdge__OclElement /* 1 */,
 			Fragments._NavigationEdge__ConnectionEnd /* 2 */,
-			Fragments._NavigationEdge__GraphEdge /* 2 */,
 			Fragments._NavigationEdge__Nameable /* 2 */,
 			Fragments._NavigationEdge__Visitable /* 2 */,
 			Fragments._NavigationEdge__Element /* 3 */,
@@ -1235,27 +1130,24 @@
 			Fragments._NavigationEdge__NavigableEdge /* 5 */,
 			Fragments._NavigationEdge__NavigationEdge /* 6 */
 		};
-		private static final int @NonNull [] __NavigationEdge = { 1,1,4,1,1,1,1 };
+		private static final int @NonNull [] __NavigationEdge = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _Node =
 		{
 			Fragments._Node__OclAny /* 0 */,
 			Fragments._Node__OclElement /* 1 */,
 			Fragments._Node__ConnectionEnd /* 2 */,
-			Fragments._Node__GraphNode /* 2 */,
 			Fragments._Node__Nameable /* 2 */,
 			Fragments._Node__Visitable /* 2 */,
 			Fragments._Node__Element /* 3 */,
 			Fragments._Node__Node /* 4 */
 		};
-		private static final int @NonNull [] __Node = { 1,1,4,1,1 };
+		private static final int @NonNull [] __Node = { 1,1,3,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _NodeConnection =
 		{
 			Fragments._NodeConnection__OclAny /* 0 */,
 			Fragments._NodeConnection__OclElement /* 1 */,
-			Fragments._NodeConnection__GraphEdge /* 2 */,
-			Fragments._NodeConnection__GraphNode /* 2 */,
 			Fragments._NodeConnection__Nameable /* 2 */,
 			Fragments._NodeConnection__Symbolable /* 2 */,
 			Fragments._NodeConnection__Visitable /* 2 */,
@@ -1264,71 +1156,65 @@
 			Fragments._NodeConnection__DatumConnection /* 5 */,
 			Fragments._NodeConnection__NodeConnection /* 6 */
 		};
-		private static final int @NonNull [] __NodeConnection = { 1,1,5,1,1,1,1 };
+		private static final int @NonNull [] __NodeConnection = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _NullNode =
 		{
 			Fragments._NullNode__OclAny /* 0 */,
 			Fragments._NullNode__OclElement /* 1 */,
 			Fragments._NullNode__ConnectionEnd /* 2 */,
-			Fragments._NullNode__GraphNode /* 2 */,
 			Fragments._NullNode__Nameable /* 2 */,
 			Fragments._NullNode__Visitable /* 2 */,
 			Fragments._NullNode__Element /* 3 */,
 			Fragments._NullNode__Node /* 4 */,
 			Fragments._NullNode__NullNode /* 5 */
 		};
-		private static final int @NonNull [] __NullNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __NullNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _OperationNode =
 		{
 			Fragments._OperationNode__OclAny /* 0 */,
 			Fragments._OperationNode__OclElement /* 1 */,
 			Fragments._OperationNode__ConnectionEnd /* 2 */,
-			Fragments._OperationNode__GraphNode /* 2 */,
 			Fragments._OperationNode__Nameable /* 2 */,
 			Fragments._OperationNode__Visitable /* 2 */,
 			Fragments._OperationNode__Element /* 3 */,
 			Fragments._OperationNode__Node /* 4 */,
 			Fragments._OperationNode__OperationNode /* 5 */
 		};
-		private static final int @NonNull [] __OperationNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __OperationNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _OperationRegion =
 		{
 			Fragments._OperationRegion__OclAny /* 0 */,
 			Fragments._OperationRegion__OclElement /* 1 */,
-			Fragments._OperationRegion__GraphNode /* 2 */,
 			Fragments._OperationRegion__Nameable /* 2 */,
 			Fragments._OperationRegion__Symbolable /* 2 */,
-			Fragments._OperationRegion__ToDOTable /* 2 */,
 			Fragments._OperationRegion__Visitable /* 2 */,
 			Fragments._OperationRegion__Element /* 3 */,
 			Fragments._OperationRegion__Region /* 4 */,
 			Fragments._OperationRegion__OperationRegion /* 5 */
 		};
-		private static final int @NonNull [] __OperationRegion = { 1,1,5,1,1,1 };
+		private static final int @NonNull [] __OperationRegion = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _PatternTypedNode =
 		{
 			Fragments._PatternTypedNode__OclAny /* 0 */,
 			Fragments._PatternTypedNode__OclElement /* 1 */,
 			Fragments._PatternTypedNode__ConnectionEnd /* 2 */,
-			Fragments._PatternTypedNode__GraphNode /* 2 */,
 			Fragments._PatternTypedNode__Nameable /* 2 */,
 			Fragments._PatternTypedNode__Visitable /* 2 */,
 			Fragments._PatternTypedNode__Element /* 3 */,
 			Fragments._PatternTypedNode__Node /* 4 */,
 			Fragments._PatternTypedNode__PatternTypedNode /* 5 */
 		};
-		private static final int @NonNull [] __PatternTypedNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __PatternTypedNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _PatternVariableNode =
 		{
 			Fragments._PatternVariableNode__OclAny /* 0 */,
 			Fragments._PatternVariableNode__OclElement /* 1 */,
 			Fragments._PatternVariableNode__ConnectionEnd /* 2 */,
-			Fragments._PatternVariableNode__GraphNode /* 2 */,
 			Fragments._PatternVariableNode__Nameable /* 2 */,
 			Fragments._PatternVariableNode__Visitable /* 2 */,
 			Fragments._PatternVariableNode__Element /* 3 */,
@@ -1336,20 +1222,19 @@
 			Fragments._PatternVariableNode__VariableNode /* 5 */,
 			Fragments._PatternVariableNode__PatternVariableNode /* 6 */
 		};
-		private static final int @NonNull [] __PatternVariableNode = { 1,1,4,1,1,1,1 };
+		private static final int @NonNull [] __PatternVariableNode = { 1,1,3,1,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _PredicateEdge =
 		{
 			Fragments._PredicateEdge__OclAny /* 0 */,
 			Fragments._PredicateEdge__OclElement /* 1 */,
-			Fragments._PredicateEdge__GraphEdge /* 2 */,
 			Fragments._PredicateEdge__Nameable /* 2 */,
 			Fragments._PredicateEdge__Visitable /* 2 */,
 			Fragments._PredicateEdge__Element /* 3 */,
 			Fragments._PredicateEdge__Edge /* 4 */,
 			Fragments._PredicateEdge__PredicateEdge /* 5 */
 		};
-		private static final int @NonNull [] __PredicateEdge = { 1,1,3,1,1,1 };
+		private static final int @NonNull [] __PredicateEdge = { 1,1,2,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _PropertyDatum =
 		{
@@ -1366,28 +1251,25 @@
 		{
 			Fragments._RecursionEdge__OclAny /* 0 */,
 			Fragments._RecursionEdge__OclElement /* 1 */,
-			Fragments._RecursionEdge__GraphEdge /* 2 */,
 			Fragments._RecursionEdge__Nameable /* 2 */,
 			Fragments._RecursionEdge__Visitable /* 2 */,
 			Fragments._RecursionEdge__Element /* 3 */,
 			Fragments._RecursionEdge__Edge /* 4 */,
 			Fragments._RecursionEdge__RecursionEdge /* 5 */
 		};
-		private static final int @NonNull [] __RecursionEdge = { 1,1,3,1,1,1 };
+		private static final int @NonNull [] __RecursionEdge = { 1,1,2,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _Region =
 		{
 			Fragments._Region__OclAny /* 0 */,
 			Fragments._Region__OclElement /* 1 */,
-			Fragments._Region__GraphNode /* 2 */,
 			Fragments._Region__Nameable /* 2 */,
 			Fragments._Region__Symbolable /* 2 */,
-			Fragments._Region__ToDOTable /* 2 */,
 			Fragments._Region__Visitable /* 2 */,
 			Fragments._Region__Element /* 3 */,
 			Fragments._Region__Region /* 4 */
 		};
-		private static final int @NonNull [] __Region = { 1,1,5,1,1 };
+		private static final int @NonNull [] __Region = { 1,1,3,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _Role =
 		{
@@ -1417,16 +1299,14 @@
 		{
 			Fragments._ScheduledRegion__OclAny /* 0 */,
 			Fragments._ScheduledRegion__OclElement /* 1 */,
-			Fragments._ScheduledRegion__GraphNode /* 2 */,
 			Fragments._ScheduledRegion__Nameable /* 2 */,
 			Fragments._ScheduledRegion__Symbolable /* 2 */,
-			Fragments._ScheduledRegion__ToDOTable /* 2 */,
 			Fragments._ScheduledRegion__Visitable /* 2 */,
 			Fragments._ScheduledRegion__Element /* 3 */,
 			Fragments._ScheduledRegion__Region /* 4 */,
 			Fragments._ScheduledRegion__ScheduledRegion /* 5 */
 		};
-		private static final int @NonNull [] __ScheduledRegion = { 1,1,5,1,1,1 };
+		private static final int @NonNull [] __ScheduledRegion = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _Symbolable =
 		{
@@ -1436,55 +1316,44 @@
 		};
 		private static final int @NonNull [] __Symbolable = { 1,1,1 };
 
-		private static final @NonNull ExecutorFragment @NonNull [] _ToDOTable =
-		{
-			Fragments._ToDOTable__OclAny /* 0 */,
-			Fragments._ToDOTable__OclElement /* 1 */,
-			Fragments._ToDOTable__ToDOTable /* 2 */
-		};
-		private static final int @NonNull [] __ToDOTable = { 1,1,1 };
-
 		private static final @NonNull ExecutorFragment @NonNull [] _TrueNode =
 		{
 			Fragments._TrueNode__OclAny /* 0 */,
 			Fragments._TrueNode__OclElement /* 1 */,
 			Fragments._TrueNode__ConnectionEnd /* 2 */,
-			Fragments._TrueNode__GraphNode /* 2 */,
 			Fragments._TrueNode__Nameable /* 2 */,
 			Fragments._TrueNode__Visitable /* 2 */,
 			Fragments._TrueNode__Element /* 3 */,
 			Fragments._TrueNode__Node /* 4 */,
 			Fragments._TrueNode__TrueNode /* 5 */
 		};
-		private static final int @NonNull [] __TrueNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __TrueNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _UnknownNode =
 		{
 			Fragments._UnknownNode__OclAny /* 0 */,
 			Fragments._UnknownNode__OclElement /* 1 */,
 			Fragments._UnknownNode__ConnectionEnd /* 2 */,
-			Fragments._UnknownNode__GraphNode /* 2 */,
 			Fragments._UnknownNode__Nameable /* 2 */,
 			Fragments._UnknownNode__Visitable /* 2 */,
 			Fragments._UnknownNode__Element /* 3 */,
 			Fragments._UnknownNode__Node /* 4 */,
 			Fragments._UnknownNode__UnknownNode /* 5 */
 		};
-		private static final int @NonNull [] __UnknownNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __UnknownNode = { 1,1,3,1,1,1 };
 
 		private static final @NonNull ExecutorFragment @NonNull [] _VariableNode =
 		{
 			Fragments._VariableNode__OclAny /* 0 */,
 			Fragments._VariableNode__OclElement /* 1 */,
 			Fragments._VariableNode__ConnectionEnd /* 2 */,
-			Fragments._VariableNode__GraphNode /* 2 */,
 			Fragments._VariableNode__Nameable /* 2 */,
 			Fragments._VariableNode__Visitable /* 2 */,
 			Fragments._VariableNode__Element /* 3 */,
 			Fragments._VariableNode__Node /* 4 */,
 			Fragments._VariableNode__VariableNode /* 5 */
 		};
-		private static final int @NonNull [] __VariableNode = { 1,1,4,1,1,1 };
+		private static final int @NonNull [] __VariableNode = { 1,1,3,1,1,1 };
 
 		/**
 		 *	Install the fragment descriptors in the class descriptors.
@@ -1505,8 +1374,6 @@
 			Types._EdgeConnection.initFragments(_EdgeConnection, __EdgeConnection);
 			Types._ErrorNode.initFragments(_ErrorNode, __ErrorNode);
 			Types._ExpressionEdge.initFragments(_ExpressionEdge, __ExpressionEdge);
-			Types._GraphEdge.initFragments(_GraphEdge, __GraphEdge);
-			Types._GraphNode.initFragments(_GraphNode, __GraphNode);
 			Types._InputNode.initFragments(_InputNode, __InputNode);
 			Types._IteratedEdge.initFragments(_IteratedEdge, __IteratedEdge);
 			Types._IteratorNode.initFragments(_IteratorNode, __IteratorNode);
@@ -1532,7 +1399,6 @@
 			Types._ScheduleModel.initFragments(_ScheduleModel, __ScheduleModel);
 			Types._ScheduledRegion.initFragments(_ScheduledRegion, __ScheduledRegion);
 			Types._Symbolable.initFragments(_Symbolable, __Symbolable);
-			Types._ToDOTable.initFragments(_ToDOTable, __ToDOTable);
 			Types._TrueNode.initFragments(_TrueNode, __TrueNode);
 			Types._UnknownNode.initFragments(_UnknownNode, __UnknownNode);
 			Types._VariableNode.initFragments(_VariableNode, __VariableNode);
@@ -1593,7 +1459,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__MappingRegion = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__OclAny = {
@@ -1624,7 +1489,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _BasicMappingRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _CastEdge__CastEdge = {};
@@ -1634,7 +1498,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _CastEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _CastEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _CastEdge__NavigableEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _CastEdge__OclAny = {
@@ -1705,7 +1568,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _ComposedNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ComposedNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ComposedNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ComposedNode__OclAny = {
@@ -1839,8 +1701,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _DatumConnection__GraphEdge = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _DatumConnection__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _DatumConnection__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _DatumConnection__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -1877,7 +1737,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _DependencyNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _DependencyNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _DependencyNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _DependencyNode__OclAny = {
@@ -1941,7 +1800,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _Edge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Edge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Edge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -1978,8 +1836,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _EdgeConnection__GraphEdge = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _EdgeConnection__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _EdgeConnection__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _EdgeConnection__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2016,7 +1872,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _ErrorNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ErrorNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ErrorNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ErrorNode__OclAny = {
@@ -2053,7 +1908,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _ExpressionEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ExpressionEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ExpressionEdge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2083,69 +1937,12 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _ExpressionEdge__Visitable = {};
 
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphEdge__GraphEdge = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphEdge__OclAny = {
-			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
-			OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
-			OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
-			OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
-			OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
-			OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
-			OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
-			OCLstdlibTables.Operations._OclAny__toString /* toString() */
-		};
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphEdge__OclElement = {
-			OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
-			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
-			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
-			OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
-			OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
-		};
-
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphNode__GraphNode = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphNode__OclAny = {
-			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
-			OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
-			OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
-			OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
-			OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
-			OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
-			OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
-			OCLstdlibTables.Operations._OclAny__toString /* toString() */
-		};
-		private static final @NonNull ExecutorOperation @NonNull [] _GraphNode__OclElement = {
-			OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
-			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
-			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
-			OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
-			OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
-		};
-
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__InputNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__ConnectionEnd = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__Element = {
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _InputNode__OclAny = {
@@ -2182,7 +1979,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _IteratedEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _IteratedEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _IteratedEdge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2218,7 +2014,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _IteratorNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _IteratorNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _IteratorNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _IteratorNode__OclAny = {
@@ -2255,7 +2050,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2285,7 +2079,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _LoadingRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingAction__MappingAction = {};
@@ -2326,7 +2119,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2356,7 +2148,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MappingRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__MicroMappingRegion = {};
@@ -2364,7 +2155,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__MappingRegion = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__OclAny = {
@@ -2395,7 +2185,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _MicroMappingRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__NamedMappingRegion = {};
@@ -2403,7 +2192,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__MappingRegion = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__OclAny = {
@@ -2434,7 +2222,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NamedMappingRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigableEdge__NavigableEdge = {};
@@ -2444,7 +2231,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _NavigableEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigableEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigableEdge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2481,7 +2267,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _NavigationEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigationEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigationEdge__NavigableEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NavigationEdge__OclAny = {
@@ -2518,7 +2303,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _Node__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Node__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Node__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2555,8 +2339,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _NodeConnection__GraphEdge = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _NodeConnection__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NodeConnection__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NodeConnection__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2593,7 +2375,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _NullNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NullNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NullNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _NullNode__OclAny = {
@@ -2630,7 +2411,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _OperationNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationNode__OclAny = {
@@ -2666,7 +2446,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2696,7 +2475,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _OperationRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternTypedNode__PatternTypedNode = {};
@@ -2705,7 +2483,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _PatternTypedNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternTypedNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternTypedNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternTypedNode__OclAny = {
@@ -2742,7 +2519,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _PatternVariableNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternVariableNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternVariableNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PatternVariableNode__OclAny = {
@@ -2780,7 +2556,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _PredicateEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PredicateEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _PredicateEdge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2850,7 +2625,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _RecursionEdge__GraphEdge = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _RecursionEdge__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _RecursionEdge__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2885,7 +2659,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _Region__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Region__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Region__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -2914,7 +2687,6 @@
 			OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _Region__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _Region__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _Region__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _Role__Role = {};
@@ -2993,7 +2765,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__OclAny = {
 			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -3023,7 +2794,6 @@
 		};
 		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__Region = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__Symbolable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__ToDOTable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _ScheduledRegion__Visitable = {};
 
 		private static final @NonNull ExecutorOperation @NonNull [] _Symbolable__Symbolable = {};
@@ -3054,41 +2824,12 @@
 			OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
 		};
 
-		private static final @NonNull ExecutorOperation @NonNull [] _ToDOTable__ToDOTable = {};
-		private static final @NonNull ExecutorOperation @NonNull [] _ToDOTable__OclAny = {
-			OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
-			OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
-			OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
-			OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
-			OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
-			OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
-			OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
-			OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
-			OCLstdlibTables.Operations._OclAny__toString /* toString() */
-		};
-		private static final @NonNull ExecutorOperation @NonNull [] _ToDOTable__OclElement = {
-			OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
-			OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
-			OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
-			OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
-			OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
-			OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
-		};
-
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__TrueNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__ConnectionEnd = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__Element = {
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _TrueNode__OclAny = {
@@ -3125,7 +2866,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _UnknownNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _UnknownNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _UnknownNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _UnknownNode__OclAny = {
@@ -3162,7 +2902,6 @@
 			PivotTables.Operations._Element__allOwnedElements /* allOwnedElements() */,
 			PivotTables.Operations._Element__getValue /* getValue(Type[1],String[1]) */
 		};
-		private static final @NonNull ExecutorOperation @NonNull [] _VariableNode__GraphNode = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _VariableNode__Nameable = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _VariableNode__Node = {};
 		private static final @NonNull ExecutorOperation @NonNull [] _VariableNode__OclAny = {
@@ -3205,21 +2944,18 @@
 
 			Fragments._BasicMappingRegion__BasicMappingRegion.initOperations(_BasicMappingRegion__BasicMappingRegion);
 			Fragments._BasicMappingRegion__Element.initOperations(_BasicMappingRegion__Element);
-			Fragments._BasicMappingRegion__GraphNode.initOperations(_BasicMappingRegion__GraphNode);
 			Fragments._BasicMappingRegion__MappingRegion.initOperations(_BasicMappingRegion__MappingRegion);
 			Fragments._BasicMappingRegion__Nameable.initOperations(_BasicMappingRegion__Nameable);
 			Fragments._BasicMappingRegion__OclAny.initOperations(_BasicMappingRegion__OclAny);
 			Fragments._BasicMappingRegion__OclElement.initOperations(_BasicMappingRegion__OclElement);
 			Fragments._BasicMappingRegion__Region.initOperations(_BasicMappingRegion__Region);
 			Fragments._BasicMappingRegion__Symbolable.initOperations(_BasicMappingRegion__Symbolable);
-			Fragments._BasicMappingRegion__ToDOTable.initOperations(_BasicMappingRegion__ToDOTable);
 			Fragments._BasicMappingRegion__Visitable.initOperations(_BasicMappingRegion__Visitable);
 
 			Fragments._CastEdge__CastEdge.initOperations(_CastEdge__CastEdge);
 			Fragments._CastEdge__ConnectionEnd.initOperations(_CastEdge__ConnectionEnd);
 			Fragments._CastEdge__Edge.initOperations(_CastEdge__Edge);
 			Fragments._CastEdge__Element.initOperations(_CastEdge__Element);
-			Fragments._CastEdge__GraphEdge.initOperations(_CastEdge__GraphEdge);
 			Fragments._CastEdge__Nameable.initOperations(_CastEdge__Nameable);
 			Fragments._CastEdge__NavigableEdge.initOperations(_CastEdge__NavigableEdge);
 			Fragments._CastEdge__OclAny.initOperations(_CastEdge__OclAny);
@@ -3236,7 +2972,6 @@
 			Fragments._ComposedNode__ComposedNode.initOperations(_ComposedNode__ComposedNode);
 			Fragments._ComposedNode__ConnectionEnd.initOperations(_ComposedNode__ConnectionEnd);
 			Fragments._ComposedNode__Element.initOperations(_ComposedNode__Element);
-			Fragments._ComposedNode__GraphNode.initOperations(_ComposedNode__GraphNode);
 			Fragments._ComposedNode__Nameable.initOperations(_ComposedNode__Nameable);
 			Fragments._ComposedNode__Node.initOperations(_ComposedNode__Node);
 			Fragments._ComposedNode__OclAny.initOperations(_ComposedNode__OclAny);
@@ -3264,8 +2999,6 @@
 			Fragments._DatumConnection__Connection.initOperations(_DatumConnection__Connection);
 			Fragments._DatumConnection__DatumConnection.initOperations(_DatumConnection__DatumConnection);
 			Fragments._DatumConnection__Element.initOperations(_DatumConnection__Element);
-			Fragments._DatumConnection__GraphEdge.initOperations(_DatumConnection__GraphEdge);
-			Fragments._DatumConnection__GraphNode.initOperations(_DatumConnection__GraphNode);
 			Fragments._DatumConnection__Nameable.initOperations(_DatumConnection__Nameable);
 			Fragments._DatumConnection__OclAny.initOperations(_DatumConnection__OclAny);
 			Fragments._DatumConnection__OclElement.initOperations(_DatumConnection__OclElement);
@@ -3275,7 +3008,6 @@
 			Fragments._DependencyNode__ConnectionEnd.initOperations(_DependencyNode__ConnectionEnd);
 			Fragments._DependencyNode__DependencyNode.initOperations(_DependencyNode__DependencyNode);
 			Fragments._DependencyNode__Element.initOperations(_DependencyNode__Element);
-			Fragments._DependencyNode__GraphNode.initOperations(_DependencyNode__GraphNode);
 			Fragments._DependencyNode__Nameable.initOperations(_DependencyNode__Nameable);
 			Fragments._DependencyNode__Node.initOperations(_DependencyNode__Node);
 			Fragments._DependencyNode__OclAny.initOperations(_DependencyNode__OclAny);
@@ -3288,7 +3020,6 @@
 
 			Fragments._Edge__Edge.initOperations(_Edge__Edge);
 			Fragments._Edge__Element.initOperations(_Edge__Element);
-			Fragments._Edge__GraphEdge.initOperations(_Edge__GraphEdge);
 			Fragments._Edge__Nameable.initOperations(_Edge__Nameable);
 			Fragments._Edge__OclAny.initOperations(_Edge__OclAny);
 			Fragments._Edge__OclElement.initOperations(_Edge__OclElement);
@@ -3298,8 +3029,6 @@
 			Fragments._EdgeConnection__DatumConnection.initOperations(_EdgeConnection__DatumConnection);
 			Fragments._EdgeConnection__EdgeConnection.initOperations(_EdgeConnection__EdgeConnection);
 			Fragments._EdgeConnection__Element.initOperations(_EdgeConnection__Element);
-			Fragments._EdgeConnection__GraphEdge.initOperations(_EdgeConnection__GraphEdge);
-			Fragments._EdgeConnection__GraphNode.initOperations(_EdgeConnection__GraphNode);
 			Fragments._EdgeConnection__Nameable.initOperations(_EdgeConnection__Nameable);
 			Fragments._EdgeConnection__OclAny.initOperations(_EdgeConnection__OclAny);
 			Fragments._EdgeConnection__OclElement.initOperations(_EdgeConnection__OclElement);
@@ -3309,7 +3038,6 @@
 			Fragments._ErrorNode__ConnectionEnd.initOperations(_ErrorNode__ConnectionEnd);
 			Fragments._ErrorNode__Element.initOperations(_ErrorNode__Element);
 			Fragments._ErrorNode__ErrorNode.initOperations(_ErrorNode__ErrorNode);
-			Fragments._ErrorNode__GraphNode.initOperations(_ErrorNode__GraphNode);
 			Fragments._ErrorNode__Nameable.initOperations(_ErrorNode__Nameable);
 			Fragments._ErrorNode__Node.initOperations(_ErrorNode__Node);
 			Fragments._ErrorNode__OclAny.initOperations(_ErrorNode__OclAny);
@@ -3319,23 +3047,13 @@
 			Fragments._ExpressionEdge__Edge.initOperations(_ExpressionEdge__Edge);
 			Fragments._ExpressionEdge__Element.initOperations(_ExpressionEdge__Element);
 			Fragments._ExpressionEdge__ExpressionEdge.initOperations(_ExpressionEdge__ExpressionEdge);
-			Fragments._ExpressionEdge__GraphEdge.initOperations(_ExpressionEdge__GraphEdge);
 			Fragments._ExpressionEdge__Nameable.initOperations(_ExpressionEdge__Nameable);
 			Fragments._ExpressionEdge__OclAny.initOperations(_ExpressionEdge__OclAny);
 			Fragments._ExpressionEdge__OclElement.initOperations(_ExpressionEdge__OclElement);
 			Fragments._ExpressionEdge__Visitable.initOperations(_ExpressionEdge__Visitable);
 
-			Fragments._GraphEdge__GraphEdge.initOperations(_GraphEdge__GraphEdge);
-			Fragments._GraphEdge__OclAny.initOperations(_GraphEdge__OclAny);
-			Fragments._GraphEdge__OclElement.initOperations(_GraphEdge__OclElement);
-
-			Fragments._GraphNode__GraphNode.initOperations(_GraphNode__GraphNode);
-			Fragments._GraphNode__OclAny.initOperations(_GraphNode__OclAny);
-			Fragments._GraphNode__OclElement.initOperations(_GraphNode__OclElement);
-
 			Fragments._InputNode__ConnectionEnd.initOperations(_InputNode__ConnectionEnd);
 			Fragments._InputNode__Element.initOperations(_InputNode__Element);
-			Fragments._InputNode__GraphNode.initOperations(_InputNode__GraphNode);
 			Fragments._InputNode__InputNode.initOperations(_InputNode__InputNode);
 			Fragments._InputNode__Nameable.initOperations(_InputNode__Nameable);
 			Fragments._InputNode__Node.initOperations(_InputNode__Node);
@@ -3345,7 +3063,6 @@
 
 			Fragments._IteratedEdge__Edge.initOperations(_IteratedEdge__Edge);
 			Fragments._IteratedEdge__Element.initOperations(_IteratedEdge__Element);
-			Fragments._IteratedEdge__GraphEdge.initOperations(_IteratedEdge__GraphEdge);
 			Fragments._IteratedEdge__IteratedEdge.initOperations(_IteratedEdge__IteratedEdge);
 			Fragments._IteratedEdge__Nameable.initOperations(_IteratedEdge__Nameable);
 			Fragments._IteratedEdge__OclAny.initOperations(_IteratedEdge__OclAny);
@@ -3354,7 +3071,6 @@
 
 			Fragments._IteratorNode__ConnectionEnd.initOperations(_IteratorNode__ConnectionEnd);
 			Fragments._IteratorNode__Element.initOperations(_IteratorNode__Element);
-			Fragments._IteratorNode__GraphNode.initOperations(_IteratorNode__GraphNode);
 			Fragments._IteratorNode__IteratorNode.initOperations(_IteratorNode__IteratorNode);
 			Fragments._IteratorNode__Nameable.initOperations(_IteratorNode__Nameable);
 			Fragments._IteratorNode__Node.initOperations(_IteratorNode__Node);
@@ -3364,14 +3080,12 @@
 			Fragments._IteratorNode__Visitable.initOperations(_IteratorNode__Visitable);
 
 			Fragments._LoadingRegion__Element.initOperations(_LoadingRegion__Element);
-			Fragments._LoadingRegion__GraphNode.initOperations(_LoadingRegion__GraphNode);
 			Fragments._LoadingRegion__LoadingRegion.initOperations(_LoadingRegion__LoadingRegion);
 			Fragments._LoadingRegion__Nameable.initOperations(_LoadingRegion__Nameable);
 			Fragments._LoadingRegion__OclAny.initOperations(_LoadingRegion__OclAny);
 			Fragments._LoadingRegion__OclElement.initOperations(_LoadingRegion__OclElement);
 			Fragments._LoadingRegion__Region.initOperations(_LoadingRegion__Region);
 			Fragments._LoadingRegion__Symbolable.initOperations(_LoadingRegion__Symbolable);
-			Fragments._LoadingRegion__ToDOTable.initOperations(_LoadingRegion__ToDOTable);
 			Fragments._LoadingRegion__Visitable.initOperations(_LoadingRegion__Visitable);
 
 			Fragments._MappingAction__Element.initOperations(_MappingAction__Element);
@@ -3381,18 +3095,15 @@
 			Fragments._MappingAction__Visitable.initOperations(_MappingAction__Visitable);
 
 			Fragments._MappingRegion__Element.initOperations(_MappingRegion__Element);
-			Fragments._MappingRegion__GraphNode.initOperations(_MappingRegion__GraphNode);
 			Fragments._MappingRegion__MappingRegion.initOperations(_MappingRegion__MappingRegion);
 			Fragments._MappingRegion__Nameable.initOperations(_MappingRegion__Nameable);
 			Fragments._MappingRegion__OclAny.initOperations(_MappingRegion__OclAny);
 			Fragments._MappingRegion__OclElement.initOperations(_MappingRegion__OclElement);
 			Fragments._MappingRegion__Region.initOperations(_MappingRegion__Region);
 			Fragments._MappingRegion__Symbolable.initOperations(_MappingRegion__Symbolable);
-			Fragments._MappingRegion__ToDOTable.initOperations(_MappingRegion__ToDOTable);
 			Fragments._MappingRegion__Visitable.initOperations(_MappingRegion__Visitable);
 
 			Fragments._MicroMappingRegion__Element.initOperations(_MicroMappingRegion__Element);
-			Fragments._MicroMappingRegion__GraphNode.initOperations(_MicroMappingRegion__GraphNode);
 			Fragments._MicroMappingRegion__MappingRegion.initOperations(_MicroMappingRegion__MappingRegion);
 			Fragments._MicroMappingRegion__MicroMappingRegion.initOperations(_MicroMappingRegion__MicroMappingRegion);
 			Fragments._MicroMappingRegion__Nameable.initOperations(_MicroMappingRegion__Nameable);
@@ -3400,11 +3111,9 @@
 			Fragments._MicroMappingRegion__OclElement.initOperations(_MicroMappingRegion__OclElement);
 			Fragments._MicroMappingRegion__Region.initOperations(_MicroMappingRegion__Region);
 			Fragments._MicroMappingRegion__Symbolable.initOperations(_MicroMappingRegion__Symbolable);
-			Fragments._MicroMappingRegion__ToDOTable.initOperations(_MicroMappingRegion__ToDOTable);
 			Fragments._MicroMappingRegion__Visitable.initOperations(_MicroMappingRegion__Visitable);
 
 			Fragments._NamedMappingRegion__Element.initOperations(_NamedMappingRegion__Element);
-			Fragments._NamedMappingRegion__GraphNode.initOperations(_NamedMappingRegion__GraphNode);
 			Fragments._NamedMappingRegion__MappingRegion.initOperations(_NamedMappingRegion__MappingRegion);
 			Fragments._NamedMappingRegion__Nameable.initOperations(_NamedMappingRegion__Nameable);
 			Fragments._NamedMappingRegion__NamedMappingRegion.initOperations(_NamedMappingRegion__NamedMappingRegion);
@@ -3412,13 +3121,11 @@
 			Fragments._NamedMappingRegion__OclElement.initOperations(_NamedMappingRegion__OclElement);
 			Fragments._NamedMappingRegion__Region.initOperations(_NamedMappingRegion__Region);
 			Fragments._NamedMappingRegion__Symbolable.initOperations(_NamedMappingRegion__Symbolable);
-			Fragments._NamedMappingRegion__ToDOTable.initOperations(_NamedMappingRegion__ToDOTable);
 			Fragments._NamedMappingRegion__Visitable.initOperations(_NamedMappingRegion__Visitable);
 
 			Fragments._NavigableEdge__ConnectionEnd.initOperations(_NavigableEdge__ConnectionEnd);
 			Fragments._NavigableEdge__Edge.initOperations(_NavigableEdge__Edge);
 			Fragments._NavigableEdge__Element.initOperations(_NavigableEdge__Element);
-			Fragments._NavigableEdge__GraphEdge.initOperations(_NavigableEdge__GraphEdge);
 			Fragments._NavigableEdge__Nameable.initOperations(_NavigableEdge__Nameable);
 			Fragments._NavigableEdge__NavigableEdge.initOperations(_NavigableEdge__NavigableEdge);
 			Fragments._NavigableEdge__OclAny.initOperations(_NavigableEdge__OclAny);
@@ -3428,7 +3135,6 @@
 			Fragments._NavigationEdge__ConnectionEnd.initOperations(_NavigationEdge__ConnectionEnd);
 			Fragments._NavigationEdge__Edge.initOperations(_NavigationEdge__Edge);
 			Fragments._NavigationEdge__Element.initOperations(_NavigationEdge__Element);
-			Fragments._NavigationEdge__GraphEdge.initOperations(_NavigationEdge__GraphEdge);
 			Fragments._NavigationEdge__Nameable.initOperations(_NavigationEdge__Nameable);
 			Fragments._NavigationEdge__NavigableEdge.initOperations(_NavigationEdge__NavigableEdge);
 			Fragments._NavigationEdge__NavigationEdge.initOperations(_NavigationEdge__NavigationEdge);
@@ -3438,7 +3144,6 @@
 
 			Fragments._Node__ConnectionEnd.initOperations(_Node__ConnectionEnd);
 			Fragments._Node__Element.initOperations(_Node__Element);
-			Fragments._Node__GraphNode.initOperations(_Node__GraphNode);
 			Fragments._Node__Nameable.initOperations(_Node__Nameable);
 			Fragments._Node__Node.initOperations(_Node__Node);
 			Fragments._Node__OclAny.initOperations(_Node__OclAny);
@@ -3448,8 +3153,6 @@
 			Fragments._NodeConnection__Connection.initOperations(_NodeConnection__Connection);
 			Fragments._NodeConnection__DatumConnection.initOperations(_NodeConnection__DatumConnection);
 			Fragments._NodeConnection__Element.initOperations(_NodeConnection__Element);
-			Fragments._NodeConnection__GraphEdge.initOperations(_NodeConnection__GraphEdge);
-			Fragments._NodeConnection__GraphNode.initOperations(_NodeConnection__GraphNode);
 			Fragments._NodeConnection__Nameable.initOperations(_NodeConnection__Nameable);
 			Fragments._NodeConnection__NodeConnection.initOperations(_NodeConnection__NodeConnection);
 			Fragments._NodeConnection__OclAny.initOperations(_NodeConnection__OclAny);
@@ -3459,7 +3162,6 @@
 
 			Fragments._NullNode__ConnectionEnd.initOperations(_NullNode__ConnectionEnd);
 			Fragments._NullNode__Element.initOperations(_NullNode__Element);
-			Fragments._NullNode__GraphNode.initOperations(_NullNode__GraphNode);
 			Fragments._NullNode__Nameable.initOperations(_NullNode__Nameable);
 			Fragments._NullNode__Node.initOperations(_NullNode__Node);
 			Fragments._NullNode__NullNode.initOperations(_NullNode__NullNode);
@@ -3469,7 +3171,6 @@
 
 			Fragments._OperationNode__ConnectionEnd.initOperations(_OperationNode__ConnectionEnd);
 			Fragments._OperationNode__Element.initOperations(_OperationNode__Element);
-			Fragments._OperationNode__GraphNode.initOperations(_OperationNode__GraphNode);
 			Fragments._OperationNode__Nameable.initOperations(_OperationNode__Nameable);
 			Fragments._OperationNode__Node.initOperations(_OperationNode__Node);
 			Fragments._OperationNode__OclAny.initOperations(_OperationNode__OclAny);
@@ -3478,19 +3179,16 @@
 			Fragments._OperationNode__Visitable.initOperations(_OperationNode__Visitable);
 
 			Fragments._OperationRegion__Element.initOperations(_OperationRegion__Element);
-			Fragments._OperationRegion__GraphNode.initOperations(_OperationRegion__GraphNode);
 			Fragments._OperationRegion__Nameable.initOperations(_OperationRegion__Nameable);
 			Fragments._OperationRegion__OclAny.initOperations(_OperationRegion__OclAny);
 			Fragments._OperationRegion__OclElement.initOperations(_OperationRegion__OclElement);
 			Fragments._OperationRegion__OperationRegion.initOperations(_OperationRegion__OperationRegion);
 			Fragments._OperationRegion__Region.initOperations(_OperationRegion__Region);
 			Fragments._OperationRegion__Symbolable.initOperations(_OperationRegion__Symbolable);
-			Fragments._OperationRegion__ToDOTable.initOperations(_OperationRegion__ToDOTable);
 			Fragments._OperationRegion__Visitable.initOperations(_OperationRegion__Visitable);
 
 			Fragments._PatternTypedNode__ConnectionEnd.initOperations(_PatternTypedNode__ConnectionEnd);
 			Fragments._PatternTypedNode__Element.initOperations(_PatternTypedNode__Element);
-			Fragments._PatternTypedNode__GraphNode.initOperations(_PatternTypedNode__GraphNode);
 			Fragments._PatternTypedNode__Nameable.initOperations(_PatternTypedNode__Nameable);
 			Fragments._PatternTypedNode__Node.initOperations(_PatternTypedNode__Node);
 			Fragments._PatternTypedNode__OclAny.initOperations(_PatternTypedNode__OclAny);
@@ -3500,7 +3198,6 @@
 
 			Fragments._PatternVariableNode__ConnectionEnd.initOperations(_PatternVariableNode__ConnectionEnd);
 			Fragments._PatternVariableNode__Element.initOperations(_PatternVariableNode__Element);
-			Fragments._PatternVariableNode__GraphNode.initOperations(_PatternVariableNode__GraphNode);
 			Fragments._PatternVariableNode__Nameable.initOperations(_PatternVariableNode__Nameable);
 			Fragments._PatternVariableNode__Node.initOperations(_PatternVariableNode__Node);
 			Fragments._PatternVariableNode__OclAny.initOperations(_PatternVariableNode__OclAny);
@@ -3511,7 +3208,6 @@
 
 			Fragments._PredicateEdge__Edge.initOperations(_PredicateEdge__Edge);
 			Fragments._PredicateEdge__Element.initOperations(_PredicateEdge__Element);
-			Fragments._PredicateEdge__GraphEdge.initOperations(_PredicateEdge__GraphEdge);
 			Fragments._PredicateEdge__Nameable.initOperations(_PredicateEdge__Nameable);
 			Fragments._PredicateEdge__OclAny.initOperations(_PredicateEdge__OclAny);
 			Fragments._PredicateEdge__OclElement.initOperations(_PredicateEdge__OclElement);
@@ -3527,7 +3223,6 @@
 
 			Fragments._RecursionEdge__Edge.initOperations(_RecursionEdge__Edge);
 			Fragments._RecursionEdge__Element.initOperations(_RecursionEdge__Element);
-			Fragments._RecursionEdge__GraphEdge.initOperations(_RecursionEdge__GraphEdge);
 			Fragments._RecursionEdge__Nameable.initOperations(_RecursionEdge__Nameable);
 			Fragments._RecursionEdge__OclAny.initOperations(_RecursionEdge__OclAny);
 			Fragments._RecursionEdge__OclElement.initOperations(_RecursionEdge__OclElement);
@@ -3535,13 +3230,11 @@
 			Fragments._RecursionEdge__Visitable.initOperations(_RecursionEdge__Visitable);
 
 			Fragments._Region__Element.initOperations(_Region__Element);
-			Fragments._Region__GraphNode.initOperations(_Region__GraphNode);
 			Fragments._Region__Nameable.initOperations(_Region__Nameable);
 			Fragments._Region__OclAny.initOperations(_Region__OclAny);
 			Fragments._Region__OclElement.initOperations(_Region__OclElement);
 			Fragments._Region__Region.initOperations(_Region__Region);
 			Fragments._Region__Symbolable.initOperations(_Region__Symbolable);
-			Fragments._Region__ToDOTable.initOperations(_Region__ToDOTable);
 			Fragments._Region__Visitable.initOperations(_Region__Visitable);
 
 			Fragments._Role__OclAny.initOperations(_Role__OclAny);
@@ -3561,27 +3254,20 @@
 			Fragments._ScheduleModel__Visitable.initOperations(_ScheduleModel__Visitable);
 
 			Fragments._ScheduledRegion__Element.initOperations(_ScheduledRegion__Element);
-			Fragments._ScheduledRegion__GraphNode.initOperations(_ScheduledRegion__GraphNode);
 			Fragments._ScheduledRegion__Nameable.initOperations(_ScheduledRegion__Nameable);
 			Fragments._ScheduledRegion__OclAny.initOperations(_ScheduledRegion__OclAny);
 			Fragments._ScheduledRegion__OclElement.initOperations(_ScheduledRegion__OclElement);
 			Fragments._ScheduledRegion__Region.initOperations(_ScheduledRegion__Region);
 			Fragments._ScheduledRegion__ScheduledRegion.initOperations(_ScheduledRegion__ScheduledRegion);
 			Fragments._ScheduledRegion__Symbolable.initOperations(_ScheduledRegion__Symbolable);
-			Fragments._ScheduledRegion__ToDOTable.initOperations(_ScheduledRegion__ToDOTable);
 			Fragments._ScheduledRegion__Visitable.initOperations(_ScheduledRegion__Visitable);
 
 			Fragments._Symbolable__OclAny.initOperations(_Symbolable__OclAny);
 			Fragments._Symbolable__OclElement.initOperations(_Symbolable__OclElement);
 			Fragments._Symbolable__Symbolable.initOperations(_Symbolable__Symbolable);
 
-			Fragments._ToDOTable__OclAny.initOperations(_ToDOTable__OclAny);
-			Fragments._ToDOTable__OclElement.initOperations(_ToDOTable__OclElement);
-			Fragments._ToDOTable__ToDOTable.initOperations(_ToDOTable__ToDOTable);
-
 			Fragments._TrueNode__ConnectionEnd.initOperations(_TrueNode__ConnectionEnd);
 			Fragments._TrueNode__Element.initOperations(_TrueNode__Element);
-			Fragments._TrueNode__GraphNode.initOperations(_TrueNode__GraphNode);
 			Fragments._TrueNode__Nameable.initOperations(_TrueNode__Nameable);
 			Fragments._TrueNode__Node.initOperations(_TrueNode__Node);
 			Fragments._TrueNode__OclAny.initOperations(_TrueNode__OclAny);
@@ -3591,7 +3277,6 @@
 
 			Fragments._UnknownNode__ConnectionEnd.initOperations(_UnknownNode__ConnectionEnd);
 			Fragments._UnknownNode__Element.initOperations(_UnknownNode__Element);
-			Fragments._UnknownNode__GraphNode.initOperations(_UnknownNode__GraphNode);
 			Fragments._UnknownNode__Nameable.initOperations(_UnknownNode__Nameable);
 			Fragments._UnknownNode__Node.initOperations(_UnknownNode__Node);
 			Fragments._UnknownNode__OclAny.initOperations(_UnknownNode__OclAny);
@@ -3601,7 +3286,6 @@
 
 			Fragments._VariableNode__ConnectionEnd.initOperations(_VariableNode__ConnectionEnd);
 			Fragments._VariableNode__Element.initOperations(_VariableNode__Element);
-			Fragments._VariableNode__GraphNode.initOperations(_VariableNode__GraphNode);
 			Fragments._VariableNode__Nameable.initOperations(_VariableNode__Nameable);
 			Fragments._VariableNode__Node.initOperations(_VariableNode__Node);
 			Fragments._VariableNode__OclAny.initOperations(_VariableNode__OclAny);
@@ -3628,18 +3312,17 @@
 		}
 
 		private static final @NonNull ExecutorProperty @NonNull [] _AbstractDatum = {
-			QVTscheduleTables.Properties._AbstractDatum__producedBy,
-			QVTscheduleTables.Properties._AbstractDatum__requiredBy,
-			QVTscheduleTables.Properties._AbstractDatum__typedModel
+			QVTscheduleTables.Properties._AbstractDatum__producedByActions,
+			QVTscheduleTables.Properties._AbstractDatum__referredTypedModel,
+			QVTscheduleTables.Properties._AbstractDatum__requiredByActions
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _BasicMappingRegion = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
-			QVTscheduleTables.Properties._BasicMappingRegion__mapping,
 			QVTscheduleTables.Properties._BasicMappingRegion__name,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
+			QVTscheduleTables.Properties._BasicMappingRegion__referredMapping,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
@@ -3649,9 +3332,9 @@
 			QVTscheduleTables.Properties._Edge__name,
 			QVTscheduleTables.Properties._NavigableEdge__oppositeEdge,
 			QVTscheduleTables.Properties._NavigableEdge__outgoingConnections,
-			QVTscheduleTables.Properties._CastEdge__primaryClass,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._CastEdge__property,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._CastEdge__referredClass,
 			QVTscheduleTables.Properties._NavigableEdge__secondary,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
@@ -3659,13 +3342,13 @@
 
 		private static final @NonNull ExecutorProperty @NonNull [] _ClassDatum = {
 			QVTscheduleTables.Properties._ClassDatum__completeClass,
-			QVTscheduleTables.Properties._ClassDatum__primaryClass,
-			QVTscheduleTables.Properties._AbstractDatum__producedBy,
-			QVTscheduleTables.Properties._ClassDatum__propertyDatums,
-			QVTscheduleTables.Properties._AbstractDatum__requiredBy,
-			QVTscheduleTables.Properties._ClassDatum__scheduleModel,
-			QVTscheduleTables.Properties._ClassDatum__superClassDatums,
-			QVTscheduleTables.Properties._AbstractDatum__typedModel
+			QVTscheduleTables.Properties._ClassDatum__owningPropertyDatums,
+			QVTscheduleTables.Properties._ClassDatum__owningScheduleModel,
+			QVTscheduleTables.Properties._AbstractDatum__producedByActions,
+			QVTscheduleTables.Properties._ClassDatum__referredClass,
+			QVTscheduleTables.Properties._AbstractDatum__referredTypedModel,
+			QVTscheduleTables.Properties._AbstractDatum__requiredByActions,
+			QVTscheduleTables.Properties._ClassDatum__superClassDatums
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _ComposedNode = {
@@ -3676,11 +3359,11 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _Connection = {
-			QVTscheduleTables.Properties._Connection__region,
+			QVTscheduleTables.Properties._Connection__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
@@ -3691,7 +3374,7 @@
 		private static final @NonNull ExecutorProperty @NonNull [] _DatumConnection = {
 			QVTscheduleTables.Properties._DatumConnection__connectionRole,
 			QVTscheduleTables.Properties._DatumConnection__name,
-			QVTscheduleTables.Properties._Connection__region,
+			QVTscheduleTables.Properties._Connection__owningScheduledRegion,
 			QVTscheduleTables.Properties._DatumConnection__sourceEnds,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
@@ -3704,7 +3387,7 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _DomainUsage = {};
@@ -3712,7 +3395,7 @@
 		private static final @NonNull ExecutorProperty @NonNull [] _Edge = {
 			QVTscheduleTables.Properties._Edge__edgeRole,
 			QVTscheduleTables.Properties._Edge__name,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
 		};
@@ -3720,8 +3403,8 @@
 		private static final @NonNull ExecutorProperty @NonNull [] _EdgeConnection = {
 			QVTscheduleTables.Properties._DatumConnection__connectionRole,
 			QVTscheduleTables.Properties._DatumConnection__name,
-			QVTscheduleTables.Properties._EdgeConnection__property,
-			QVTscheduleTables.Properties._Connection__region,
+			QVTscheduleTables.Properties._Connection__owningScheduledRegion,
+			QVTscheduleTables.Properties._EdgeConnection__referredProperty,
 			QVTscheduleTables.Properties._DatumConnection__sourceEnds,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
@@ -3734,21 +3417,17 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _ExpressionEdge = {
 			QVTscheduleTables.Properties._Edge__edgeRole,
 			QVTscheduleTables.Properties._Edge__name,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
 		};
 
-		private static final @NonNull ExecutorProperty @NonNull [] _GraphEdge = {};
-
-		private static final @NonNull ExecutorProperty @NonNull [] _GraphNode = {};
-
 		private static final @NonNull ExecutorProperty @NonNull [] _InputNode = {
 			QVTscheduleTables.Properties._Node__classDatum,
 			QVTscheduleTables.Properties._Node__incomingConnection,
@@ -3757,13 +3436,13 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _IteratedEdge = {
 			QVTscheduleTables.Properties._Edge__edgeRole,
 			QVTscheduleTables.Properties._Edge__name,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
 		};
@@ -3776,50 +3455,46 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region,
-			QVTscheduleTables.Properties._VariableNode__variable
+			QVTscheduleTables.Properties._Node__owningRegion,
+			QVTscheduleTables.Properties._VariableNode__referredVariable
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _LoadingRegion = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _MappingAction = {
-			QVTscheduleTables.Properties._MappingAction__mapping,
-			QVTscheduleTables.Properties._MappingAction__productions,
-			QVTscheduleTables.Properties._MappingAction__requisites,
-			QVTscheduleTables.Properties._MappingAction__scheduleModel
+			QVTscheduleTables.Properties._MappingAction__owningScheduleModel,
+			QVTscheduleTables.Properties._MappingAction__producedDatums,
+			QVTscheduleTables.Properties._MappingAction__referredMapping,
+			QVTscheduleTables.Properties._MappingAction__requiredDatums
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _MappingRegion = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _MicroMappingRegion = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
 			QVTscheduleTables.Properties._MicroMappingRegion__mappingRegion,
 			QVTscheduleTables.Properties._MicroMappingRegion__namePrefix,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName,
 			QVTscheduleTables.Properties._MicroMappingRegion__symbolNameSuffix
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _NamedMappingRegion = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
 			QVTscheduleTables.Properties._NamedMappingRegion__name,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName,
 			QVTscheduleTables.Properties._NamedMappingRegion__symbolNameSuffix
 		};
@@ -3830,7 +3505,7 @@
 			QVTscheduleTables.Properties._Edge__name,
 			QVTscheduleTables.Properties._NavigableEdge__oppositeEdge,
 			QVTscheduleTables.Properties._NavigableEdge__outgoingConnections,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._NavigableEdge__secondary,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
@@ -3842,9 +3517,9 @@
 			QVTscheduleTables.Properties._Edge__name,
 			QVTscheduleTables.Properties._NavigableEdge__oppositeEdge,
 			QVTscheduleTables.Properties._NavigableEdge__outgoingConnections,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._NavigationEdge__partial,
-			QVTscheduleTables.Properties._NavigationEdge__property,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._NavigationEdge__referredProperty,
 			QVTscheduleTables.Properties._NavigableEdge__secondary,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
@@ -3858,14 +3533,14 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _NodeConnection = {
 			QVTscheduleTables.Properties._NodeConnection__classDatum,
 			QVTscheduleTables.Properties._DatumConnection__connectionRole,
 			QVTscheduleTables.Properties._DatumConnection__name,
-			QVTscheduleTables.Properties._Connection__region,
+			QVTscheduleTables.Properties._Connection__owningScheduledRegion,
 			QVTscheduleTables.Properties._DatumConnection__sourceEnds,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
@@ -3879,7 +3554,7 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _OperationNode = {
@@ -3891,18 +3566,17 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _OperationRegion = {
 			QVTscheduleTables.Properties._OperationRegion__dependencyNodes,
-			QVTscheduleTables.Properties._Region__edges,
 			QVTscheduleTables.Properties._OperationRegion__headNodes,
-			QVTscheduleTables.Properties._Region__invokingRegion,
 			QVTscheduleTables.Properties._OperationRegion__name,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._OperationRegion__operation,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
+			QVTscheduleTables.Properties._OperationRegion__referredOperation,
 			QVTscheduleTables.Properties._OperationRegion__resultNode,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
@@ -3916,7 +3590,7 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _PatternVariableNode = {
@@ -3928,64 +3602,62 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region,
-			QVTscheduleTables.Properties._VariableNode__variable
+			QVTscheduleTables.Properties._Node__owningRegion,
+			QVTscheduleTables.Properties._VariableNode__referredVariable
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _PredicateEdge = {
 			QVTscheduleTables.Properties._Edge__edgeRole,
 			QVTscheduleTables.Properties._Edge__name,
-			QVTscheduleTables.Properties._Edge__region,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _PropertyDatum = {
-			QVTscheduleTables.Properties._PropertyDatum__classDatum,
 			QVTscheduleTables.Properties._PropertyDatum__opposite,
-			QVTscheduleTables.Properties._AbstractDatum__producedBy,
-			QVTscheduleTables.Properties._PropertyDatum__property,
-			QVTscheduleTables.Properties._AbstractDatum__requiredBy,
-			QVTscheduleTables.Properties._PropertyDatum__super,
-			QVTscheduleTables.Properties._AbstractDatum__typedModel
+			QVTscheduleTables.Properties._PropertyDatum__owningClassDatum,
+			QVTscheduleTables.Properties._AbstractDatum__producedByActions,
+			QVTscheduleTables.Properties._PropertyDatum__referredProperty,
+			QVTscheduleTables.Properties._AbstractDatum__referredTypedModel,
+			QVTscheduleTables.Properties._AbstractDatum__requiredByActions,
+			QVTscheduleTables.Properties._PropertyDatum__superPropertyDatums
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _RecursionEdge = {
 			QVTscheduleTables.Properties._Edge__edgeRole,
 			QVTscheduleTables.Properties._Edge__name,
+			QVTscheduleTables.Properties._Edge__owningRegion,
 			QVTscheduleTables.Properties._RecursionEdge__primary,
-			QVTscheduleTables.Properties._Edge__region,
 			QVTscheduleTables.Properties._Edge__sourceNode,
 			QVTscheduleTables.Properties._Edge__targetNode
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _Region = {
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _Role = {};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _ScheduleModel = {
-			QVTscheduleTables.Properties._ScheduleModel__classDatums,
 			QVTscheduleTables.Properties._ScheduleModel__loadingRegion,
-			QVTscheduleTables.Properties._ScheduleModel__mappingActions,
-			QVTscheduleTables.Properties._ScheduleModel__otherMappingRegions,
-			QVTscheduleTables.Properties._ScheduleModel__scheduledRegion
+			QVTscheduleTables.Properties._ScheduleModel__ownedClassDatums,
+			QVTscheduleTables.Properties._ScheduleModel__ownedMappingActions,
+			QVTscheduleTables.Properties._ScheduleModel__ownedOtherMappingRegions,
+			QVTscheduleTables.Properties._ScheduleModel__ownedScheduledRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _ScheduledRegion = {
-			QVTscheduleTables.Properties._ScheduledRegion__connections,
-			QVTscheduleTables.Properties._Region__edges,
-			QVTscheduleTables.Properties._Region__invokingRegion,
 			QVTscheduleTables.Properties._ScheduledRegion__name,
-			QVTscheduleTables.Properties._Region__nodes,
-			QVTscheduleTables.Properties._Region__region,
-			QVTscheduleTables.Properties._ScheduledRegion__regions,
-			QVTscheduleTables.Properties._ScheduledRegion__scheduleModel,
+			QVTscheduleTables.Properties._ScheduledRegion__ownedConnections,
+			QVTscheduleTables.Properties._Region__ownedEdges,
+			QVTscheduleTables.Properties._Region__ownedNodes,
+			QVTscheduleTables.Properties._ScheduledRegion__ownedRegions,
+			QVTscheduleTables.Properties._ScheduledRegion__owningScheduleModel,
+			QVTscheduleTables.Properties._Region__owningScheduledRegion,
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
@@ -3993,8 +3665,6 @@
 			QVTscheduleTables.Properties._Symbolable__symbolName
 		};
 
-		private static final @NonNull ExecutorProperty @NonNull [] _ToDOTable = {};
-
 		private static final @NonNull ExecutorProperty @NonNull [] _TrueNode = {
 			QVTscheduleTables.Properties._Node__classDatum,
 			QVTscheduleTables.Properties._Node__incomingConnection,
@@ -4003,7 +3673,7 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _UnknownNode = {
@@ -4014,7 +3684,7 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region
+			QVTscheduleTables.Properties._Node__owningRegion
 		};
 
 		private static final @NonNull ExecutorProperty @NonNull [] _VariableNode = {
@@ -4025,8 +3695,8 @@
 			QVTscheduleTables.Properties._Node__nodeRole,
 			QVTscheduleTables.Properties._Node__outgoingConnections,
 			QVTscheduleTables.Properties._Node__outgoingEdges,
-			QVTscheduleTables.Properties._Node__region,
-			QVTscheduleTables.Properties._VariableNode__variable
+			QVTscheduleTables.Properties._Node__owningRegion,
+			QVTscheduleTables.Properties._VariableNode__referredVariable
 		};
 
 		/**
@@ -4048,8 +3718,6 @@
 			Fragments._EdgeConnection__EdgeConnection.initProperties(_EdgeConnection);
 			Fragments._ErrorNode__ErrorNode.initProperties(_ErrorNode);
 			Fragments._ExpressionEdge__ExpressionEdge.initProperties(_ExpressionEdge);
-			Fragments._GraphEdge__GraphEdge.initProperties(_GraphEdge);
-			Fragments._GraphNode__GraphNode.initProperties(_GraphNode);
 			Fragments._InputNode__InputNode.initProperties(_InputNode);
 			Fragments._IteratedEdge__IteratedEdge.initProperties(_IteratedEdge);
 			Fragments._IteratorNode__IteratorNode.initProperties(_IteratorNode);
@@ -4075,7 +3743,6 @@
 			Fragments._ScheduleModel__ScheduleModel.initProperties(_ScheduleModel);
 			Fragments._ScheduledRegion__ScheduledRegion.initProperties(_ScheduledRegion);
 			Fragments._Symbolable__Symbolable.initProperties(_Symbolable);
-			Fragments._ToDOTable__ToDOTable.initProperties(_ToDOTable);
 			Fragments._TrueNode__TrueNode.initProperties(_TrueNode);
 			Fragments._UnknownNode__UnknownNode.initProperties(_UnknownNode);
 			Fragments._VariableNode__VariableNode.initProperties(_VariableNode);
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Region.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Region.java
index 0606be3..4e56e9d 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Region.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/Region.java
@@ -27,117 +27,90 @@
 /**
  * <!-- begin-user-doc -->
  * A representation of the model object '<em><b>Region</b></em>'.
+ * @extends ToDOTable, GraphNode
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getEdges <em>Edges</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion <em>Invoking Region</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedEdges <em>Owned Edges</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwnedNodes <em>Owned Nodes</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion <em>Owning Scheduled Region</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion()
- * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.qvtd.pivot.qvtschedule.GraphNode org.eclipse.ocl.pivot.Nameable org.eclipse.qvtd.pivot.qvtschedule.Symbolable org.eclipse.qvtd.pivot.qvtschedule.ToDOTable"
+ * @model abstract="true" superTypes="org.eclipse.ocl.pivot.Element org.eclipse.ocl.pivot.Nameable org.eclipse.qvtd.pivot.qvtschedule.Symbolable"
  * @generated
  */
-public interface Region extends Element, GraphNode, Nameable, Symbolable, ToDOTable
+public interface Region extends Element, Nameable, Symbolable, ToDOTable, GraphNode
 {
 	/**
-	 * Returns the value of the '<em><b>Edges</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owning Scheduled Region</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedRegions <em>Owned Regions</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owning Scheduled Region</em>' container reference isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owning Scheduled Region</em>' container reference.
+	 * @see #setOwningScheduledRegion(ScheduledRegion)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_OwningScheduledRegion()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwnedRegions
+	 * @model opposite="ownedRegions" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!owningScheduledRegion'"
+	 * @generated
+	 */
+	ScheduledRegion getOwningScheduledRegion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion <em>Owning Scheduled Region</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owning Scheduled Region</em>' container reference.
+	 * @see #getOwningScheduledRegion()
+	 * @generated
+	 */
+	void setOwningScheduledRegion(ScheduledRegion value);
+
+	/**
+	 * Returns the value of the '<em><b>Owned Edges</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.Edge}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion <em>Region</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion <em>Owning Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Edges</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Edges</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Edges</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_Edges()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Edge#getRegion
-	 * @model opposite="region" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!edges'"
+	 * @return the value of the '<em>Owned Edges</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_OwnedEdges()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Edge#getOwningRegion
+	 * @model opposite="owningRegion" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!ownedEdges'"
 	 * @generated
 	 */
-	EList<Edge> getEdges();
+	EList<Edge> getOwnedEdges();
 
 	/**
-	 * Returns the value of the '<em><b>Invoking Region</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getRegions <em>Regions</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Invoking Region</em>' container reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Invoking Region</em>' container reference.
-	 * @see #setInvokingRegion(ScheduledRegion)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_InvokingRegion()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getRegions
-	 * @model opposite="regions" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!invokingRegion'"
-	 * @generated
-	 */
-	ScheduledRegion getInvokingRegion();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion <em>Invoking Region</em>}' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Invoking Region</em>' container reference.
-	 * @see #getInvokingRegion()
-	 * @generated
-	 */
-	void setInvokingRegion(ScheduledRegion value);
-
-	/**
-	 * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owned Nodes</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.Node}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion <em>Region</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion <em>Owning Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Nodes</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Nodes</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Nodes</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_Nodes()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Node#getRegion
-	 * @model opposite="region" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!nodes'"
+	 * @return the value of the '<em>Owned Nodes</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_OwnedNodes()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Node#getOwningRegion
+	 * @model opposite="owningRegion" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!ownedNodes'"
 	 * @generated
 	 */
-	EList<Node> getNodes();
-
-	/**
-	 * Returns the value of the '<em><b>Region</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Region</em>' reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Region</em>' reference.
-	 * @see #setRegion(Region)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getRegion_Region()
-	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!Region!region'"
-	 * @generated
-	 */
-	Region getRegion();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getRegion <em>Region</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Region</em>' reference.
-	 * @see #getRegion()
-	 * @generated
-	 */
-	void setRegion(Region value);
+	EList<Node> getOwnedNodes();
 
 	void addCallToChild(@NonNull Region region);
 	boolean addIndex(int index);
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduleModel.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduleModel.java
index fd3bceb..0034c3e 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduleModel.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduleModel.java
@@ -47,85 +47,84 @@
 	 */
 	void setLoadingRegion(LoadingRegion value);
 	/**
-	 * Returns the value of the '<em><b>Scheduled Region</b></em>' containment reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getScheduleModel <em>Schedule Model</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <p>
-	 * If the meaning of the '<em>Scheduled Region</em>' containment reference isn't clear,
-	 * there really should be more of a description here...
-	 * </p>
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Scheduled Region</em>' containment reference.
-	 * @see #setScheduledRegion(ScheduledRegion)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_ScheduledRegion()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getScheduleModel
-	 * @model opposite="scheduleModel" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!scheduledRegion'"
-	 * @generated
-	 */
-	ScheduledRegion getScheduledRegion();
-	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getScheduledRegion <em>Scheduled Region</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Scheduled Region</em>' containment reference.
-	 * @see #getScheduledRegion()
-	 * @generated
-	 */
-	void setScheduledRegion(ScheduledRegion value);
-
-	/**
-	 * Returns the value of the '<em><b>Class Datums</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owned Class Datums</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel <em>Schedule Model</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Class Datums</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Class Datums</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Class Datums</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_ClassDatums()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getScheduleModel
-	 * @model opposite="scheduleModel" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!classDatums'"
+	 * @return the value of the '<em>Owned Class Datums</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_OwnedClassDatums()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ClassDatum#getOwningScheduleModel
+	 * @model opposite="owningScheduleModel" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!ownedClassDatums'"
 	 * @generated
 	 */
-	EList<ClassDatum> getClassDatums();
+	EList<ClassDatum> getOwnedClassDatums();
 	/**
-	 * Returns the value of the '<em><b>Other Mapping Regions</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owned Mapping Actions</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <p>
+	 * If the meaning of the '<em>Owned Mapping Actions</em>' containment reference list isn't clear,
+	 * there really should be more of a description here...
+	 * </p>
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Owned Mapping Actions</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_OwnedMappingActions()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getOwningScheduleModel
+	 * @model opposite="owningScheduleModel" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!ownedMappingActions'"
+	 * @generated
+	 */
+	EList<MappingAction> getOwnedMappingActions();
+	/**
+	 * Returns the value of the '<em><b>Owned Other Mapping Regions</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingRegion}.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Other Mapping Regions</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Other Mapping Regions</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Other Mapping Regions</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_OtherMappingRegions()
+	 * @return the value of the '<em>Owned Other Mapping Regions</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_OwnedOtherMappingRegions()
 	 * @model containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!otherMappingRegions'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!ownedOtherMappingRegions'"
 	 * @generated
 	 */
-	EList<MappingRegion> getOtherMappingRegions();
+	EList<MappingRegion> getOwnedOtherMappingRegions();
 	/**
-	 * Returns the value of the '<em><b>Mapping Actions</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel <em>Schedule Model</em>}'.
+	 * Returns the value of the '<em><b>Owned Scheduled Region</b></em>' containment reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwningScheduleModel <em>Owning Schedule Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Mapping Actions</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Scheduled Region</em>' containment reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Mapping Actions</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_MappingActions()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.MappingAction#getScheduleModel
-	 * @model opposite="scheduleModel" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!mappingActions'"
+	 * @return the value of the '<em>Owned Scheduled Region</em>' containment reference.
+	 * @see #setOwnedScheduledRegion(ScheduledRegion)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduleModel_OwnedScheduledRegion()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwningScheduleModel
+	 * @model opposite="owningScheduleModel" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduleModel!ownedScheduledRegion'"
 	 * @generated
 	 */
-	EList<MappingAction> getMappingActions();
+	ScheduledRegion getOwnedScheduledRegion();
+	/**
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedScheduledRegion <em>Owned Scheduled Region</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Owned Scheduled Region</em>' containment reference.
+	 * @see #getOwnedScheduledRegion()
+	 * @generated
+	 */
+	void setOwnedScheduledRegion(ScheduledRegion value);
 	@NonNull SymbolNameAdapter getSymbolNameAdapter();
 	@NonNull String reserveSymbolName(@NonNull SymbolNameBuilder symbolNameBuilder, @NonNull Object object);
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduledRegion.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduledRegion.java
index 14a0b71..0da90c0 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduledRegion.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/ScheduledRegion.java
@@ -43,70 +43,68 @@
 	 */
 	void setName(String value);
 	/**
-	 * Returns the value of the '<em><b>Connections</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owned Connections</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.Connection}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion <em>Region</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion <em>Owning Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Connections</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Connections</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Connections</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_Connections()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Connection#getRegion
-	 * @model opposite="region" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!connections'"
+	 * @return the value of the '<em>Owned Connections</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_OwnedConnections()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Connection#getOwningScheduledRegion
+	 * @model opposite="owningScheduledRegion" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!ownedConnections'"
 	 * @generated
 	 */
-	EList<Connection> getConnections();
+	EList<Connection> getOwnedConnections();
 	/**
-	 * Returns the value of the '<em><b>Regions</b></em>' containment reference list.
+	 * Returns the value of the '<em><b>Owned Regions</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.qvtd.pivot.qvtschedule.Region}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion <em>Invoking Region</em>}'.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion <em>Owning Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Regions</em>' containment reference list isn't clear,
+	 * If the meaning of the '<em>Owned Regions</em>' containment reference list isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Regions</em>' containment reference list.
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_Regions()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getInvokingRegion
-	 * @model opposite="invokingRegion" containment="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!regions'"
+	 * @return the value of the '<em>Owned Regions</em>' containment reference list.
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_OwnedRegions()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.Region#getOwningScheduledRegion
+	 * @model opposite="owningScheduledRegion" containment="true"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!ownedRegions'"
 	 * @generated
 	 */
-	EList<Region> getRegions();
+	EList<Region> getOwnedRegions();
 	/**
-	 * Returns the value of the '<em><b>Schedule Model</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getScheduledRegion <em>Scheduled Region</em>}'.
+	 * Returns the value of the '<em><b>Owning Schedule Model</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedScheduledRegion <em>Owned Scheduled Region</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Schedule Model</em>' container reference isn't clear,
+	 * If the meaning of the '<em>Owning Schedule Model</em>' container reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Schedule Model</em>' container reference.
-	 * @see #setScheduleModel(ScheduleModel)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_ScheduleModel()
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getScheduledRegion
-	 * @model opposite="scheduledRegion" required="true" transient="false"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!scheduleModel'"
+	 * @return the value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #setOwningScheduleModel(ScheduleModel)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getScheduledRegion_OwningScheduleModel()
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.ScheduleModel#getOwnedScheduledRegion
+	 * @model opposite="ownedScheduledRegion" required="true" transient="false"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!ScheduledRegion!owningScheduleModel'"
 	 * @generated
 	 */
-	@Override
-	ScheduleModel getScheduleModel();
+	ScheduleModel getOwningScheduleModel();
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getScheduleModel <em>Schedule Model</em>}' container reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.ScheduledRegion#getOwningScheduleModel <em>Owning Schedule Model</em>}' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Schedule Model</em>' container reference.
-	 * @see #getScheduleModel()
+	 * @param value the new value of the '<em>Owning Schedule Model</em>' container reference.
+	 * @see #getOwningScheduleModel()
 	 * @generated
 	 */
-	void setScheduleModel(ScheduleModel value);
-
+	void setOwningScheduleModel(ScheduleModel value);
 	@NonNull Iterable<@NonNull Region> getCallableRegions();
 	@Nullable Region getNormalizedRegion(@NonNull Region region);
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/VariableNode.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/VariableNode.java
index 5f37aa3..aa615c2 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/VariableNode.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/VariableNode.java
@@ -27,7 +27,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getVariable <em>Variable</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getReferredVariable <em>Referred Variable</em>}</li>
  * </ul>
  *
  * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getVariableNode()
@@ -37,31 +37,31 @@
 public interface VariableNode extends Node {
 
 	/**
-	 * Returns the value of the '<em><b>Variable</b></em>' reference.
+	 * Returns the value of the '<em><b>Referred Variable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Variable</em>' reference isn't clear,
+	 * If the meaning of the '<em>Referred Variable</em>' reference isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Variable</em>' reference.
-	 * @see #setVariable(VariableDeclaration)
-	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getVariableNode_Variable()
+	 * @return the value of the '<em>Referred Variable</em>' reference.
+	 * @see #setReferredVariable(VariableDeclaration)
+	 * @see org.eclipse.qvtd.pivot.qvtschedule.QVTschedulePackage#getVariableNode_ReferredVariable()
 	 * @model required="true"
-	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!VariableNode!variable'"
+	 *        annotation="http://www.eclipse.org/emf/2002/GenModel get='throw new UnsupportedOperationException();  // FIXME Unimplemented http://www.eclipse.org/qvt/2017/QVTschedule!VariableNode!referredVariable'"
 	 * @generated
 	 */
-	VariableDeclaration getVariable();
+	VariableDeclaration getReferredVariable();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getVariable <em>Variable</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.qvtd.pivot.qvtschedule.VariableNode#getReferredVariable <em>Referred Variable</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Variable</em>' reference.
-	 * @see #getVariable()
+	 * @param value the new value of the '<em>Referred Variable</em>' reference.
+	 * @see #getReferredVariable()
 	 * @generated
 	 */
-	void setVariable(VariableDeclaration value);
+	void setReferredVariable(VariableDeclaration value);
 
 	public void initializeVariable(@NonNull Region region, /*@NonNull*/ VariableDeclaration variable);
 } // VariableNode
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/AbstractDatumImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/AbstractDatumImpl.java
index cffbb47..08f7f17 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/AbstractDatumImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/AbstractDatumImpl.java
@@ -36,43 +36,43 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getProducedBy <em>Produced By</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getRequiredBy <em>Required By</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getTypedModel <em>Typed Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getProducedByActions <em>Produced By Actions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getReferredTypedModel <em>Referred Typed Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.AbstractDatumImpl#getRequiredByActions <em>Required By Actions</em>}</li>
  * </ul>
  *
  * @generated
  */
 public abstract class AbstractDatumImpl extends ElementImpl implements AbstractDatum {
 	/**
-	 * The cached value of the '{@link #getProducedBy() <em>Produced By</em>}' reference list.
+	 * The cached value of the '{@link #getProducedByActions() <em>Produced By Actions</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getProducedBy()
+	 * @see #getProducedByActions()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<MappingAction> producedBy;
+	protected EList<MappingAction> producedByActions;
 
 	/**
-	 * The cached value of the '{@link #getRequiredBy() <em>Required By</em>}' reference list.
+	 * The cached value of the '{@link #getReferredTypedModel() <em>Referred Typed Model</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getRequiredBy()
+	 * @see #getReferredTypedModel()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<MappingAction> requiredBy;
+	protected TypedModel referredTypedModel;
 
 	/**
-	 * The cached value of the '{@link #getTypedModel() <em>Typed Model</em>}' reference.
+	 * The cached value of the '{@link #getRequiredByActions() <em>Required By Actions</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getTypedModel()
+	 * @see #getRequiredByActions()
 	 * @generated
 	 * @ordered
 	 */
-	protected TypedModel typedModel;
+	protected EList<MappingAction> requiredByActions;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -99,16 +99,29 @@
 	 * @generated
 	 */
 	@Override
-	public TypedModel getTypedModel() {
-		if (typedModel != null && typedModel.eIsProxy()) {
-			InternalEObject oldTypedModel = (InternalEObject)typedModel;
-			typedModel = (TypedModel)eResolveProxy(oldTypedModel);
-			if (typedModel != oldTypedModel) {
+	public EList<MappingAction> getProducedByActions() {
+		if (producedByActions == null) {
+			producedByActions = new EObjectWithInverseResolvingEList.ManyInverse<MappingAction>(MappingAction.class, this, QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS, QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS);
+		}
+		return producedByActions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public TypedModel getReferredTypedModel() {
+		if (referredTypedModel != null && referredTypedModel.eIsProxy()) {
+			InternalEObject oldReferredTypedModel = (InternalEObject)referredTypedModel;
+			referredTypedModel = (TypedModel)eResolveProxy(oldReferredTypedModel);
+			if (referredTypedModel != oldReferredTypedModel) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL, oldTypedModel, typedModel));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL, oldReferredTypedModel, referredTypedModel));
 			}
 		}
-		return typedModel;
+		return referredTypedModel;
 	}
 
 	/**
@@ -116,8 +129,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public TypedModel basicGetTypedModel() {
-		return typedModel;
+	public TypedModel basicGetReferredTypedModel() {
+		return referredTypedModel;
 	}
 
 	/**
@@ -126,11 +139,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setTypedModel(TypedModel newTypedModel) {
-		TypedModel oldTypedModel = typedModel;
-		typedModel = newTypedModel;
+	public void setReferredTypedModel(TypedModel newReferredTypedModel) {
+		TypedModel oldReferredTypedModel = referredTypedModel;
+		referredTypedModel = newReferredTypedModel;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL, oldTypedModel, typedModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL, oldReferredTypedModel, referredTypedModel));
 	}
 
 	/**
@@ -139,24 +152,11 @@
 	 * @generated
 	 */
 	@Override
-	public EList<MappingAction> getProducedBy() {
-		if (producedBy == null) {
-			producedBy = new EObjectWithInverseResolvingEList.ManyInverse<MappingAction>(MappingAction.class, this, QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY, QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS);
+	public EList<MappingAction> getRequiredByActions() {
+		if (requiredByActions == null) {
+			requiredByActions = new EObjectWithInverseResolvingEList.ManyInverse<MappingAction>(MappingAction.class, this, QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS, QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS);
 		}
-		return producedBy;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<MappingAction> getRequiredBy() {
-		if (requiredBy == null) {
-			requiredBy = new EObjectWithInverseResolvingEList.ManyInverse<MappingAction>(MappingAction.class, this, QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY, QVTschedulePackage.MAPPING_ACTION__REQUISITES);
-		}
-		return requiredBy;
+		return requiredByActions;
 	}
 
 	/**
@@ -168,10 +168,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getProducedBy()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRequiredBy()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getProducedByActions()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRequiredByActions()).basicAdd(otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -184,10 +184,10 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				return ((InternalEList<?>)getProducedBy()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				return ((InternalEList<?>)getRequiredBy()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				return ((InternalEList<?>)getProducedByActions()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				return ((InternalEList<?>)getRequiredByActions()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -200,13 +200,13 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				return getProducedBy();
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				return getRequiredBy();
-			case QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL:
-				if (resolve) return getTypedModel();
-				return basicGetTypedModel();
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				return getProducedByActions();
+			case QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL:
+				if (resolve) return getReferredTypedModel();
+				return basicGetReferredTypedModel();
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				return getRequiredByActions();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -220,16 +220,16 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				getProducedBy().clear();
-				getProducedBy().addAll((Collection<? extends MappingAction>)newValue);
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				getProducedByActions().clear();
+				getProducedByActions().addAll((Collection<? extends MappingAction>)newValue);
 				return;
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				getRequiredBy().clear();
-				getRequiredBy().addAll((Collection<? extends MappingAction>)newValue);
+			case QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL:
+				setReferredTypedModel((TypedModel)newValue);
 				return;
-			case QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL:
-				setTypedModel((TypedModel)newValue);
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				getRequiredByActions().clear();
+				getRequiredByActions().addAll((Collection<? extends MappingAction>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -243,14 +243,14 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				getProducedBy().clear();
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				getProducedByActions().clear();
 				return;
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				getRequiredBy().clear();
+			case QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL:
+				setReferredTypedModel((TypedModel)null);
 				return;
-			case QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL:
-				setTypedModel((TypedModel)null);
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				getRequiredByActions().clear();
 				return;
 		}
 		super.eUnset(featureID);
@@ -264,12 +264,12 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY:
-				return producedBy != null && !producedBy.isEmpty();
-			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY:
-				return requiredBy != null && !requiredBy.isEmpty();
-			case QVTschedulePackage.ABSTRACT_DATUM__TYPED_MODEL:
-				return typedModel != null;
+			case QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS:
+				return producedByActions != null && !producedByActions.isEmpty();
+			case QVTschedulePackage.ABSTRACT_DATUM__REFERRED_TYPED_MODEL:
+				return referredTypedModel != null;
+			case QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS:
+				return requiredByActions != null && !requiredByActions.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/BasicMappingRegionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/BasicMappingRegionImpl.java
index 6a4d34e..6e9f529 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/BasicMappingRegionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/BasicMappingRegionImpl.java
@@ -41,23 +41,14 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.BasicMappingRegionImpl#getMapping <em>Mapping</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.BasicMappingRegionImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.BasicMappingRegionImpl#getReferredMapping <em>Referred Mapping</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class BasicMappingRegionImpl extends MappingRegionImpl implements BasicMappingRegion {
 	/**
-	 * The cached value of the '{@link #getMapping() <em>Mapping</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getMapping()
-	 * @generated
-	 * @ordered
-	 */
-	protected Mapping mapping;
-	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68,6 +59,16 @@
 	protected static final String NAME_EDEFAULT = null;
 
 	/**
+	 * The cached value of the '{@link #getReferredMapping() <em>Referred Mapping</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getReferredMapping()
+	 * @generated
+	 * @ordered
+	 */
+	protected Mapping referredMapping;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -92,53 +93,13 @@
 	 * @generated
 	 */
 	@Override
-	public Mapping getMapping() {
-		if (mapping != null && mapping.eIsProxy()) {
-			InternalEObject oldMapping = (InternalEObject)mapping;
-			mapping = (Mapping)eResolveProxy(oldMapping);
-			if (mapping != oldMapping) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING, oldMapping, mapping));
-			}
-		}
-		return mapping;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Mapping basicGetMapping() {
-		return mapping;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setMapping(Mapping newMapping) {
-		Mapping oldMapping = mapping;
-		mapping = newMapping;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING, oldMapping, mapping));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING:
-				if (resolve) return getMapping();
-				return basicGetMapping();
 			case QVTschedulePackage.BASIC_MAPPING_REGION__NAME:
 				return getName();
+			case QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING:
+				if (resolve) return getReferredMapping();
+				return basicGetReferredMapping();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -151,8 +112,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING:
-				setMapping((Mapping)newValue);
+			case QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING:
+				setReferredMapping((Mapping)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -166,8 +127,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING:
-				setMapping((Mapping)null);
+			case QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING:
+				setReferredMapping((Mapping)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -181,10 +142,10 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.BASIC_MAPPING_REGION__MAPPING:
-				return mapping != null;
 			case QVTschedulePackage.BASIC_MAPPING_REGION__NAME:
 				return NAME_EDEFAULT == null ? getName() != null : !NAME_EDEFAULT.equals(getName());
+			case QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING:
+				return referredMapping != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -221,7 +182,47 @@
 	 */
 	@Override
 	public String getName() {
-		return QVTscheduleUtil.getMapping(this).getName();
+		return QVTscheduleUtil.getReferredMapping(this).getName();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Mapping getReferredMapping() {
+		if (referredMapping != null && referredMapping.eIsProxy()) {
+			InternalEObject oldReferredMapping = (InternalEObject)referredMapping;
+			referredMapping = (Mapping)eResolveProxy(oldReferredMapping);
+			if (referredMapping != oldReferredMapping) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING, oldReferredMapping, referredMapping));
+			}
+		}
+		return referredMapping;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Mapping basicGetReferredMapping() {
+		return referredMapping;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setReferredMapping(Mapping newReferredMapping) {
+		Mapping oldReferredMapping = referredMapping;
+		referredMapping = newReferredMapping;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.BASIC_MAPPING_REGION__REFERRED_MAPPING, oldReferredMapping, referredMapping));
 	}
 
 	public @Nullable Node getNode(@NonNull TypedElement typedElement) {
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/CastEdgeImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/CastEdgeImpl.java
index cd98cd8..43ffad4 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/CastEdgeImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/CastEdgeImpl.java
@@ -42,22 +42,21 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.CastEdgeImpl#getProperty <em>Property</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.CastEdgeImpl#getPrimaryClass <em>Primary Class</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.CastEdgeImpl#getReferredClass <em>Referred Class</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class CastEdgeImpl extends NavigableEdgeImpl implements CastEdge {
 	/**
-	 * The cached value of the '{@link #getPrimaryClass() <em>Primary Class</em>}' reference.
+	 * The cached value of the '{@link #getReferredClass() <em>Referred Class</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPrimaryClass()
+	 * @see #getReferredClass()
 	 * @generated
 	 * @ordered
 	 */
-	protected org.eclipse.ocl.pivot.Class primaryClass;
-
+	protected org.eclipse.ocl.pivot.Class referredClass;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -83,53 +82,13 @@
 	 * @generated
 	 */
 	@Override
-	public org.eclipse.ocl.pivot.Class getPrimaryClass() {
-		if (primaryClass != null && primaryClass.eIsProxy()) {
-			InternalEObject oldPrimaryClass = (InternalEObject)primaryClass;
-			primaryClass = (org.eclipse.ocl.pivot.Class)eResolveProxy(oldPrimaryClass);
-			if (primaryClass != oldPrimaryClass) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS, oldPrimaryClass, primaryClass));
-			}
-		}
-		return primaryClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.ocl.pivot.Class basicGetPrimaryClass() {
-		return primaryClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setPrimaryClass(org.eclipse.ocl.pivot.Class newPrimaryClass) {
-		org.eclipse.ocl.pivot.Class oldPrimaryClass = primaryClass;
-		primaryClass = newPrimaryClass;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS, oldPrimaryClass, primaryClass));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case QVTschedulePackage.CAST_EDGE__PROPERTY:
 				return getProperty();
-			case QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS:
-				if (resolve) return getPrimaryClass();
-				return basicGetPrimaryClass();
+			case QVTschedulePackage.CAST_EDGE__REFERRED_CLASS:
+				if (resolve) return getReferredClass();
+				return basicGetReferredClass();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -142,8 +101,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS:
-				setPrimaryClass((org.eclipse.ocl.pivot.Class)newValue);
+			case QVTschedulePackage.CAST_EDGE__REFERRED_CLASS:
+				setReferredClass((org.eclipse.ocl.pivot.Class)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -157,8 +116,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS:
-				setPrimaryClass((org.eclipse.ocl.pivot.Class)null);
+			case QVTschedulePackage.CAST_EDGE__REFERRED_CLASS:
+				setReferredClass((org.eclipse.ocl.pivot.Class)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -174,8 +133,8 @@
 		switch (featureID) {
 			case QVTschedulePackage.CAST_EDGE__PROPERTY:
 				return getProperty() != null;
-			case QVTschedulePackage.CAST_EDGE__PRIMARY_CLASS:
-				return primaryClass != null;
+			case QVTschedulePackage.CAST_EDGE__REFERRED_CLASS:
+				return referredClass != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -204,6 +163,46 @@
 		return property;
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.ocl.pivot.Class getReferredClass() {
+		if (referredClass != null && referredClass.eIsProxy()) {
+			InternalEObject oldReferredClass = (InternalEObject)referredClass;
+			referredClass = (org.eclipse.ocl.pivot.Class)eResolveProxy(oldReferredClass);
+			if (referredClass != oldReferredClass) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.CAST_EDGE__REFERRED_CLASS, oldReferredClass, referredClass));
+			}
+		}
+		return referredClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.ocl.pivot.Class basicGetReferredClass() {
+		return referredClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setReferredClass(org.eclipse.ocl.pivot.Class newReferredClass) {
+		org.eclipse.ocl.pivot.Class oldReferredClass = referredClass;
+		referredClass = newReferredClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CAST_EDGE__REFERRED_CLASS, oldReferredClass, referredClass));
+	}
+
 	@Override
 	public void initializeProperty(@NonNull Property property) {
 		setProperty(property);
@@ -244,7 +243,7 @@
 
 	private void setProperty(@NonNull Property property) {
 		this.property = property;
-		setPrimaryClass(PivotUtil.getClass(property));
+		setReferredClass(PivotUtil.getClass(property));
 	}
 
 	@Override
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ClassDatumImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ClassDatumImpl.java
index a5c4dcf..ccce6ad 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ClassDatumImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ClassDatumImpl.java
@@ -42,9 +42,9 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getCompleteClass <em>Complete Class</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getPrimaryClass <em>Primary Class</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getPropertyDatums <em>Property Datums</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getScheduleModel <em>Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getOwningPropertyDatums <em>Owning Property Datums</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getOwningScheduleModel <em>Owning Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getReferredClass <em>Referred Class</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ClassDatumImpl#getSuperClassDatums <em>Super Class Datums</em>}</li>
  * </ul>
  *
@@ -62,24 +62,24 @@
 	protected CompleteClass completeClass;
 
 	/**
-	 * The cached value of the '{@link #getPrimaryClass() <em>Primary Class</em>}' reference.
+	 * The cached value of the '{@link #getOwningPropertyDatums() <em>Owning Property Datums</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPrimaryClass()
+	 * @see #getOwningPropertyDatums()
 	 * @generated
 	 * @ordered
 	 */
-	protected org.eclipse.ocl.pivot.Class primaryClass;
+	protected EList<PropertyDatum> owningPropertyDatums;
 
 	/**
-	 * The cached value of the '{@link #getPropertyDatums() <em>Property Datums</em>}' containment reference list.
+	 * The cached value of the '{@link #getReferredClass() <em>Referred Class</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getPropertyDatums()
+	 * @see #getReferredClass()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<PropertyDatum> propertyDatums;
+	protected org.eclipse.ocl.pivot.Class referredClass;
 
 	/**
 	 * The cached value of the '{@link #getSuperClassDatums() <em>Super Class Datums</em>}' reference list.
@@ -156,25 +156,11 @@
 	 * @generated
 	 */
 	@Override
-	public org.eclipse.ocl.pivot.Class getPrimaryClass() {
-		if (primaryClass != null && primaryClass.eIsProxy()) {
-			InternalEObject oldPrimaryClass = (InternalEObject)primaryClass;
-			primaryClass = (org.eclipse.ocl.pivot.Class)eResolveProxy(oldPrimaryClass);
-			if (primaryClass != oldPrimaryClass) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS, oldPrimaryClass, primaryClass));
-			}
+	public EList<PropertyDatum> getOwningPropertyDatums() {
+		if (owningPropertyDatums == null) {
+			owningPropertyDatums = new EObjectContainmentWithInverseEList<PropertyDatum>(PropertyDatum.class, this, QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS, QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM);
 		}
-		return primaryClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public org.eclipse.ocl.pivot.Class basicGetPrimaryClass() {
-		return primaryClass;
+		return owningPropertyDatums;
 	}
 
 	/**
@@ -183,34 +169,8 @@
 	 * @generated
 	 */
 	@Override
-	public void setPrimaryClass(org.eclipse.ocl.pivot.Class newPrimaryClass) {
-		org.eclipse.ocl.pivot.Class oldPrimaryClass = primaryClass;
-		primaryClass = newPrimaryClass;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS, oldPrimaryClass, primaryClass));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<PropertyDatum> getPropertyDatums() {
-		if (propertyDatums == null) {
-			propertyDatums = new EObjectContainmentWithInverseEList<PropertyDatum>(PropertyDatum.class, this, QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS, QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM);
-		}
-		return propertyDatums;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ScheduleModel getScheduleModel() {
-		if (eContainerFeatureID() != QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL) return null;
+	public ScheduleModel getOwningScheduleModel() {
+		if (eContainerFeatureID() != QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL) return null;
 		return (ScheduleModel)eInternalContainer();
 	}
 
@@ -219,8 +179,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetScheduleModel(ScheduleModel newScheduleModel, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newScheduleModel, QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL, msgs);
+	public NotificationChain basicSetOwningScheduleModel(ScheduleModel newOwningScheduleModel, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningScheduleModel, QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL, msgs);
 		return msgs;
 	}
 
@@ -230,20 +190,60 @@
 	 * @generated
 	 */
 	@Override
-	public void setScheduleModel(ScheduleModel newScheduleModel) {
-		if (newScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL && newScheduleModel != null)) {
-			if (EcoreUtil.isAncestor(this, newScheduleModel))
+	public void setOwningScheduleModel(ScheduleModel newOwningScheduleModel) {
+		if (newOwningScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL && newOwningScheduleModel != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningScheduleModel))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newScheduleModel != null)
-				msgs = ((InternalEObject)newScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS, ScheduleModel.class, msgs);
-			msgs = basicSetScheduleModel(newScheduleModel, msgs);
+			if (newOwningScheduleModel != null)
+				msgs = ((InternalEObject)newOwningScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS, ScheduleModel.class, msgs);
+			msgs = basicSetOwningScheduleModel(newOwningScheduleModel, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL, newScheduleModel, newScheduleModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL, newOwningScheduleModel, newOwningScheduleModel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.ocl.pivot.Class getReferredClass() {
+		if (referredClass != null && referredClass.eIsProxy()) {
+			InternalEObject oldReferredClass = (InternalEObject)referredClass;
+			referredClass = (org.eclipse.ocl.pivot.Class)eResolveProxy(oldReferredClass);
+			if (referredClass != oldReferredClass) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS, oldReferredClass, referredClass));
+			}
+		}
+		return referredClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public org.eclipse.ocl.pivot.Class basicGetReferredClass() {
+		return referredClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setReferredClass(org.eclipse.ocl.pivot.Class newReferredClass) {
+		org.eclipse.ocl.pivot.Class oldReferredClass = referredClass;
+		referredClass = newReferredClass;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS, oldReferredClass, referredClass));
 	}
 
 	/**
@@ -268,12 +268,12 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getPropertyDatums()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwningPropertyDatums()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetScheduleModel((ScheduleModel)otherEnd, msgs);
+				return basicSetOwningScheduleModel((ScheduleModel)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -286,10 +286,10 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				return ((InternalEList<?>)getPropertyDatums()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				return basicSetScheduleModel(null, msgs);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				return ((InternalEList<?>)getOwningPropertyDatums()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				return basicSetOwningScheduleModel(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -302,8 +302,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS, ScheduleModel.class, msgs);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS, ScheduleModel.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -319,13 +319,13 @@
 			case QVTschedulePackage.CLASS_DATUM__COMPLETE_CLASS:
 				if (resolve) return getCompleteClass();
 				return basicGetCompleteClass();
-			case QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS:
-				if (resolve) return getPrimaryClass();
-				return basicGetPrimaryClass();
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				return getPropertyDatums();
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				return getScheduleModel();
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				return getOwningPropertyDatums();
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel();
+			case QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS:
+				if (resolve) return getReferredClass();
+				return basicGetReferredClass();
 			case QVTschedulePackage.CLASS_DATUM__SUPER_CLASS_DATUMS:
 				return getSuperClassDatums();
 		}
@@ -344,15 +344,15 @@
 			case QVTschedulePackage.CLASS_DATUM__COMPLETE_CLASS:
 				setCompleteClass((CompleteClass)newValue);
 				return;
-			case QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS:
-				setPrimaryClass((org.eclipse.ocl.pivot.Class)newValue);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				getOwningPropertyDatums().clear();
+				getOwningPropertyDatums().addAll((Collection<? extends PropertyDatum>)newValue);
 				return;
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				getPropertyDatums().clear();
-				getPropertyDatums().addAll((Collection<? extends PropertyDatum>)newValue);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)newValue);
 				return;
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)newValue);
+			case QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS:
+				setReferredClass((org.eclipse.ocl.pivot.Class)newValue);
 				return;
 			case QVTschedulePackage.CLASS_DATUM__SUPER_CLASS_DATUMS:
 				getSuperClassDatums().clear();
@@ -373,14 +373,14 @@
 			case QVTschedulePackage.CLASS_DATUM__COMPLETE_CLASS:
 				setCompleteClass((CompleteClass)null);
 				return;
-			case QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS:
-				setPrimaryClass((org.eclipse.ocl.pivot.Class)null);
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				getOwningPropertyDatums().clear();
 				return;
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				getPropertyDatums().clear();
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)null);
 				return;
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)null);
+			case QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS:
+				setReferredClass((org.eclipse.ocl.pivot.Class)null);
 				return;
 			case QVTschedulePackage.CLASS_DATUM__SUPER_CLASS_DATUMS:
 				getSuperClassDatums().clear();
@@ -399,12 +399,12 @@
 		switch (featureID) {
 			case QVTschedulePackage.CLASS_DATUM__COMPLETE_CLASS:
 				return completeClass != null;
-			case QVTschedulePackage.CLASS_DATUM__PRIMARY_CLASS:
-				return primaryClass != null;
-			case QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS:
-				return propertyDatums != null && !propertyDatums.isEmpty();
-			case QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL:
-				return getScheduleModel() != null;
+			case QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS:
+				return owningPropertyDatums != null && !owningPropertyDatums.isEmpty();
+			case QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel() != null;
+			case QVTschedulePackage.CLASS_DATUM__REFERRED_CLASS:
+				return referredClass != null;
 			case QVTschedulePackage.CLASS_DATUM__SUPER_CLASS_DATUMS:
 				return superClassDatums != null && !superClassDatums.isEmpty();
 		}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ConnectionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ConnectionImpl.java
index c58ec22..d3313d1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ConnectionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ConnectionImpl.java
@@ -38,7 +38,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ConnectionImpl#getSymbolName <em>Symbol Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ConnectionImpl#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ConnectionImpl#getOwningScheduledRegion <em>Owning Scheduled Region</em>}</li>
  * </ul>
  *
  * @generated
@@ -111,8 +111,8 @@
 	 * @generated
 	 */
 	@Override
-	public ScheduledRegion getRegion() {
-		if (eContainerFeatureID() != QVTschedulePackage.CONNECTION__REGION) return null;
+	public ScheduledRegion getOwningScheduledRegion() {
+		if (eContainerFeatureID() != QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION) return null;
 		return (ScheduledRegion)eInternalContainer();
 	}
 
@@ -121,8 +121,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetRegion(ScheduledRegion newRegion, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newRegion, QVTschedulePackage.CONNECTION__REGION, msgs);
+	public NotificationChain basicSetOwningScheduledRegion(ScheduledRegion newOwningScheduledRegion, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningScheduledRegion, QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION, msgs);
 		return msgs;
 	}
 
@@ -132,20 +132,20 @@
 	 * @generated
 	 */
 	@Override
-	public void setRegion(ScheduledRegion newRegion) {
-		if (newRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.CONNECTION__REGION && newRegion != null)) {
-			if (EcoreUtil.isAncestor(this, newRegion))
+	public void setOwningScheduledRegion(ScheduledRegion newOwningScheduledRegion) {
+		if (newOwningScheduledRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION && newOwningScheduledRegion != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningScheduledRegion))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newRegion != null)
-				msgs = ((InternalEObject)newRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS, ScheduledRegion.class, msgs);
-			msgs = basicSetRegion(newRegion, msgs);
+			if (newOwningScheduledRegion != null)
+				msgs = ((InternalEObject)newOwningScheduledRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS, ScheduledRegion.class, msgs);
+			msgs = basicSetOwningScheduledRegion(newOwningScheduledRegion, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CONNECTION__REGION, newRegion, newRegion));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION, newOwningScheduledRegion, newOwningScheduledRegion));
 	}
 
 	/**
@@ -156,10 +156,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.CONNECTION__REGION:
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetRegion((ScheduledRegion)otherEnd, msgs);
+				return basicSetOwningScheduledRegion((ScheduledRegion)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -172,8 +172,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.CONNECTION__REGION:
-				return basicSetRegion(null, msgs);
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				return basicSetOwningScheduledRegion(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -186,8 +186,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.CONNECTION__REGION:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS, ScheduledRegion.class, msgs);
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS, ScheduledRegion.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -202,8 +202,8 @@
 		switch (featureID) {
 			case QVTschedulePackage.CONNECTION__SYMBOL_NAME:
 				return getSymbolName();
-			case QVTschedulePackage.CONNECTION__REGION:
-				return getRegion();
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				return getOwningScheduledRegion();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -219,8 +219,8 @@
 			case QVTschedulePackage.CONNECTION__SYMBOL_NAME:
 				setSymbolName((String)newValue);
 				return;
-			case QVTschedulePackage.CONNECTION__REGION:
-				setRegion((ScheduledRegion)newValue);
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				setOwningScheduledRegion((ScheduledRegion)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -237,8 +237,8 @@
 			case QVTschedulePackage.CONNECTION__SYMBOL_NAME:
 				setSymbolName(SYMBOL_NAME_EDEFAULT);
 				return;
-			case QVTschedulePackage.CONNECTION__REGION:
-				setRegion((ScheduledRegion)null);
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				setOwningScheduledRegion((ScheduledRegion)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -254,8 +254,8 @@
 		switch (featureID) {
 			case QVTschedulePackage.CONNECTION__SYMBOL_NAME:
 				return SYMBOL_NAME_EDEFAULT == null ? symbolName != null : !SYMBOL_NAME_EDEFAULT.equals(symbolName);
-			case QVTschedulePackage.CONNECTION__REGION:
-				return getRegion() != null;
+			case QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION:
+				return getOwningScheduledRegion() != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/DatumConnectionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/DatumConnectionImpl.java
index 4beaa06..ff0377c 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/DatumConnectionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/DatumConnectionImpl.java
@@ -327,7 +327,7 @@
 
 	@Override
 	public void destroy() {
-		setRegion(null);
+		setOwningScheduledRegion(null);
 	}
 
 	/*	public @NonNull ConnectionRole getConnectionRole(@NonNull CE targetEnd) {
@@ -368,7 +368,7 @@
 	public @NonNull CE getSource(@NonNull Region sourceRegion) {
 		@Nullable CE sourceEnd = null;
 		for (@NonNull CE end : QVTscheduleUtil.getSourceEnds(this)) {
-			if (end.getRegion() == sourceRegion) {
+			if (end.getOwningRegion() == sourceRegion) {
 				assert sourceEnd == null;
 				sourceEnd = end;
 			}
@@ -393,7 +393,7 @@
 	public @NonNull Set<@NonNull Region> getSourceRegions() {
 		Set<@NonNull Region> sourceRegions = new HashSet<>();
 		for (@NonNull ConnectionEnd sourceEnd : QVTscheduleUtil.getSourceEnds(this)) {
-			Region sourceRegion = QVTscheduleUtil.getRegion(sourceEnd);
+			Region sourceRegion = QVTscheduleUtil.getOwningRegion(sourceEnd);
 			sourceRegions.add(sourceRegion);
 		}
 		return sourceRegions;
@@ -403,7 +403,7 @@
 	public @NonNull Iterable<@NonNull Region> getSourceRegions(@NonNull ScheduledRegion scheduledRegion) {
 		Set<@NonNull Region> sourceRegions = new HashSet<>();
 		for (@NonNull ConnectionEnd sourceEnd : QVTscheduleUtil.getSourceEnds(this)) {
-			Region sourceRegion = QVTscheduleUtil.getRegion(sourceEnd);
+			Region sourceRegion = QVTscheduleUtil.getOwningRegion(sourceEnd);
 			sourceRegion = scheduledRegion.getNormalizedRegion(sourceRegion);
 			if (sourceRegion != null) {
 				sourceRegions.add(sourceRegion);
@@ -435,7 +435,7 @@
 	public @NonNull CE getTarget(@NonNull Region targetRegion) {
 		@Nullable CE targetEnd = null;
 		for (@NonNull CE end : targetEnd2role.keySet()) {
-			if (end.getRegion() == targetRegion) {
+			if (end.getOwningRegion() == targetRegion) {
 				assert targetEnd == null;
 				targetEnd = end;
 			}
@@ -448,7 +448,7 @@
 	public @NonNull Set<@NonNull Region> getTargetRegions() {
 		Set<@NonNull Region> targetRegions = new HashSet<>();
 		for (@NonNull ConnectionEnd targetEnd : getTargets().keySet()) {
-			Region targetRegion = QVTscheduleUtil.getRegion(targetEnd);
+			Region targetRegion = QVTscheduleUtil.getOwningRegion(targetEnd);
 			targetRegions.add(targetRegion);
 		}
 		return targetRegions;
@@ -458,7 +458,7 @@
 	public @NonNull Iterable<@NonNull Region> getTargetRegions(@NonNull ScheduledRegion scheduledRegion) {
 		Set<@NonNull Region> targetRegions = new HashSet<>();
 		for (@NonNull ConnectionEnd targetEnd : getTargets().keySet()) {
-			Region targetRegion = QVTscheduleUtil.getRegion(targetEnd);
+			Region targetRegion = QVTscheduleUtil.getOwningRegion(targetEnd);
 			targetRegion = scheduledRegion.getNormalizedRegion(targetRegion);
 			if (targetRegion != null) {
 				targetRegions.add(targetRegion);
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeConnectionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeConnectionImpl.java
index 6252435..2b74b36 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeConnectionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeConnectionImpl.java
@@ -45,22 +45,21 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeConnectionImpl#getProperty <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeConnectionImpl#getReferredProperty <em>Referred Property</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class EdgeConnectionImpl extends DatumConnectionImpl<NavigableEdge> implements EdgeConnection {
 	/**
-	 * The cached value of the '{@link #getProperty() <em>Property</em>}' reference.
+	 * The cached value of the '{@link #getReferredProperty() <em>Referred Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getProperty()
+	 * @see #getReferredProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected Property property;
-
+	protected Property referredProperty;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -100,16 +99,16 @@
 	 * @generated
 	 */
 	@Override
-	public Property getProperty() {
-		if (property != null && property.eIsProxy()) {
-			InternalEObject oldProperty = (InternalEObject)property;
-			property = (Property)eResolveProxy(oldProperty);
-			if (property != oldProperty) {
+	public Property getReferredProperty() {
+		if (referredProperty != null && referredProperty.eIsProxy()) {
+			InternalEObject oldReferredProperty = (InternalEObject)referredProperty;
+			referredProperty = (Property)eResolveProxy(oldReferredProperty);
+			if (referredProperty != oldReferredProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.EDGE_CONNECTION__PROPERTY, oldProperty, property));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
 			}
 		}
-		return property;
+		return referredProperty;
 	}
 
 	/**
@@ -117,8 +116,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property basicGetProperty() {
-		return property;
+	public Property basicGetReferredProperty() {
+		return referredProperty;
 	}
 
 	/**
@@ -127,11 +126,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setProperty(Property newProperty) {
-		Property oldProperty = property;
-		property = newProperty;
+	public void setReferredProperty(Property newReferredProperty) {
+		Property oldReferredProperty = referredProperty;
+		referredProperty = newReferredProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.EDGE_CONNECTION__PROPERTY, oldProperty, property));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
 	}
 
 	/**
@@ -142,9 +141,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE_CONNECTION__PROPERTY:
-				if (resolve) return getProperty();
-				return basicGetProperty();
+			case QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY:
+				if (resolve) return getReferredProperty();
+				return basicGetReferredProperty();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -157,8 +156,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE_CONNECTION__PROPERTY:
-				setProperty((Property)newValue);
+			case QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY:
+				setReferredProperty((Property)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -172,8 +171,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE_CONNECTION__PROPERTY:
-				setProperty((Property)null);
+			case QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY:
+				setReferredProperty((Property)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -187,8 +186,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE_CONNECTION__PROPERTY:
-				return property != null;
+			case QVTschedulePackage.EDGE_CONNECTION__REFERRED_PROPERTY:
+				return referredProperty != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -329,7 +328,7 @@
 	@Override
 	public void removeTargetRegion(@NonNull Region targetRegion) {
 		for (@NonNull NavigableEdge targetEdge : Lists.newArrayList(getTargetEdges())) {
-			if (targetEdge.getRegion() == targetRegion) {
+			if (targetEdge.getOwningRegion() == targetRegion) {
 				targetEdge.setIncomingConnection(null);
 				removeTarget(targetEdge);
 			}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeImpl.java
index d5a1db1..02310b1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/EdgeImpl.java
@@ -44,7 +44,7 @@
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getEdgeRole <em>Edge Role</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getOwningRegion <em>Owning Region</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getSourceNode <em>Source Node</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.EdgeImpl#getTargetNode <em>Target Node</em>}</li>
  * </ul>
@@ -183,8 +183,8 @@
 	 * @generated
 	 */
 	@Override
-	public Region getRegion() {
-		if (eContainerFeatureID() != QVTschedulePackage.EDGE__REGION) return null;
+	public Region getOwningRegion() {
+		if (eContainerFeatureID() != QVTschedulePackage.EDGE__OWNING_REGION) return null;
 		return (Region)eInternalContainer();
 	}
 
@@ -193,8 +193,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetRegion(Region newRegion, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newRegion, QVTschedulePackage.EDGE__REGION, msgs);
+	public NotificationChain basicSetOwningRegion(Region newOwningRegion, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningRegion, QVTschedulePackage.EDGE__OWNING_REGION, msgs);
 		return msgs;
 	}
 
@@ -204,20 +204,20 @@
 	 * @generated
 	 */
 	@Override
-	public void setRegion(Region newRegion) {
-		if (newRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.EDGE__REGION && newRegion != null)) {
-			if (EcoreUtil.isAncestor(this, newRegion))
+	public void setOwningRegion(Region newOwningRegion) {
+		if (newOwningRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.EDGE__OWNING_REGION && newOwningRegion != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningRegion))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newRegion != null)
-				msgs = ((InternalEObject)newRegion).eInverseAdd(this, QVTschedulePackage.REGION__EDGES, Region.class, msgs);
-			msgs = basicSetRegion(newRegion, msgs);
+			if (newOwningRegion != null)
+				msgs = ((InternalEObject)newOwningRegion).eInverseAdd(this, QVTschedulePackage.REGION__OWNED_EDGES, Region.class, msgs);
+			msgs = basicSetOwningRegion(newOwningRegion, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.EDGE__REGION, newRegion, newRegion));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.EDGE__OWNING_REGION, newOwningRegion, newOwningRegion));
 	}
 
 	/**
@@ -352,10 +352,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE__REGION:
+			case QVTschedulePackage.EDGE__OWNING_REGION:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetRegion((Region)otherEnd, msgs);
+				return basicSetOwningRegion((Region)otherEnd, msgs);
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				if (sourceNode != null)
 					msgs = ((InternalEObject)sourceNode).eInverseRemove(this, QVTschedulePackage.NODE__OUTGOING_EDGES, Node.class, msgs);
@@ -376,8 +376,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.EDGE__REGION:
-				return basicSetRegion(null, msgs);
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				return basicSetOwningRegion(null, msgs);
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				return basicSetSourceNode(null, msgs);
 			case QVTschedulePackage.EDGE__TARGET_NODE:
@@ -394,8 +394,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.EDGE__REGION:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.REGION__EDGES, Region.class, msgs);
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.REGION__OWNED_EDGES, Region.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -412,8 +412,8 @@
 				return getEdgeRole();
 			case QVTschedulePackage.EDGE__NAME:
 				return getName();
-			case QVTschedulePackage.EDGE__REGION:
-				return getRegion();
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				return getOwningRegion();
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				if (resolve) return getSourceNode();
 				return basicGetSourceNode();
@@ -438,8 +438,8 @@
 			case QVTschedulePackage.EDGE__NAME:
 				setName((String)newValue);
 				return;
-			case QVTschedulePackage.EDGE__REGION:
-				setRegion((Region)newValue);
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				setOwningRegion((Region)newValue);
 				return;
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				setSourceNode((Node)newValue);
@@ -465,8 +465,8 @@
 			case QVTschedulePackage.EDGE__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case QVTschedulePackage.EDGE__REGION:
-				setRegion((Region)null);
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				setOwningRegion((Region)null);
 				return;
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				setSourceNode((Node)null);
@@ -490,8 +490,8 @@
 				return edgeRole != EDGE_ROLE_EDEFAULT;
 			case QVTschedulePackage.EDGE__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case QVTschedulePackage.EDGE__REGION:
-				return getRegion() != null;
+			case QVTschedulePackage.EDGE__OWNING_REGION:
+				return getOwningRegion() != null;
 			case QVTschedulePackage.EDGE__SOURCE_NODE:
 				return sourceNode != null;
 			case QVTschedulePackage.EDGE__TARGET_NODE:
@@ -547,8 +547,8 @@
 		assert sourceNode2 != null;
 		assert targetNode2 != null;
 		assert sourceNode2 != targetNode2;
-		Region region = QVTscheduleUtil.getRegion(sourceNode2);
-		assert region == targetNode2.getRegion();
+		Region region = QVTscheduleUtil.getOwningRegion(sourceNode2);
+		assert region == targetNode2.getOwningRegion();
 		//		region.addEdge(this);
 		//		sourceNode2.addOutgoingEdge(this);
 		//		targetNode2.addIncomingEdge(this);
@@ -572,7 +572,7 @@
 		if ((sourceNode2 != null) && (targetNode2 != null)) {
 			setTarget(null);
 			setSource(null);
-			setRegion(null);
+			setOwningRegion(null);
 		}
 	}
 
@@ -585,7 +585,7 @@
 		}
 		//		this.sourceNode = null;
 		//		this.targetNode = null;
-		setRegion(null);
+		setOwningRegion(null);
 		setSourceNode(null);
 		setTargetNode(null);
 	}
@@ -636,7 +636,7 @@
 
 	@Override
 	public void initialize(@NonNull Role edgeRole, @NonNull Node sourceNode, @Nullable String name, @NonNull Node targetNode) {
-		setRegion(QVTscheduleUtil.getRegion(sourceNode));
+		setOwningRegion(QVTscheduleUtil.getOwningRegion(sourceNode));
 		setEdgeRole(edgeRole);
 		setName(name);
 		setSource(sourceNode);
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingActionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingActionImpl.java
index 937b5c1..77fd94c 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingActionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingActionImpl.java
@@ -40,44 +40,44 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getMapping <em>Mapping</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getProductions <em>Productions</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getRequisites <em>Requisites</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getScheduleModel <em>Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getOwningScheduleModel <em>Owning Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getProducedDatums <em>Produced Datums</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getReferredMapping <em>Referred Mapping</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.MappingActionImpl#getRequiredDatums <em>Required Datums</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class MappingActionImpl extends ElementImpl implements MappingAction {
 	/**
-	 * The cached value of the '{@link #getMapping() <em>Mapping</em>}' reference.
+	 * The cached value of the '{@link #getProducedDatums() <em>Produced Datums</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getMapping()
+	 * @see #getProducedDatums()
 	 * @generated
 	 * @ordered
 	 */
-	protected Mapping mapping;
+	protected EList<AbstractDatum> producedDatums;
 
 	/**
-	 * The cached value of the '{@link #getProductions() <em>Productions</em>}' reference list.
+	 * The cached value of the '{@link #getReferredMapping() <em>Referred Mapping</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getProductions()
+	 * @see #getReferredMapping()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<AbstractDatum> productions;
+	protected Mapping referredMapping;
 
 	/**
-	 * The cached value of the '{@link #getRequisites() <em>Requisites</em>}' reference list.
+	 * The cached value of the '{@link #getRequiredDatums() <em>Required Datums</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getRequisites()
+	 * @see #getRequiredDatums()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<AbstractDatum> requisites;
+	protected EList<AbstractDatum> requiredDatums;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -104,16 +104,16 @@
 	 * @generated
 	 */
 	@Override
-	public Mapping getMapping() {
-		if (mapping != null && mapping.eIsProxy()) {
-			InternalEObject oldMapping = (InternalEObject)mapping;
-			mapping = (Mapping)eResolveProxy(oldMapping);
-			if (mapping != oldMapping) {
+	public Mapping getReferredMapping() {
+		if (referredMapping != null && referredMapping.eIsProxy()) {
+			InternalEObject oldReferredMapping = (InternalEObject)referredMapping;
+			referredMapping = (Mapping)eResolveProxy(oldReferredMapping);
+			if (referredMapping != oldReferredMapping) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.MAPPING_ACTION__MAPPING, oldMapping, mapping));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING, oldReferredMapping, referredMapping));
 			}
 		}
-		return mapping;
+		return referredMapping;
 	}
 
 	/**
@@ -121,8 +121,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Mapping basicGetMapping() {
-		return mapping;
+	public Mapping basicGetReferredMapping() {
+		return referredMapping;
 	}
 
 	/**
@@ -131,11 +131,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setMapping(Mapping newMapping) {
-		Mapping oldMapping = mapping;
-		mapping = newMapping;
+	public void setReferredMapping(Mapping newReferredMapping) {
+		Mapping oldReferredMapping = referredMapping;
+		referredMapping = newReferredMapping;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.MAPPING_ACTION__MAPPING, oldMapping, mapping));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING, oldReferredMapping, referredMapping));
 	}
 
 	/**
@@ -144,11 +144,11 @@
 	 * @generated
 	 */
 	@Override
-	public EList<AbstractDatum> getProductions() {
-		if (productions == null) {
-			productions = new EObjectWithInverseResolvingEList.ManyInverse<AbstractDatum>(AbstractDatum.class, this, QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS, QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY);
+	public EList<AbstractDatum> getRequiredDatums() {
+		if (requiredDatums == null) {
+			requiredDatums = new EObjectWithInverseResolvingEList.ManyInverse<AbstractDatum>(AbstractDatum.class, this, QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS, QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY_ACTIONS);
 		}
-		return productions;
+		return requiredDatums;
 	}
 
 	/**
@@ -157,21 +157,8 @@
 	 * @generated
 	 */
 	@Override
-	public EList<AbstractDatum> getRequisites() {
-		if (requisites == null) {
-			requisites = new EObjectWithInverseResolvingEList.ManyInverse<AbstractDatum>(AbstractDatum.class, this, QVTschedulePackage.MAPPING_ACTION__REQUISITES, QVTschedulePackage.ABSTRACT_DATUM__REQUIRED_BY);
-		}
-		return requisites;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ScheduleModel getScheduleModel() {
-		if (eContainerFeatureID() != QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL) return null;
+	public ScheduleModel getOwningScheduleModel() {
+		if (eContainerFeatureID() != QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL) return null;
 		return (ScheduleModel)eInternalContainer();
 	}
 
@@ -180,8 +167,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetScheduleModel(ScheduleModel newScheduleModel, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newScheduleModel, QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL, msgs);
+	public NotificationChain basicSetOwningScheduleModel(ScheduleModel newOwningScheduleModel, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningScheduleModel, QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL, msgs);
 		return msgs;
 	}
 
@@ -191,20 +178,33 @@
 	 * @generated
 	 */
 	@Override
-	public void setScheduleModel(ScheduleModel newScheduleModel) {
-		if (newScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL && newScheduleModel != null)) {
-			if (EcoreUtil.isAncestor(this, newScheduleModel))
+	public void setOwningScheduleModel(ScheduleModel newOwningScheduleModel) {
+		if (newOwningScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL && newOwningScheduleModel != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningScheduleModel))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newScheduleModel != null)
-				msgs = ((InternalEObject)newScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS, ScheduleModel.class, msgs);
-			msgs = basicSetScheduleModel(newScheduleModel, msgs);
+			if (newOwningScheduleModel != null)
+				msgs = ((InternalEObject)newOwningScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS, ScheduleModel.class, msgs);
+			msgs = basicSetOwningScheduleModel(newOwningScheduleModel, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL, newScheduleModel, newScheduleModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL, newOwningScheduleModel, newOwningScheduleModel));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<AbstractDatum> getProducedDatums() {
+		if (producedDatums == null) {
+			producedDatums = new EObjectWithInverseResolvingEList.ManyInverse<AbstractDatum>(AbstractDatum.class, this, QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS, QVTschedulePackage.ABSTRACT_DATUM__PRODUCED_BY_ACTIONS);
+		}
+		return producedDatums;
 	}
 
 	/**
@@ -216,14 +216,14 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getProductions()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRequisites()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetScheduleModel((ScheduleModel)otherEnd, msgs);
+				return basicSetOwningScheduleModel((ScheduleModel)otherEnd, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getProducedDatums()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRequiredDatums()).basicAdd(otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -236,12 +236,12 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				return ((InternalEList<?>)getProductions()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				return ((InternalEList<?>)getRequisites()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				return basicSetScheduleModel(null, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				return basicSetOwningScheduleModel(null, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				return ((InternalEList<?>)getProducedDatums()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				return ((InternalEList<?>)getRequiredDatums()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -254,8 +254,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS, ScheduleModel.class, msgs);
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS, ScheduleModel.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -268,15 +268,15 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__MAPPING:
-				if (resolve) return getMapping();
-				return basicGetMapping();
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				return getProductions();
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				return getRequisites();
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				return getScheduleModel();
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel();
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				return getProducedDatums();
+			case QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING:
+				if (resolve) return getReferredMapping();
+				return basicGetReferredMapping();
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				return getRequiredDatums();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -290,19 +290,19 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__MAPPING:
-				setMapping((Mapping)newValue);
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)newValue);
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				getProductions().clear();
-				getProductions().addAll((Collection<? extends AbstractDatum>)newValue);
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				getProducedDatums().clear();
+				getProducedDatums().addAll((Collection<? extends AbstractDatum>)newValue);
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				getRequisites().clear();
-				getRequisites().addAll((Collection<? extends AbstractDatum>)newValue);
+			case QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING:
+				setReferredMapping((Mapping)newValue);
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)newValue);
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				getRequiredDatums().clear();
+				getRequiredDatums().addAll((Collection<? extends AbstractDatum>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -316,17 +316,17 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__MAPPING:
-				setMapping((Mapping)null);
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)null);
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				getProductions().clear();
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				getProducedDatums().clear();
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				getRequisites().clear();
+			case QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING:
+				setReferredMapping((Mapping)null);
 				return;
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)null);
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				getRequiredDatums().clear();
 				return;
 		}
 		super.eUnset(featureID);
@@ -340,14 +340,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.MAPPING_ACTION__MAPPING:
-				return mapping != null;
-			case QVTschedulePackage.MAPPING_ACTION__PRODUCTIONS:
-				return productions != null && !productions.isEmpty();
-			case QVTschedulePackage.MAPPING_ACTION__REQUISITES:
-				return requisites != null && !requisites.isEmpty();
-			case QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL:
-				return getScheduleModel() != null;
+			case QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel() != null;
+			case QVTschedulePackage.MAPPING_ACTION__PRODUCED_DATUMS:
+				return producedDatums != null && !producedDatums.isEmpty();
+			case QVTschedulePackage.MAPPING_ACTION__REFERRED_MAPPING:
+				return referredMapping != null;
+			case QVTschedulePackage.MAPPING_ACTION__REQUIRED_DATUMS:
+				return requiredDatums != null && !requiredDatums.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -364,6 +364,6 @@
 
 	@Override
 	public String toString() {
-		return mapping.toString();
+		return referredMapping.toString();
 	}
 } //MappingActionImpl
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingRegionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingRegionImpl.java
index 3d2d4a3..e74ef31 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingRegionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/MappingRegionImpl.java
@@ -187,7 +187,7 @@
 		//	so we search for the least reachable nodes taking care to avoid hazards from the source-to-target / target-source asymmetry.
 		//
 		List<@NonNull Node> navigableNodes = new ArrayList<>();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			if (node.isPattern() && node.isMatched() && node.isClass() && !node.isExplicitNull() && !node.isOperation()) {	// Excludes, null, attributes, constants, operations
 				if (node.isLoaded() || node.isPredicated() || node.isSpeculated()) {
 					navigableNodes.add(node);
@@ -296,7 +296,7 @@
 		//	Check head node consistency
 		//
 		Set<@NonNull Node> debugHeadNodes = new HashSet<>();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			if (node.isTrue() || node.isDependency()) {
 				debugHeadNodes.add(node);
 				node.setHead();
@@ -422,7 +422,7 @@
 		//		Set<@NonNull Node> dependencyNodes = computeDependencyNodes(headNodes);
 		Set<@NonNull Node> deadNodes = null;
 		//
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			if (stronglyMatchedNodes.contains(node)) {
 				node.setUtility(Node.Utility.STRONGLY_MATCHED);
 				assert unconditionalNodes.contains(node);
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NavigationEdgeImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NavigationEdgeImpl.java
index 7ef1d12..0cdb936 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NavigationEdgeImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NavigationEdgeImpl.java
@@ -45,7 +45,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NavigationEdgeImpl#isPartial <em>Partial</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NavigationEdgeImpl#getProperty <em>Property</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NavigationEdgeImpl#getReferredProperty <em>Referred Property</em>}</li>
  * </ul>
  *
  * @generated
@@ -71,15 +71,14 @@
 	protected boolean partial = PARTIAL_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getProperty() <em>Property</em>}' reference.
+	 * The cached value of the '{@link #getReferredProperty() <em>Referred Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getProperty()
+	 * @see #getReferredProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected Property property;
-
+	protected Property referredProperty;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -128,16 +127,16 @@
 	 * @generated
 	 */
 	@Override
-	public Property getProperty() {
-		if (property != null && property.eIsProxy()) {
-			InternalEObject oldProperty = (InternalEObject)property;
-			property = (Property)eResolveProxy(oldProperty);
-			if (property != oldProperty) {
+	public Property getReferredProperty() {
+		if (referredProperty != null && referredProperty.eIsProxy()) {
+			InternalEObject oldReferredProperty = (InternalEObject)referredProperty;
+			referredProperty = (Property)eResolveProxy(oldReferredProperty);
+			if (referredProperty != oldReferredProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.NAVIGATION_EDGE__PROPERTY, oldProperty, property));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
 			}
 		}
-		return property;
+		return referredProperty;
 	}
 
 	/**
@@ -145,8 +144,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property basicGetProperty() {
-		return property;
+	public Property basicGetReferredProperty() {
+		return referredProperty;
 	}
 
 	/**
@@ -155,11 +154,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setProperty(Property newProperty) {
-		Property oldProperty = property;
-		property = newProperty;
+	public void setReferredProperty(Property newReferredProperty) {
+		Property oldReferredProperty = referredProperty;
+		referredProperty = newReferredProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.NAVIGATION_EDGE__PROPERTY, oldProperty, property));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
 	}
 
 	/**
@@ -172,9 +171,9 @@
 		switch (featureID) {
 			case QVTschedulePackage.NAVIGATION_EDGE__PARTIAL:
 				return isPartial();
-			case QVTschedulePackage.NAVIGATION_EDGE__PROPERTY:
-				if (resolve) return getProperty();
-				return basicGetProperty();
+			case QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY:
+				if (resolve) return getReferredProperty();
+				return basicGetReferredProperty();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -190,8 +189,8 @@
 			case QVTschedulePackage.NAVIGATION_EDGE__PARTIAL:
 				setPartial((Boolean)newValue);
 				return;
-			case QVTschedulePackage.NAVIGATION_EDGE__PROPERTY:
-				setProperty((Property)newValue);
+			case QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY:
+				setReferredProperty((Property)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -208,8 +207,8 @@
 			case QVTschedulePackage.NAVIGATION_EDGE__PARTIAL:
 				setPartial(PARTIAL_EDEFAULT);
 				return;
-			case QVTschedulePackage.NAVIGATION_EDGE__PROPERTY:
-				setProperty((Property)null);
+			case QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY:
+				setReferredProperty((Property)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -225,8 +224,8 @@
 		switch (featureID) {
 			case QVTschedulePackage.NAVIGATION_EDGE__PARTIAL:
 				return partial != PARTIAL_EDEFAULT;
-			case QVTschedulePackage.NAVIGATION_EDGE__PROPERTY:
-				return property != null;
+			case QVTschedulePackage.NAVIGATION_EDGE__REFERRED_PROPERTY:
+				return referredProperty != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -263,6 +262,11 @@
 		}
 	}
 
+	@Override
+	public Property getProperty() {
+		return getReferredProperty();
+	}
+
 	private void initializeIsPartial(@Nullable Boolean isPartial) {
 		boolean isComputedPartial = false;
 		Type propertyTargetType = PivotUtil.getType(QVTscheduleUtil.getProperty(this));
@@ -284,7 +288,7 @@
 
 	@Override
 	public void initializeProperty(@NonNull Property property, @Nullable Boolean isPartial) {
-		setProperty(property);
+		setReferredProperty(property);
 		Property target2sourceProperty = property.getOpposite();
 		if (target2sourceProperty != null)  {
 			Node targetNode2 = targetNode;
@@ -297,7 +301,7 @@
 					assert (edgeRole2 != null) && (sourceNode2 != null);
 					NavigationEdge reverseEdge = QVTscheduleFactory.eINSTANCE.createNavigationEdge();
 					reverseEdge.initialize(edgeRole2, targetNode2, target2sourceProperty.getName(), sourceNode2);
-					reverseEdge.setProperty(target2sourceProperty);
+					reverseEdge.setReferredProperty(target2sourceProperty);
 					((NavigationEdgeImpl)reverseEdge).initializeIsPartial(isPartial());
 					initializeOpposite(reverseEdge);
 				}
@@ -316,4 +320,5 @@
 		assert (sourceNode == null) || !sourceNode.isExplicitNull();
 		super.setSource(sourceNode);
 	}
+
 } //NavigationEdgeImpl
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeConnectionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeConnectionImpl.java
index 03d6005..fd34a43 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeConnectionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeConnectionImpl.java
@@ -243,7 +243,7 @@
 	public @Nullable Node basicGetSource(@NonNull Region sourceRegion) {
 		Node sourceNode = null;
 		for (@NonNull Node node : QVTscheduleUtil.getSourceEnds(this)) {
-			if (node.getRegion() == sourceRegion) {
+			if (node.getOwningRegion() == sourceRegion) {
 				assert sourceNode == null;
 				sourceNode = node;
 			}
@@ -386,7 +386,7 @@
 			return true;
 		}
 		for (@NonNull Node targetNode : targetEnd2role.keySet()) {
-			if (targetNode.getRegion() == targetRegion) {
+			if (targetNode.getOwningRegion() == targetRegion) {
 				ConnectionRole role = targetEnd2role.get(targetNode);
 				assert role != null;
 				if (role.isPassed()) {
@@ -424,7 +424,7 @@
 	@Override
 	public void removeTargetRegion(@NonNull Region targetRegion) {
 		for (@NonNull Node targetNode : Lists.newArrayList(getTargetNodes())) {
-			if (targetNode.getRegion() == targetRegion) {
+			if (targetNode.getOwningRegion() == targetRegion) {
 				targetNode.setIncomingConnection(null);
 				removeTarget(targetNode);
 			}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeImpl.java
index 25db64a..db66367 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/NodeImpl.java
@@ -69,7 +69,7 @@
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl#getNodeRole <em>Node Role</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl#getOutgoingConnections <em>Outgoing Connections</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl#getOutgoingEdges <em>Outgoing Edges</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.NodeImpl#getOwningRegion <em>Owning Region</em>}</li>
  * </ul>
  *
  * @generated
@@ -355,8 +355,8 @@
 	 * @generated
 	 */
 	@Override
-	public Region getRegion() {
-		if (eContainerFeatureID() != QVTschedulePackage.NODE__REGION) return null;
+	public Region getOwningRegion() {
+		if (eContainerFeatureID() != QVTschedulePackage.NODE__OWNING_REGION) return null;
 		return (Region)eInternalContainer();
 	}
 
@@ -365,8 +365,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetRegion(Region newRegion, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newRegion, QVTschedulePackage.NODE__REGION, msgs);
+	public NotificationChain basicSetOwningRegion(Region newOwningRegion, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningRegion, QVTschedulePackage.NODE__OWNING_REGION, msgs);
 		return msgs;
 	}
 
@@ -376,20 +376,20 @@
 	 * @generated
 	 */
 	@Override
-	public void setRegion(Region newRegion) {
-		if (newRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.NODE__REGION && newRegion != null)) {
-			if (EcoreUtil.isAncestor(this, newRegion))
+	public void setOwningRegion(Region newOwningRegion) {
+		if (newOwningRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.NODE__OWNING_REGION && newOwningRegion != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningRegion))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newRegion != null)
-				msgs = ((InternalEObject)newRegion).eInverseAdd(this, QVTschedulePackage.REGION__NODES, Region.class, msgs);
-			msgs = basicSetRegion(newRegion, msgs);
+			if (newOwningRegion != null)
+				msgs = ((InternalEObject)newOwningRegion).eInverseAdd(this, QVTschedulePackage.REGION__OWNED_NODES, Region.class, msgs);
+			msgs = basicSetOwningRegion(newOwningRegion, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.NODE__REGION, newRegion, newRegion));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.NODE__OWNING_REGION, newOwningRegion, newOwningRegion));
 	}
 
 	/**
@@ -416,8 +416,8 @@
 				return getOutgoingConnections();
 			case QVTschedulePackage.NODE__OUTGOING_EDGES:
 				return getOutgoingEdges();
-			case QVTschedulePackage.NODE__REGION:
-				return getRegion();
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				return getOwningRegion();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -455,8 +455,8 @@
 				getOutgoingEdges().clear();
 				getOutgoingEdges().addAll((Collection<? extends Edge>)newValue);
 				return;
-			case QVTschedulePackage.NODE__REGION:
-				setRegion((Region)newValue);
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				setOwningRegion((Region)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -491,8 +491,8 @@
 			case QVTschedulePackage.NODE__OUTGOING_EDGES:
 				getOutgoingEdges().clear();
 				return;
-			case QVTschedulePackage.NODE__REGION:
-				setRegion((Region)null);
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				setOwningRegion((Region)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -520,8 +520,8 @@
 				return outgoingConnections != null && !outgoingConnections.isEmpty();
 			case QVTschedulePackage.NODE__OUTGOING_EDGES:
 				return outgoingEdges != null && !outgoingEdges.isEmpty();
-			case QVTschedulePackage.NODE__REGION:
-				return getRegion() != null;
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				return getOwningRegion() != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -547,7 +547,7 @@
 	public void addTypedElement(@NonNull TypedElement typedElement) {
 		if (!typedElements.contains(typedElement)) {
 			typedElements.add(typedElement);
-			Region region2 = getRegion();
+			Region region2 = getOwningRegion();
 			assert region2 != null;
 			//			if (isPattern() && isMatched() && !isRealized() && (typedElements.size() == 1) && !region2.isOperationRegion()) {	// FIXME this is not a sound diagnosis
 			//				boolean isMatched = RegionUtil.isMatched(typedElement);
@@ -597,7 +597,7 @@
 
 	@Override
 	public void destroy() {
-		assert getRegion() != null;
+		assert getOwningRegion() != null;
 		//		region.removeNode(this);
 		Connection incomingConnection2 = incomingConnection;
 		if (incomingConnection2 != null) {
@@ -622,7 +622,7 @@
 	@Override
 	public void getAllAncestors(@NonNull Set<@NonNull Node> ancestors) {
 		if (ancestors.add(this)) {
-			Region region = QVTscheduleUtil.getRegion(this);
+			Region region = QVTscheduleUtil.getOwningRegion(this);
 			for (@NonNull Node headNode : QVTscheduleUtil.getHeadNodes(region)) {
 				for (@NonNull Node passedBindingSource : headNode.getPassedBindingSources()) {
 					passedBindingSource.getAllAncestors(ancestors);
@@ -674,7 +674,7 @@
 
 	@Override
 	public @NonNull String getDisplayName() {
-		Region region = getRegion();
+		Region region = getOwningRegion();
 		assert region != null;
 		return region.getName() + "::" + getName();
 	}
@@ -764,10 +764,10 @@
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncomingEdges()).basicAdd(otherEnd, msgs);
 			case QVTschedulePackage.NODE__OUTGOING_EDGES:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoingEdges()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.NODE__REGION:
+			case QVTschedulePackage.NODE__OWNING_REGION:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetRegion((Region)otherEnd, msgs);
+				return basicSetOwningRegion((Region)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -784,8 +784,8 @@
 				return ((InternalEList<?>)getIncomingEdges()).basicRemove(otherEnd, msgs);
 			case QVTschedulePackage.NODE__OUTGOING_EDGES:
 				return ((InternalEList<?>)getOutgoingEdges()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.NODE__REGION:
-				return basicSetRegion(null, msgs);
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				return basicSetOwningRegion(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -798,8 +798,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.NODE__REGION:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.REGION__NODES, Region.class, msgs);
+			case QVTschedulePackage.NODE__OWNING_REGION:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.REGION__OWNED_NODES, Region.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -901,7 +901,7 @@
 
 	//	@Override
 	public ScheduleModel getScheduleModel() {
-		Region region = getRegion();
+		Region region = getOwningRegion();
 		assert region != null;
 		return region.getScheduleModel();
 	}
@@ -959,7 +959,7 @@
 		assert name != null;
 		assert classDatum != null;
 		setNodeRole(nodeRole);
-		setRegion(region);
+		setOwningRegion(region);
 		setName(name);
 		setClassDatum(classDatum);
 		this.isDataType = classDatum.getCompleteClass().getPrimaryClass() instanceof DataType;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/OperationRegionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/OperationRegionImpl.java
index ec0cc2e..b992f5c 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/OperationRegionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/OperationRegionImpl.java
@@ -42,7 +42,7 @@
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getDependencyNodes <em>Dependency Nodes</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getHeadNodes <em>Head Nodes</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getOperation <em>Operation</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getReferredOperation <em>Referred Operation</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.OperationRegionImpl#getResultNode <em>Result Node</em>}</li>
  * </ul>
  *
@@ -86,15 +86,14 @@
 	 */
 	protected String name = NAME_EDEFAULT;
 	/**
-	 * The cached value of the '{@link #getOperation() <em>Operation</em>}' reference.
+	 * The cached value of the '{@link #getReferredOperation() <em>Referred Operation</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getOperation()
+	 * @see #getReferredOperation()
 	 * @generated
 	 * @ordered
 	 */
-	protected Operation operation;
-
+	protected Operation referredOperation;
 	/**
 	 * The cached value of the '{@link #getResultNode() <em>Result Node</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -179,16 +178,16 @@
 	 * @generated
 	 */
 	@Override
-	public Operation getOperation() {
-		if (operation != null && operation.eIsProxy()) {
-			InternalEObject oldOperation = (InternalEObject)operation;
-			operation = (Operation)eResolveProxy(oldOperation);
-			if (operation != oldOperation) {
+	public Operation getReferredOperation() {
+		if (referredOperation != null && referredOperation.eIsProxy()) {
+			InternalEObject oldReferredOperation = (InternalEObject)referredOperation;
+			referredOperation = (Operation)eResolveProxy(oldReferredOperation);
+			if (referredOperation != oldReferredOperation) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.OPERATION_REGION__OPERATION, oldOperation, operation));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION, oldReferredOperation, referredOperation));
 			}
 		}
-		return operation;
+		return referredOperation;
 	}
 
 	/**
@@ -196,8 +195,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Operation basicGetOperation() {
-		return operation;
+	public Operation basicGetReferredOperation() {
+		return referredOperation;
 	}
 
 	/**
@@ -206,11 +205,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setOperation(Operation newOperation) {
-		Operation oldOperation = operation;
-		operation = newOperation;
+	public void setReferredOperation(Operation newReferredOperation) {
+		Operation oldReferredOperation = referredOperation;
+		referredOperation = newReferredOperation;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.OPERATION_REGION__OPERATION, oldOperation, operation));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION, oldReferredOperation, referredOperation));
 	}
 
 	/**
@@ -267,9 +266,9 @@
 				return getHeadNodes();
 			case QVTschedulePackage.OPERATION_REGION__NAME:
 				return getName();
-			case QVTschedulePackage.OPERATION_REGION__OPERATION:
-				if (resolve) return getOperation();
-				return basicGetOperation();
+			case QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION:
+				if (resolve) return getReferredOperation();
+				return basicGetReferredOperation();
 			case QVTschedulePackage.OPERATION_REGION__RESULT_NODE:
 				if (resolve) return getResultNode();
 				return basicGetResultNode();
@@ -297,8 +296,8 @@
 			case QVTschedulePackage.OPERATION_REGION__NAME:
 				setName((String)newValue);
 				return;
-			case QVTschedulePackage.OPERATION_REGION__OPERATION:
-				setOperation((Operation)newValue);
+			case QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION:
+				setReferredOperation((Operation)newValue);
 				return;
 			case QVTschedulePackage.OPERATION_REGION__RESULT_NODE:
 				setResultNode((Node)newValue);
@@ -324,8 +323,8 @@
 			case QVTschedulePackage.OPERATION_REGION__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case QVTschedulePackage.OPERATION_REGION__OPERATION:
-				setOperation((Operation)null);
+			case QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION:
+				setReferredOperation((Operation)null);
 				return;
 			case QVTschedulePackage.OPERATION_REGION__RESULT_NODE:
 				setResultNode((Node)null);
@@ -348,8 +347,8 @@
 				return headNodes != null && !headNodes.isEmpty();
 			case QVTschedulePackage.OPERATION_REGION__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case QVTschedulePackage.OPERATION_REGION__OPERATION:
-				return operation != null;
+			case QVTschedulePackage.OPERATION_REGION__REFERRED_OPERATION:
+				return referredOperation != null;
 			case QVTschedulePackage.OPERATION_REGION__RESULT_NODE:
 				return resultNode != null;
 		}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/PropertyDatumImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/PropertyDatumImpl.java
index 732795b..9fafa17 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/PropertyDatumImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/PropertyDatumImpl.java
@@ -38,26 +38,16 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getProperty <em>Property</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getClassDatum <em>Class Datum</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getOpposite <em>Opposite</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getSuper <em>Super</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getOwningClassDatum <em>Owning Class Datum</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getReferredProperty <em>Referred Property</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.PropertyDatumImpl#getSuperPropertyDatums <em>Super Property Datums</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class PropertyDatumImpl extends AbstractDatumImpl implements PropertyDatum {
 	/**
-	 * The cached value of the '{@link #getProperty() <em>Property</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getProperty()
-	 * @generated
-	 * @ordered
-	 */
-	protected Property property;
-
-	/**
 	 * The cached value of the '{@link #getOpposite() <em>Opposite</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -68,14 +58,24 @@
 	protected PropertyDatum opposite;
 
 	/**
-	 * The cached value of the '{@link #getSuper() <em>Super</em>}' reference list.
+	 * The cached value of the '{@link #getReferredProperty() <em>Referred Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getSuper()
+	 * @see #getReferredProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<PropertyDatum> super_;
+	protected Property referredProperty;
+
+	/**
+	 * The cached value of the '{@link #getSuperPropertyDatums() <em>Super Property Datums</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSuperPropertyDatums()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<PropertyDatum> superPropertyDatums;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -102,89 +102,6 @@
 	 * @generated
 	 */
 	@Override
-	public Property getProperty() {
-		if (property != null && property.eIsProxy()) {
-			InternalEObject oldProperty = (InternalEObject)property;
-			property = (Property)eResolveProxy(oldProperty);
-			if (property != oldProperty) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.PROPERTY_DATUM__PROPERTY, oldProperty, property));
-			}
-		}
-		return property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Property basicGetProperty() {
-		return property;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setProperty(Property newProperty) {
-		Property oldProperty = property;
-		property = newProperty;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.PROPERTY_DATUM__PROPERTY, oldProperty, property));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ClassDatum getClassDatum() {
-		if (eContainerFeatureID() != QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM) return null;
-		return (ClassDatum)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetClassDatum(ClassDatum newClassDatum, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newClassDatum, QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setClassDatum(ClassDatum newClassDatum) {
-		if (newClassDatum != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM && newClassDatum != null)) {
-			if (EcoreUtil.isAncestor(this, newClassDatum))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newClassDatum != null)
-				msgs = ((InternalEObject)newClassDatum).eInverseAdd(this, QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS, ClassDatum.class, msgs);
-			msgs = basicSetClassDatum(newClassDatum, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM, newClassDatum, newClassDatum));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public PropertyDatum getOpposite() {
 		if (opposite != null && opposite.eIsProxy()) {
 			InternalEObject oldOpposite = (InternalEObject)opposite;
@@ -225,11 +142,94 @@
 	 * @generated
 	 */
 	@Override
-	public EList<PropertyDatum> getSuper() {
-		if (super_ == null) {
-			super_ = new EObjectResolvingEList<PropertyDatum>(PropertyDatum.class, this, QVTschedulePackage.PROPERTY_DATUM__SUPER);
+	public ClassDatum getOwningClassDatum() {
+		if (eContainerFeatureID() != QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM) return null;
+		return (ClassDatum)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetOwningClassDatum(ClassDatum newOwningClassDatum, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningClassDatum, QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setOwningClassDatum(ClassDatum newOwningClassDatum) {
+		if (newOwningClassDatum != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM && newOwningClassDatum != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningClassDatum))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newOwningClassDatum != null)
+				msgs = ((InternalEObject)newOwningClassDatum).eInverseAdd(this, QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS, ClassDatum.class, msgs);
+			msgs = basicSetOwningClassDatum(newOwningClassDatum, msgs);
+			if (msgs != null) msgs.dispatch();
 		}
-		return super_;
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM, newOwningClassDatum, newOwningClassDatum));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Property getReferredProperty() {
+		if (referredProperty != null && referredProperty.eIsProxy()) {
+			InternalEObject oldReferredProperty = (InternalEObject)referredProperty;
+			referredProperty = (Property)eResolveProxy(oldReferredProperty);
+			if (referredProperty != oldReferredProperty) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
+			}
+		}
+		return referredProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Property basicGetReferredProperty() {
+		return referredProperty;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setReferredProperty(Property newReferredProperty) {
+		Property oldReferredProperty = referredProperty;
+		referredProperty = newReferredProperty;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY, oldReferredProperty, referredProperty));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<PropertyDatum> getSuperPropertyDatums() {
+		if (superPropertyDatums == null) {
+			superPropertyDatums = new EObjectResolvingEList<PropertyDatum>(PropertyDatum.class, this, QVTschedulePackage.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS);
+		}
+		return superPropertyDatums;
 	}
 
 	/**
@@ -240,10 +240,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetClassDatum((ClassDatum)otherEnd, msgs);
+				return basicSetOwningClassDatum((ClassDatum)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -256,8 +256,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				return basicSetClassDatum(null, msgs);
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				return basicSetOwningClassDatum(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -270,8 +270,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.CLASS_DATUM__PROPERTY_DATUMS, ClassDatum.class, msgs);
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.CLASS_DATUM__OWNING_PROPERTY_DATUMS, ClassDatum.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -284,16 +284,16 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__PROPERTY:
-				if (resolve) return getProperty();
-				return basicGetProperty();
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				return getClassDatum();
 			case QVTschedulePackage.PROPERTY_DATUM__OPPOSITE:
 				if (resolve) return getOpposite();
 				return basicGetOpposite();
-			case QVTschedulePackage.PROPERTY_DATUM__SUPER:
-				return getSuper();
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				return getOwningClassDatum();
+			case QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY:
+				if (resolve) return getReferredProperty();
+				return basicGetReferredProperty();
+			case QVTschedulePackage.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS:
+				return getSuperPropertyDatums();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -307,18 +307,18 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__PROPERTY:
-				setProperty((Property)newValue);
-				return;
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				setClassDatum((ClassDatum)newValue);
-				return;
 			case QVTschedulePackage.PROPERTY_DATUM__OPPOSITE:
 				setOpposite((PropertyDatum)newValue);
 				return;
-			case QVTschedulePackage.PROPERTY_DATUM__SUPER:
-				getSuper().clear();
-				getSuper().addAll((Collection<? extends PropertyDatum>)newValue);
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				setOwningClassDatum((ClassDatum)newValue);
+				return;
+			case QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY:
+				setReferredProperty((Property)newValue);
+				return;
+			case QVTschedulePackage.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS:
+				getSuperPropertyDatums().clear();
+				getSuperPropertyDatums().addAll((Collection<? extends PropertyDatum>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -332,17 +332,17 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__PROPERTY:
-				setProperty((Property)null);
-				return;
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				setClassDatum((ClassDatum)null);
-				return;
 			case QVTschedulePackage.PROPERTY_DATUM__OPPOSITE:
 				setOpposite((PropertyDatum)null);
 				return;
-			case QVTschedulePackage.PROPERTY_DATUM__SUPER:
-				getSuper().clear();
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				setOwningClassDatum((ClassDatum)null);
+				return;
+			case QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY:
+				setReferredProperty((Property)null);
+				return;
+			case QVTschedulePackage.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS:
+				getSuperPropertyDatums().clear();
 				return;
 		}
 		super.eUnset(featureID);
@@ -356,14 +356,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.PROPERTY_DATUM__PROPERTY:
-				return property != null;
-			case QVTschedulePackage.PROPERTY_DATUM__CLASS_DATUM:
-				return getClassDatum() != null;
 			case QVTschedulePackage.PROPERTY_DATUM__OPPOSITE:
 				return opposite != null;
-			case QVTschedulePackage.PROPERTY_DATUM__SUPER:
-				return super_ != null && !super_.isEmpty();
+			case QVTschedulePackage.PROPERTY_DATUM__OWNING_CLASS_DATUM:
+				return getOwningClassDatum() != null;
+			case QVTschedulePackage.PROPERTY_DATUM__REFERRED_PROPERTY:
+				return referredProperty != null;
+			case QVTschedulePackage.PROPERTY_DATUM__SUPER_PROPERTY_DATUMS:
+				return superPropertyDatums != null && !superPropertyDatums.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -380,7 +380,7 @@
 
 	@Override
 	public String toString() {
-		return String.valueOf(getClassDatum()) + "::" + (property != null ? property.getName() : "<null>");
+		return String.valueOf(getOwningClassDatum()) + "::" + (referredProperty != null ? referredProperty.getName() : "<null>");
 	}
 
 } //PropertyDatumImpl
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/QVTschedulePackageImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/QVTschedulePackageImpl.java
index 470058d..6df27fc 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/QVTschedulePackageImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/QVTschedulePackageImpl.java
@@ -24,9 +24,6 @@
 import org.eclipse.emf.ecore.impl.EPackageImpl;
 import org.eclipse.ocl.pivot.PivotPackage;
 import org.eclipse.qvtd.pivot.qvtbase.QVTbasePackage;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable;
 import org.eclipse.qvtd.pivot.qvtcore.QVTcorePackage;
 import org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage;
 import org.eclipse.qvtd.pivot.qvtschedule.AbstractDatum;
@@ -212,27 +209,6 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass graphEdgeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass graphNodeEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	private EClass toDOTableEClass = null;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
 	private EEnum connectionRoleEEnum = null;
 
 	/**
@@ -431,7 +407,7 @@
 
 	/**
 	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-	 * 
+	 *
 	 * <p>This method is used to initialize {@link QVTschedulePackage#eINSTANCE} when that field is accessed.
 	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
 	 * <!-- begin-user-doc -->
@@ -462,7 +438,7 @@
 		// Mark meta-data to indicate it can't be changed
 		theQVTschedulePackage.freeze();
 
-  
+
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(QVTschedulePackage.eNS_URI, theQVTschedulePackage);
 		return theQVTschedulePackage;
@@ -484,7 +460,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getAbstractDatum_ProducedBy() {
+	public EReference getAbstractDatum_ProducedByActions() {
 		return (EReference)abstractDatumEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -494,7 +470,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getAbstractDatum_RequiredBy() {
+	public EReference getAbstractDatum_ReferredTypedModel() {
 		return (EReference)abstractDatumEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -504,7 +480,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getAbstractDatum_TypedModel() {
+	public EReference getAbstractDatum_RequiredByActions() {
 		return (EReference)abstractDatumEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -524,8 +500,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getBasicMappingRegion_Mapping() {
-		return (EReference)basicMappingRegionEClass.getEStructuralFeatures().get(0);
+	public EAttribute getBasicMappingRegion_Name() {
+		return (EAttribute)basicMappingRegionEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -534,8 +510,8 @@
 	 * @generated
 	 */
 	@Override
-	public EAttribute getBasicMappingRegion_Name() {
-		return (EAttribute)basicMappingRegionEClass.getEStructuralFeatures().get(1);
+	public EReference getBasicMappingRegion_ReferredMapping() {
+		return (EReference)basicMappingRegionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -564,7 +540,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCastEdge_PrimaryClass() {
+	public EReference getCastEdge_ReferredClass() {
 		return (EReference)castEdgeEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -594,7 +570,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getClassDatum_PrimaryClass() {
+	public EReference getClassDatum_OwningPropertyDatums() {
 		return (EReference)classDatumEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -604,7 +580,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getClassDatum_PropertyDatums() {
+	public EReference getClassDatum_OwningScheduleModel() {
 		return (EReference)classDatumEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -614,7 +590,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getClassDatum_ScheduleModel() {
+	public EReference getClassDatum_ReferredClass() {
 		return (EReference)classDatumEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -654,7 +630,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getConnection_Region() {
+	public EReference getConnection_OwningScheduledRegion() {
 		return (EReference)connectionEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -754,7 +730,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getEdge_Region() {
+	public EReference getEdge_OwningRegion() {
 		return (EReference)edgeEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -794,7 +770,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getEdgeConnection_Property() {
+	public EReference getEdgeConnection_ReferredProperty() {
 		return (EReference)edgeConnectionEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -834,7 +810,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduleModel_ScheduledRegion() {
+	public EReference getScheduleModel_OwnedClassDatums() {
 		return (EReference)scheduleModelEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -844,7 +820,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduleModel_ClassDatums() {
+	public EReference getScheduleModel_OwnedMappingActions() {
 		return (EReference)scheduleModelEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -854,7 +830,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduleModel_OtherMappingRegions() {
+	public EReference getScheduleModel_OwnedOtherMappingRegions() {
 		return (EReference)scheduleModelEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -864,7 +840,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduleModel_MappingActions() {
+	public EReference getScheduleModel_OwnedScheduledRegion() {
 		return (EReference)scheduleModelEClass.getEStructuralFeatures().get(4);
 	}
 
@@ -885,7 +861,7 @@
 	 */
 	@Override
 	public EAttribute getScheduledRegion_Name() {
-		return (EAttribute)scheduledRegionEClass.getEStructuralFeatures().get(1);
+		return (EAttribute)scheduledRegionEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -894,8 +870,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduledRegion_Connections() {
-		return (EReference)scheduledRegionEClass.getEStructuralFeatures().get(0);
+	public EReference getScheduledRegion_OwnedConnections() {
+		return (EReference)scheduledRegionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -904,7 +880,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduledRegion_Regions() {
+	public EReference getScheduledRegion_OwnedRegions() {
 		return (EReference)scheduledRegionEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -914,7 +890,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getScheduledRegion_ScheduleModel() {
+	public EReference getScheduledRegion_OwningScheduleModel() {
 		return (EReference)scheduledRegionEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -974,7 +950,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getVariableNode_Variable() {
+	public EReference getVariableNode_ReferredVariable() {
 		return (EReference)variableNodeEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -994,36 +970,6 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getGraphEdge() {
-		return graphEdgeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EClass getGraphNode() {
-		return graphNodeEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EClass getToDOTable() {
-		return toDOTableEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EEnum getConnectionRole() {
 		return connectionRoleEEnum;
 	}
@@ -1104,27 +1050,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getMappingAction_Mapping() {
-		return (EReference)mappingActionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EReference getMappingAction_Productions() {
-		return (EReference)mappingActionEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EReference getMappingAction_Requisites() {
+	public EReference getMappingAction_ReferredMapping() {
 		return (EReference)mappingActionEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -1134,7 +1060,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getMappingAction_ScheduleModel() {
+	public EReference getMappingAction_RequiredDatums() {
 		return (EReference)mappingActionEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -1144,6 +1070,26 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getMappingAction_OwningScheduleModel() {
+		return (EReference)mappingActionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getMappingAction_ProducedDatums() {
+		return (EReference)mappingActionEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getMappingRegion() {
 		return mappingRegionEClass;
 	}
@@ -1294,7 +1240,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getNavigationEdge_Property() {
+	public EReference getNavigationEdge_ReferredProperty() {
 		return (EReference)navigationEdgeEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -1384,7 +1330,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getNode_Region() {
+	public EReference getNode_OwningRegion() {
 		return (EReference)nodeEClass.getEStructuralFeatures().get(7);
 	}
 
@@ -1494,7 +1440,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getOperationRegion_Operation() {
+	public EReference getOperationRegion_ReferredOperation() {
 		return (EReference)operationRegionEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -1574,7 +1520,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getPropertyDatum_Property() {
+	public EReference getPropertyDatum_Opposite() {
 		return (EReference)propertyDatumEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -1584,7 +1530,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getPropertyDatum_ClassDatum() {
+	public EReference getPropertyDatum_OwningClassDatum() {
 		return (EReference)propertyDatumEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -1594,7 +1540,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getPropertyDatum_Opposite() {
+	public EReference getPropertyDatum_ReferredProperty() {
 		return (EReference)propertyDatumEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -1604,7 +1550,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getPropertyDatum_Super() {
+	public EReference getPropertyDatum_SuperPropertyDatums() {
 		return (EReference)propertyDatumEClass.getEStructuralFeatures().get(3);
 	}
 
@@ -1644,27 +1590,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRegion_Edges() {
-		return (EReference)regionEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EReference getRegion_InvokingRegion() {
-		return (EReference)regionEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EReference getRegion_Nodes() {
+	public EReference getRegion_OwningScheduledRegion() {
 		return (EReference)regionEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -1674,8 +1600,18 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRegion_Region() {
-		return (EReference)regionEClass.getEStructuralFeatures().get(3);
+	public EReference getRegion_OwnedEdges() {
+		return (EReference)regionEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getRegion_OwnedNodes() {
+		return (EReference)regionEClass.getEStructuralFeatures().get(1);
 	}
 
 	/**
@@ -1708,29 +1644,29 @@
 
 		// Create classes and their features
 		abstractDatumEClass = createEClass(ABSTRACT_DATUM);
-		createEReference(abstractDatumEClass, ABSTRACT_DATUM__PRODUCED_BY);
-		createEReference(abstractDatumEClass, ABSTRACT_DATUM__REQUIRED_BY);
-		createEReference(abstractDatumEClass, ABSTRACT_DATUM__TYPED_MODEL);
+		createEReference(abstractDatumEClass, ABSTRACT_DATUM__PRODUCED_BY_ACTIONS);
+		createEReference(abstractDatumEClass, ABSTRACT_DATUM__REFERRED_TYPED_MODEL);
+		createEReference(abstractDatumEClass, ABSTRACT_DATUM__REQUIRED_BY_ACTIONS);
 
 		basicMappingRegionEClass = createEClass(BASIC_MAPPING_REGION);
-		createEReference(basicMappingRegionEClass, BASIC_MAPPING_REGION__MAPPING);
 		createEAttribute(basicMappingRegionEClass, BASIC_MAPPING_REGION__NAME);
+		createEReference(basicMappingRegionEClass, BASIC_MAPPING_REGION__REFERRED_MAPPING);
 
 		castEdgeEClass = createEClass(CAST_EDGE);
 		createEReference(castEdgeEClass, CAST_EDGE__PROPERTY);
-		createEReference(castEdgeEClass, CAST_EDGE__PRIMARY_CLASS);
+		createEReference(castEdgeEClass, CAST_EDGE__REFERRED_CLASS);
 
 		classDatumEClass = createEClass(CLASS_DATUM);
 		createEReference(classDatumEClass, CLASS_DATUM__COMPLETE_CLASS);
-		createEReference(classDatumEClass, CLASS_DATUM__PRIMARY_CLASS);
-		createEReference(classDatumEClass, CLASS_DATUM__PROPERTY_DATUMS);
-		createEReference(classDatumEClass, CLASS_DATUM__SCHEDULE_MODEL);
+		createEReference(classDatumEClass, CLASS_DATUM__OWNING_PROPERTY_DATUMS);
+		createEReference(classDatumEClass, CLASS_DATUM__OWNING_SCHEDULE_MODEL);
+		createEReference(classDatumEClass, CLASS_DATUM__REFERRED_CLASS);
 		createEReference(classDatumEClass, CLASS_DATUM__SUPER_CLASS_DATUMS);
 
 		composedNodeEClass = createEClass(COMPOSED_NODE);
 
 		connectionEClass = createEClass(CONNECTION);
-		createEReference(connectionEClass, CONNECTION__REGION);
+		createEReference(connectionEClass, CONNECTION__OWNING_SCHEDULED_REGION);
 
 		connectionEndEClass = createEClass(CONNECTION_END);
 
@@ -1744,12 +1680,12 @@
 		edgeEClass = createEClass(EDGE);
 		createEAttribute(edgeEClass, EDGE__EDGE_ROLE);
 		createEAttribute(edgeEClass, EDGE__NAME);
-		createEReference(edgeEClass, EDGE__REGION);
+		createEReference(edgeEClass, EDGE__OWNING_REGION);
 		createEReference(edgeEClass, EDGE__SOURCE_NODE);
 		createEReference(edgeEClass, EDGE__TARGET_NODE);
 
 		edgeConnectionEClass = createEClass(EDGE_CONNECTION);
-		createEReference(edgeConnectionEClass, EDGE_CONNECTION__PROPERTY);
+		createEReference(edgeConnectionEClass, EDGE_CONNECTION__REFERRED_PROPERTY);
 
 		errorNodeEClass = createEClass(ERROR_NODE);
 
@@ -1764,10 +1700,10 @@
 		loadingRegionEClass = createEClass(LOADING_REGION);
 
 		mappingActionEClass = createEClass(MAPPING_ACTION);
-		createEReference(mappingActionEClass, MAPPING_ACTION__MAPPING);
-		createEReference(mappingActionEClass, MAPPING_ACTION__PRODUCTIONS);
-		createEReference(mappingActionEClass, MAPPING_ACTION__REQUISITES);
-		createEReference(mappingActionEClass, MAPPING_ACTION__SCHEDULE_MODEL);
+		createEReference(mappingActionEClass, MAPPING_ACTION__OWNING_SCHEDULE_MODEL);
+		createEReference(mappingActionEClass, MAPPING_ACTION__PRODUCED_DATUMS);
+		createEReference(mappingActionEClass, MAPPING_ACTION__REFERRED_MAPPING);
+		createEReference(mappingActionEClass, MAPPING_ACTION__REQUIRED_DATUMS);
 
 		mappingRegionEClass = createEClass(MAPPING_REGION);
 
@@ -1788,7 +1724,7 @@
 
 		navigationEdgeEClass = createEClass(NAVIGATION_EDGE);
 		createEAttribute(navigationEdgeEClass, NAVIGATION_EDGE__PARTIAL);
-		createEReference(navigationEdgeEClass, NAVIGATION_EDGE__PROPERTY);
+		createEReference(navigationEdgeEClass, NAVIGATION_EDGE__REFERRED_PROPERTY);
 
 		nodeEClass = createEClass(NODE);
 		createEReference(nodeEClass, NODE__CLASS_DATUM);
@@ -1798,7 +1734,7 @@
 		createEAttribute(nodeEClass, NODE__NODE_ROLE);
 		createEReference(nodeEClass, NODE__OUTGOING_CONNECTIONS);
 		createEReference(nodeEClass, NODE__OUTGOING_EDGES);
-		createEReference(nodeEClass, NODE__REGION);
+		createEReference(nodeEClass, NODE__OWNING_REGION);
 
 		nodeConnectionEClass = createEClass(NODE_CONNECTION);
 		createEReference(nodeConnectionEClass, NODE_CONNECTION__CLASS_DATUM);
@@ -1813,7 +1749,7 @@
 		createEReference(operationRegionEClass, OPERATION_REGION__DEPENDENCY_NODES);
 		createEReference(operationRegionEClass, OPERATION_REGION__HEAD_NODES);
 		createEAttribute(operationRegionEClass, OPERATION_REGION__NAME);
-		createEReference(operationRegionEClass, OPERATION_REGION__OPERATION);
+		createEReference(operationRegionEClass, OPERATION_REGION__REFERRED_OPERATION);
 		createEReference(operationRegionEClass, OPERATION_REGION__RESULT_NODE);
 
 		patternTypedNodeEClass = createEClass(PATTERN_TYPED_NODE);
@@ -1825,32 +1761,31 @@
 		predicateEdgeEClass = createEClass(PREDICATE_EDGE);
 
 		propertyDatumEClass = createEClass(PROPERTY_DATUM);
-		createEReference(propertyDatumEClass, PROPERTY_DATUM__PROPERTY);
-		createEReference(propertyDatumEClass, PROPERTY_DATUM__CLASS_DATUM);
 		createEReference(propertyDatumEClass, PROPERTY_DATUM__OPPOSITE);
-		createEReference(propertyDatumEClass, PROPERTY_DATUM__SUPER);
+		createEReference(propertyDatumEClass, PROPERTY_DATUM__OWNING_CLASS_DATUM);
+		createEReference(propertyDatumEClass, PROPERTY_DATUM__REFERRED_PROPERTY);
+		createEReference(propertyDatumEClass, PROPERTY_DATUM__SUPER_PROPERTY_DATUMS);
 
 		recursionEdgeEClass = createEClass(RECURSION_EDGE);
 		createEAttribute(recursionEdgeEClass, RECURSION_EDGE__PRIMARY);
 
 		regionEClass = createEClass(REGION);
-		createEReference(regionEClass, REGION__EDGES);
-		createEReference(regionEClass, REGION__INVOKING_REGION);
-		createEReference(regionEClass, REGION__NODES);
-		createEReference(regionEClass, REGION__REGION);
+		createEReference(regionEClass, REGION__OWNED_EDGES);
+		createEReference(regionEClass, REGION__OWNED_NODES);
+		createEReference(regionEClass, REGION__OWNING_SCHEDULED_REGION);
 
 		scheduleModelEClass = createEClass(SCHEDULE_MODEL);
 		createEReference(scheduleModelEClass, SCHEDULE_MODEL__LOADING_REGION);
-		createEReference(scheduleModelEClass, SCHEDULE_MODEL__SCHEDULED_REGION);
-		createEReference(scheduleModelEClass, SCHEDULE_MODEL__CLASS_DATUMS);
-		createEReference(scheduleModelEClass, SCHEDULE_MODEL__OTHER_MAPPING_REGIONS);
-		createEReference(scheduleModelEClass, SCHEDULE_MODEL__MAPPING_ACTIONS);
+		createEReference(scheduleModelEClass, SCHEDULE_MODEL__OWNED_CLASS_DATUMS);
+		createEReference(scheduleModelEClass, SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS);
+		createEReference(scheduleModelEClass, SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS);
+		createEReference(scheduleModelEClass, SCHEDULE_MODEL__OWNED_SCHEDULED_REGION);
 
 		scheduledRegionEClass = createEClass(SCHEDULED_REGION);
-		createEReference(scheduledRegionEClass, SCHEDULED_REGION__CONNECTIONS);
 		createEAttribute(scheduledRegionEClass, SCHEDULED_REGION__NAME);
-		createEReference(scheduledRegionEClass, SCHEDULED_REGION__REGIONS);
-		createEReference(scheduledRegionEClass, SCHEDULED_REGION__SCHEDULE_MODEL);
+		createEReference(scheduledRegionEClass, SCHEDULED_REGION__OWNED_CONNECTIONS);
+		createEReference(scheduledRegionEClass, SCHEDULED_REGION__OWNED_REGIONS);
+		createEReference(scheduledRegionEClass, SCHEDULED_REGION__OWNING_SCHEDULE_MODEL);
 
 		symbolableEClass = createEClass(SYMBOLABLE);
 		createEAttribute(symbolableEClass, SYMBOLABLE__SYMBOL_NAME);
@@ -1860,16 +1795,10 @@
 		unknownNodeEClass = createEClass(UNKNOWN_NODE);
 
 		variableNodeEClass = createEClass(VARIABLE_NODE);
-		createEReference(variableNodeEClass, VARIABLE_NODE__VARIABLE);
+		createEReference(variableNodeEClass, VARIABLE_NODE__REFERRED_VARIABLE);
 
 		domainUsageEClass = createEClass(DOMAIN_USAGE);
 
-		graphEdgeEClass = createEClass(GRAPH_EDGE);
-
-		graphNodeEClass = createEClass(GRAPH_NODE);
-
-		toDOTableEClass = createEClass(TO_DO_TABLE);
-
 		// Create enums
 		connectionRoleEEnum = createEEnum(CONNECTION_ROLE);
 		roleEEnum = createEEnum(ROLE);
@@ -1920,11 +1849,8 @@
 		connectionEClass.getESuperTypes().add(thePivotPackage.getNameable());
 		connectionEClass.getESuperTypes().add(this.getSymbolable());
 		datumConnectionEClass.getESuperTypes().add(this.getConnection());
-		datumConnectionEClass.getESuperTypes().add(this.getGraphEdge());
-		datumConnectionEClass.getESuperTypes().add(this.getGraphNode());
 		dependencyNodeEClass.getESuperTypes().add(this.getNode());
 		edgeEClass.getESuperTypes().add(thePivotPackage.getElement());
-		edgeEClass.getESuperTypes().add(this.getGraphEdge());
 		edgeEClass.getESuperTypes().add(thePivotPackage.getNameable());
 		g1 = createEGenericType(this.getDatumConnection());
 		EGenericType g2 = createEGenericType(this.getNavigableEdge());
@@ -1945,7 +1871,6 @@
 		navigationEdgeEClass.getESuperTypes().add(this.getNavigableEdge());
 		nodeEClass.getESuperTypes().add(thePivotPackage.getElement());
 		nodeEClass.getESuperTypes().add(this.getConnectionEnd());
-		nodeEClass.getESuperTypes().add(this.getGraphNode());
 		nodeEClass.getESuperTypes().add(thePivotPackage.getNameable());
 		g1 = createEGenericType(this.getDatumConnection());
 		g2 = createEGenericType(this.getNode());
@@ -1960,10 +1885,8 @@
 		propertyDatumEClass.getESuperTypes().add(this.getAbstractDatum());
 		recursionEdgeEClass.getESuperTypes().add(this.getEdge());
 		regionEClass.getESuperTypes().add(thePivotPackage.getElement());
-		regionEClass.getESuperTypes().add(this.getGraphNode());
 		regionEClass.getESuperTypes().add(thePivotPackage.getNameable());
 		regionEClass.getESuperTypes().add(this.getSymbolable());
-		regionEClass.getESuperTypes().add(this.getToDOTable());
 		scheduleModelEClass.getESuperTypes().add(thePivotPackage.getModel());
 		scheduledRegionEClass.getESuperTypes().add(this.getRegion());
 		trueNodeEClass.getESuperTypes().add(this.getNode());
@@ -1972,29 +1895,29 @@
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(abstractDatumEClass, AbstractDatum.class, "AbstractDatum", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getAbstractDatum_ProducedBy(), this.getMappingAction(), this.getMappingAction_Productions(), "producedBy", null, 0, -1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getAbstractDatum_RequiredBy(), this.getMappingAction(), this.getMappingAction_Requisites(), "requiredBy", null, 0, -1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getAbstractDatum_TypedModel(), theQVTbasePackage.getTypedModel(), null, "typedModel", null, 1, 1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAbstractDatum_ProducedByActions(), this.getMappingAction(), this.getMappingAction_ProducedDatums(), "producedByActions", null, 0, -1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAbstractDatum_ReferredTypedModel(), theQVTbasePackage.getTypedModel(), null, "referredTypedModel", null, 1, 1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getAbstractDatum_RequiredByActions(), this.getMappingAction(), this.getMappingAction_RequiredDatums(), "requiredByActions", null, 0, -1, AbstractDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
 		initEClass(basicMappingRegionEClass, BasicMappingRegion.class, "BasicMappingRegion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getBasicMappingRegion_Mapping(), theQVTcorePackage.getMapping(), null, "mapping", null, 1, 1, BasicMappingRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getBasicMappingRegion_Name(), ecorePackage.getEString(), "name", null, 1, 1, BasicMappingRegion.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getBasicMappingRegion_ReferredMapping(), theQVTcorePackage.getMapping(), null, "referredMapping", null, 1, 1, BasicMappingRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(castEdgeEClass, CastEdge.class, "CastEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCastEdge_Property(), thePivotPackage.getProperty(), null, "property", null, 1, 1, CastEdge.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getCastEdge_PrimaryClass(), thePivotPackage.getClass_(), null, "primaryClass", null, 1, 1, CastEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCastEdge_ReferredClass(), thePivotPackage.getClass_(), null, "referredClass", null, 1, 1, CastEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(classDatumEClass, ClassDatum.class, "ClassDatum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getClassDatum_CompleteClass(), thePivotPackage.getCompleteClass(), null, "completeClass", null, 1, 1, ClassDatum.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getClassDatum_PrimaryClass(), thePivotPackage.getClass_(), null, "primaryClass", null, 1, 1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getClassDatum_PropertyDatums(), this.getPropertyDatum(), this.getPropertyDatum_ClassDatum(), "propertyDatums", null, 0, -1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getClassDatum_ScheduleModel(), this.getScheduleModel(), this.getScheduleModel_ClassDatums(), "scheduleModel", null, 1, 1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getClassDatum_OwningPropertyDatums(), this.getPropertyDatum(), this.getPropertyDatum_OwningClassDatum(), "owningPropertyDatums", null, 0, -1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getClassDatum_OwningScheduleModel(), this.getScheduleModel(), this.getScheduleModel_OwnedClassDatums(), "owningScheduleModel", null, 1, 1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getClassDatum_ReferredClass(), thePivotPackage.getClass_(), null, "referredClass", null, 1, 1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getClassDatum_SuperClassDatums(), this.getClassDatum(), null, "superClassDatums", null, 0, -1, ClassDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(composedNodeEClass, ComposedNode.class, "ComposedNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(connectionEClass, Connection.class, "Connection", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getConnection_Region(), this.getScheduledRegion(), this.getScheduledRegion_Connections(), "region", null, 1, 1, Connection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConnection_OwningScheduledRegion(), this.getScheduledRegion(), this.getScheduledRegion_OwnedConnections(), "owningScheduledRegion", null, 1, 1, Connection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(connectionEndEClass, ConnectionEnd.class, "ConnectionEnd", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -2009,12 +1932,12 @@
 		initEClass(edgeEClass, Edge.class, "Edge", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getEdge_EdgeRole(), this.getRole(), "edgeRole", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getEdge_Name(), ecorePackage.getEString(), "name", null, 0, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getEdge_Region(), this.getRegion(), this.getRegion_Edges(), "region", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEdge_OwningRegion(), this.getRegion(), this.getRegion_OwnedEdges(), "owningRegion", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getEdge_SourceNode(), this.getNode(), this.getNode_OutgoingEdges(), "sourceNode", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getEdge_TargetNode(), this.getNode(), this.getNode_IncomingEdges(), "targetNode", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(edgeConnectionEClass, EdgeConnection.class, "EdgeConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getEdgeConnection_Property(), thePivotPackage.getProperty(), null, "property", null, 1, 1, EdgeConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getEdgeConnection_ReferredProperty(), thePivotPackage.getProperty(), null, "referredProperty", null, 1, 1, EdgeConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(errorNodeEClass, ErrorNode.class, "ErrorNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -2029,10 +1952,10 @@
 		initEClass(loadingRegionEClass, LoadingRegion.class, "LoadingRegion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(mappingActionEClass, MappingAction.class, "MappingAction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getMappingAction_Mapping(), theQVTcorePackage.getMapping(), null, "mapping", null, 1, 1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getMappingAction_Productions(), this.getAbstractDatum(), this.getAbstractDatum_ProducedBy(), "productions", null, 0, -1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getMappingAction_Requisites(), this.getAbstractDatum(), this.getAbstractDatum_RequiredBy(), "requisites", null, 0, -1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getMappingAction_ScheduleModel(), this.getScheduleModel(), this.getScheduleModel_MappingActions(), "scheduleModel", null, 1, 1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getMappingAction_OwningScheduleModel(), this.getScheduleModel(), this.getScheduleModel_OwnedMappingActions(), "owningScheduleModel", null, 1, 1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getMappingAction_ProducedDatums(), this.getAbstractDatum(), this.getAbstractDatum_ProducedByActions(), "producedDatums", null, 0, -1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getMappingAction_ReferredMapping(), theQVTcorePackage.getMapping(), null, "referredMapping", null, 1, 1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getMappingAction_RequiredDatums(), this.getAbstractDatum(), this.getAbstractDatum_RequiredByActions(), "requiredDatums", null, 0, -1, MappingAction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(mappingRegionEClass, MappingRegion.class, "MappingRegion", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -2053,7 +1976,7 @@
 
 		initEClass(navigationEdgeEClass, NavigationEdge.class, "NavigationEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getNavigationEdge_Partial(), ecorePackage.getEBoolean(), "partial", "false", 1, 1, NavigationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNavigationEdge_Property(), thePivotPackage.getProperty(), null, "property", null, 1, 1, NavigationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getNavigationEdge_ReferredProperty(), thePivotPackage.getProperty(), null, "referredProperty", null, 1, 1, NavigationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(nodeEClass, Node.class, "Node", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getNode_ClassDatum(), this.getClassDatum(), null, "classDatum", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2063,7 +1986,7 @@
 		initEAttribute(getNode_NodeRole(), this.getRole(), "nodeRole", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getNode_OutgoingConnections(), this.getNodeConnection(), null, "outgoingConnections", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getNode_OutgoingEdges(), this.getEdge(), this.getEdge_SourceNode(), "outgoingEdges", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getNode_Region(), this.getRegion(), this.getRegion_Nodes(), "region", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getNode_OwningRegion(), this.getRegion(), this.getRegion_OwnedNodes(), "owningRegion", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(nodeConnectionEClass, NodeConnection.class, "NodeConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getNodeConnection_ClassDatum(), this.getClassDatum(), null, "classDatum", null, 1, 1, NodeConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2078,7 +2001,7 @@
 		initEReference(getOperationRegion_DependencyNodes(), this.getNode(), null, "dependencyNodes", null, 0, -1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getOperationRegion_HeadNodes(), this.getNode(), null, "headNodes", null, 0, -1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getOperationRegion_Name(), ecorePackage.getEString(), "name", null, 1, 1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getOperationRegion_Operation(), thePivotPackage.getOperation(), null, "operation", null, 1, 1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getOperationRegion_ReferredOperation(), thePivotPackage.getOperation(), null, "referredOperation", null, 1, 1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getOperationRegion_ResultNode(), this.getNode(), null, "resultNode", null, 0, 1, OperationRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(patternTypedNodeEClass, PatternTypedNode.class, "PatternTypedNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -2090,32 +2013,31 @@
 		initEClass(predicateEdgeEClass, PredicateEdge.class, "PredicateEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(propertyDatumEClass, PropertyDatum.class, "PropertyDatum", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPropertyDatum_Property(), thePivotPackage.getProperty(), null, "property", null, 1, 1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPropertyDatum_ClassDatum(), this.getClassDatum(), this.getClassDatum_PropertyDatums(), "classDatum", null, 1, 1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getPropertyDatum_Opposite(), this.getPropertyDatum(), null, "opposite", null, 0, 1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getPropertyDatum_Super(), this.getPropertyDatum(), null, "super", null, 0, -1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPropertyDatum_OwningClassDatum(), this.getClassDatum(), this.getClassDatum_OwningPropertyDatums(), "owningClassDatum", null, 1, 1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPropertyDatum_ReferredProperty(), thePivotPackage.getProperty(), null, "referredProperty", null, 1, 1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getPropertyDatum_SuperPropertyDatums(), this.getPropertyDatum(), null, "superPropertyDatums", null, 0, -1, PropertyDatum.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(recursionEdgeEClass, RecursionEdge.class, "RecursionEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getRecursionEdge_Primary(), ecorePackage.getEBoolean(), "primary", "false", 1, 1, RecursionEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(regionEClass, Region.class, "Region", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getRegion_Edges(), this.getEdge(), this.getEdge_Region(), "edges", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRegion_InvokingRegion(), this.getScheduledRegion(), this.getScheduledRegion_Regions(), "invokingRegion", null, 0, 1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRegion_Nodes(), this.getNode(), this.getNode_Region(), "nodes", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRegion_Region(), this.getRegion(), null, "region", null, 1, 1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRegion_OwnedEdges(), this.getEdge(), this.getEdge_OwningRegion(), "ownedEdges", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRegion_OwnedNodes(), this.getNode(), this.getNode_OwningRegion(), "ownedNodes", null, 0, -1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRegion_OwningScheduledRegion(), this.getScheduledRegion(), this.getScheduledRegion_OwnedRegions(), "owningScheduledRegion", null, 0, 1, Region.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(scheduleModelEClass, ScheduleModel.class, "ScheduleModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getScheduleModel_LoadingRegion(), this.getLoadingRegion(), null, "loadingRegion", null, 1, 1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduleModel_ScheduledRegion(), this.getScheduledRegion(), this.getScheduledRegion_ScheduleModel(), "scheduledRegion", null, 0, 1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduleModel_ClassDatums(), this.getClassDatum(), this.getClassDatum_ScheduleModel(), "classDatums", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduleModel_OtherMappingRegions(), this.getMappingRegion(), null, "otherMappingRegions", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduleModel_MappingActions(), this.getMappingAction(), this.getMappingAction_ScheduleModel(), "mappingActions", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduleModel_OwnedClassDatums(), this.getClassDatum(), this.getClassDatum_OwningScheduleModel(), "ownedClassDatums", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduleModel_OwnedMappingActions(), this.getMappingAction(), this.getMappingAction_OwningScheduleModel(), "ownedMappingActions", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduleModel_OwnedOtherMappingRegions(), this.getMappingRegion(), null, "ownedOtherMappingRegions", null, 0, -1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduleModel_OwnedScheduledRegion(), this.getScheduledRegion(), this.getScheduledRegion_OwningScheduleModel(), "ownedScheduledRegion", null, 0, 1, ScheduleModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(scheduledRegionEClass, ScheduledRegion.class, "ScheduledRegion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getScheduledRegion_Connections(), this.getConnection(), this.getConnection_Region(), "connections", null, 0, -1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getScheduledRegion_Name(), ecorePackage.getEString(), "name", null, 1, 1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduledRegion_Regions(), this.getRegion(), this.getRegion_InvokingRegion(), "regions", null, 0, -1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getScheduledRegion_ScheduleModel(), this.getScheduleModel(), this.getScheduleModel_ScheduledRegion(), "scheduleModel", null, 1, 1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduledRegion_OwnedConnections(), this.getConnection(), this.getConnection_OwningScheduledRegion(), "ownedConnections", null, 0, -1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduledRegion_OwnedRegions(), this.getRegion(), this.getRegion_OwningScheduledRegion(), "ownedRegions", null, 0, -1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getScheduledRegion_OwningScheduleModel(), this.getScheduleModel(), this.getScheduleModel_OwnedScheduledRegion(), "owningScheduleModel", null, 1, 1, ScheduledRegion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(symbolableEClass, Symbolable.class, "Symbolable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getSymbolable_SymbolName(), ecorePackage.getEString(), "symbolName", null, 1, 1, Symbolable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -2125,16 +2047,10 @@
 		initEClass(unknownNodeEClass, UnknownNode.class, "UnknownNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(variableNodeEClass, VariableNode.class, "VariableNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getVariableNode_Variable(), thePivotPackage.getVariableDeclaration(), null, "variable", null, 1, 1, VariableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getVariableNode_ReferredVariable(), thePivotPackage.getVariableDeclaration(), null, "referredVariable", null, 1, 1, VariableNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(domainUsageEClass, DomainUsage.class, "DomainUsage", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(graphEdgeEClass, GraphEdge.class, "GraphEdge", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(graphNodeEClass, GraphNode.class, "GraphNode", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
-
-		initEClass(toDOTableEClass, ToDOTable.class, "ToDOTable", IS_ABSTRACT, IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
-
 		// Initialize enums and add enum literals
 		initEEnum(connectionRoleEEnum, ConnectionRole.class, "ConnectionRole");
 		addEEnumLiteral(connectionRoleEEnum, ConnectionRole.MANDATORY_EDGE);
@@ -2168,12 +2084,12 @@
 	 * @generated
 	 */
 	protected void createEcoreAnnotations() {
-		String source = "http://www.eclipse.org/emf/2002/Ecore";	
+		String source = "http://www.eclipse.org/emf/2002/Ecore";
 		addAnnotation
-		  (this, 
-		   source, 
-		   new String[] {
-		   });
+		(this,
+			source,
+			new String[] {
+		});
 	}
 
 } //QVTschedulePackageImpl
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/RegionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/RegionImpl.java
index 1970609..6c8e35d 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/RegionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/RegionImpl.java
@@ -40,9 +40,7 @@
 import org.eclipse.ocl.pivot.utilities.Nameable;
 import org.eclipse.ocl.pivot.utilities.PivotUtil;
 import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode;
 import org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable;
 import org.eclipse.qvtd.pivot.qvtschedule.DatumConnection;
 import org.eclipse.qvtd.pivot.qvtschedule.Edge;
 import org.eclipse.qvtd.pivot.qvtschedule.EdgeConnection;
@@ -70,10 +68,9 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getSymbolName <em>Symbol Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getEdges <em>Edges</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getInvokingRegion <em>Invoking Region</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getRegion <em>Region</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getOwnedEdges <em>Owned Edges</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getOwnedNodes <em>Owned Nodes</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.RegionImpl#getOwningScheduledRegion <em>Owning Scheduled Region</em>}</li>
  * </ul>
  *
  * @generated
@@ -99,34 +96,23 @@
 	protected String symbolName = SYMBOL_NAME_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getEdges() <em>Edges</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedEdges() <em>Owned Edges</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getEdges()
+	 * @see #getOwnedEdges()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Edge> edges;
+	protected EList<Edge> ownedEdges;
 	/**
-	 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedNodes() <em>Owned Nodes</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getNodes()
+	 * @see #getOwnedNodes()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Node> nodes;
-
-	/**
-	 * The cached value of the '{@link #getRegion() <em>Region</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getRegion()
-	 * @generated
-	 * @ordered
-	 */
-	protected Region region;
-
+	protected EList<Node> ownedNodes;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -165,19 +151,85 @@
 	 * @generated
 	 */
 	@Override
+	public ScheduledRegion getOwningScheduledRegion() {
+		if (eContainerFeatureID() != QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION) return null;
+		return (ScheduledRegion)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetOwningScheduledRegion(ScheduledRegion newOwningScheduledRegion, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningScheduledRegion, QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setOwningScheduledRegion(ScheduledRegion newOwningScheduledRegion) {
+		if (newOwningScheduledRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION && newOwningScheduledRegion != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningScheduledRegion))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newOwningScheduledRegion != null)
+				msgs = ((InternalEObject)newOwningScheduledRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS, ScheduledRegion.class, msgs);
+			msgs = basicSetOwningScheduledRegion(newOwningScheduledRegion, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION, newOwningScheduledRegion, newOwningScheduledRegion));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Edge> getOwnedEdges() {
+		if (ownedEdges == null) {
+			ownedEdges = new EObjectContainmentWithInverseEList<Edge>(Edge.class, this, QVTschedulePackage.REGION__OWNED_EDGES, QVTschedulePackage.EDGE__OWNING_REGION);
+		}
+		return ownedEdges;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Node> getOwnedNodes() {
+		if (ownedNodes == null) {
+			ownedNodes = new EObjectContainmentWithInverseEList<Node>(Node.class, this, QVTschedulePackage.REGION__OWNED_NODES, QVTschedulePackage.NODE__OWNING_REGION);
+		}
+		return ownedNodes;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case QVTschedulePackage.REGION__SYMBOL_NAME:
 				return getSymbolName();
-			case QVTschedulePackage.REGION__EDGES:
-				return getEdges();
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				return getInvokingRegion();
-			case QVTschedulePackage.REGION__NODES:
-				return getNodes();
-			case QVTschedulePackage.REGION__REGION:
-				if (resolve) return getRegion();
-				return basicGetRegion();
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				return getOwnedEdges();
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				return getOwnedNodes();
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				return getOwningScheduledRegion();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -194,19 +246,16 @@
 			case QVTschedulePackage.REGION__SYMBOL_NAME:
 				setSymbolName((String)newValue);
 				return;
-			case QVTschedulePackage.REGION__EDGES:
-				getEdges().clear();
-				getEdges().addAll((Collection<? extends Edge>)newValue);
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				getOwnedEdges().clear();
+				getOwnedEdges().addAll((Collection<? extends Edge>)newValue);
 				return;
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				setInvokingRegion((ScheduledRegion)newValue);
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				getOwnedNodes().clear();
+				getOwnedNodes().addAll((Collection<? extends Node>)newValue);
 				return;
-			case QVTschedulePackage.REGION__NODES:
-				getNodes().clear();
-				getNodes().addAll((Collection<? extends Node>)newValue);
-				return;
-			case QVTschedulePackage.REGION__REGION:
-				setRegion((Region)newValue);
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				setOwningScheduledRegion((ScheduledRegion)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -223,17 +272,14 @@
 			case QVTschedulePackage.REGION__SYMBOL_NAME:
 				setSymbolName(SYMBOL_NAME_EDEFAULT);
 				return;
-			case QVTschedulePackage.REGION__EDGES:
-				getEdges().clear();
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				getOwnedEdges().clear();
 				return;
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				setInvokingRegion((ScheduledRegion)null);
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				getOwnedNodes().clear();
 				return;
-			case QVTschedulePackage.REGION__NODES:
-				getNodes().clear();
-				return;
-			case QVTschedulePackage.REGION__REGION:
-				setRegion((Region)null);
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				setOwningScheduledRegion((ScheduledRegion)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -249,14 +295,12 @@
 		switch (featureID) {
 			case QVTschedulePackage.REGION__SYMBOL_NAME:
 				return SYMBOL_NAME_EDEFAULT == null ? symbolName != null : !SYMBOL_NAME_EDEFAULT.equals(symbolName);
-			case QVTschedulePackage.REGION__EDGES:
-				return edges != null && !edges.isEmpty();
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				return getInvokingRegion() != null;
-			case QVTschedulePackage.REGION__NODES:
-				return nodes != null && !nodes.isEmpty();
-			case QVTschedulePackage.REGION__REGION:
-				return region != null;
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				return ownedEdges != null && !ownedEdges.isEmpty();
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				return ownedNodes != null && !ownedNodes.isEmpty();
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				return getOwningScheduledRegion() != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -268,11 +312,6 @@
 	 */
 	@Override
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == GraphNode.class) {
-			switch (derivedFeatureID) {
-				default: return -1;
-			}
-		}
 		if (baseClass == Nameable.class) {
 			switch (derivedFeatureID) {
 				default: return -1;
@@ -284,11 +323,6 @@
 				default: return -1;
 			}
 		}
-		if (baseClass == ToDOTable.class) {
-			switch (derivedFeatureID) {
-				default: return -1;
-			}
-		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -299,11 +333,6 @@
 	 */
 	@Override
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == GraphNode.class) {
-			switch (baseFeatureID) {
-				default: return -1;
-			}
-		}
 		if (baseClass == Nameable.class) {
 			switch (baseFeatureID) {
 				default: return -1;
@@ -315,11 +344,6 @@
 				default: return -1;
 			}
 		}
-		if (baseClass == ToDOTable.class) {
-			switch (baseFeatureID) {
-				default: return -1;
-			}
-		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
@@ -460,7 +484,7 @@
 		Set<@NonNull Node> bestToOneSubRegion = null;
 		Node bestNamingNode = null;
 		int bestToOneSubRegionSize = 0;
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			if (node.isNew() || node.isPredicated() || node.isSpeculated()) {
 				Set<@NonNull Node> toOneSubRegion = computeToOneSubRegion(new HashSet<>(), node);
 				int toOneSubRegionSize = toOneSubRegion.size();
@@ -591,7 +615,7 @@
 		HashSet<@NonNull Node> ancestorSet = new HashSet<>();
 		node.getAllAncestors(ancestorSet);
 		for (@NonNull Node ancestor : ancestorSet) {
-			if (ancestor.getRegion() == this) {
+			if (ancestor.getOwningRegion() == this) {
 				ancestors.add(ancestor);
 			}
 		}
@@ -638,7 +662,7 @@
 		List<@NonNull Region> childRegions = new ArrayList<>();			// FIXME cache
 		for (@NonNull NodeConnection childConnection : getOutgoingPassedConnections()) {
 			for (@NonNull Node childNode : childConnection.getTargetNodes()) {
-				Region childRegion = QVTscheduleUtil.getRegion(childNode);
+				Region childRegion = QVTscheduleUtil.getOwningRegion(childNode);
 				if (!childRegions.contains(childRegion)) {
 					childRegions.add(childRegion);
 				}
@@ -652,7 +676,7 @@
 		List<@NonNull Region> callingRegions = new ArrayList<>();			// FIXME cache
 		for (@NonNull NodeConnection callingConnection : getIncomingPassedConnections()) {
 			for (@NonNull Node callingNode : QVTscheduleUtil.getSourceEnds(callingConnection)) {
-				Region callingRegion = QVTscheduleUtil.getRegion(callingNode);
+				Region callingRegion = QVTscheduleUtil.getOwningRegion(callingNode);
 				if (!callingRegions.contains(callingRegion)) {
 					callingRegions.add(callingRegion);
 				}
@@ -668,7 +692,7 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getComposedNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsComposedNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsComposedNodePredicate.INSTANCE);
 	}
 
 	private int getCost(@NonNull List<@NonNull NavigableEdge> path) {
@@ -683,7 +707,7 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Edge> getExpressionEdges() {
-		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsExpressionEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsExpressionEdgePredicate.INSTANCE);
 		return filter;
 	}
 
@@ -709,7 +733,7 @@
 				connections.add(connection);
 			}
 		}
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			if (node.isDependency() || node.isPattern()) {
 				if (node.isLoaded() || node.isSpeculated() || node.isPredicated()) {	// A DataType may be loaded but subject to an edge predication
 					NodeConnection connection = node.getIncomingUsedConnection();
@@ -815,12 +839,12 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getNavigableNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsNavigableNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsNavigableNodePredicate.INSTANCE);
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull NavigableEdge> getNavigationEdges() {
-		@NonNull Iterable<@NonNull NavigableEdge> filter = Iterables.filter(QVTscheduleUtil.getEdges(this), NavigableEdge.class);
+		@NonNull Iterable<@NonNull NavigableEdge> filter = Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), NavigableEdge.class);
 		return filter;
 	}
 
@@ -832,7 +856,7 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getNewNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsNewNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsNewNodePredicate.INSTANCE);
 	}
 
 	@Override
@@ -849,14 +873,14 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.REGION__EDGES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getEdges()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.REGION__INVOKING_REGION:
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedEdges()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedNodes()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetInvokingRegion((ScheduledRegion)otherEnd, msgs);
-			case QVTschedulePackage.REGION__NODES:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getNodes()).basicAdd(otherEnd, msgs);
+				return basicSetOwningScheduledRegion((ScheduledRegion)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -869,12 +893,12 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.REGION__EDGES:
-				return ((InternalEList<?>)getEdges()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				return basicSetInvokingRegion(null, msgs);
-			case QVTschedulePackage.REGION__NODES:
-				return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.REGION__OWNED_EDGES:
+				return ((InternalEList<?>)getOwnedEdges()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.REGION__OWNED_NODES:
+				return ((InternalEList<?>)getOwnedNodes()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				return basicSetOwningScheduledRegion(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -887,21 +911,21 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.REGION__INVOKING_REGION:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__REGIONS, ScheduledRegion.class, msgs);
+			case QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS, ScheduledRegion.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getOldNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsOldNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsOldNodePredicate.INSTANCE);
 	}
 
 	@Override
 	public @NonNull List<@NonNull DatumConnection<?>> getOutgoingConnections() {			// FIXME cache
 		List<@NonNull DatumConnection<?>> connections = new ArrayList<>();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			for (@NonNull NodeConnection connection : node.getOutgoingPassedConnections()) {
 				connections.add(connection);
 			}
@@ -920,7 +944,7 @@
 	@Override
 	public @NonNull Iterable<@NonNull NodeConnection> getOutgoingPassedConnections() {			// FIXME cache
 		List<@NonNull NodeConnection> connections = new ArrayList<>();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			for (@NonNull NodeConnection connection : node.getOutgoingPassedConnections()) {
 				connections.add(connection);
 			}
@@ -931,7 +955,7 @@
 	@Override
 	public @NonNull Iterable<@NonNull NodeConnection> getOutgoingUsedConnections() {			// FIXME cache
 		List<@NonNull NodeConnection> connections = new ArrayList<>();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(this)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(this)) {
 			for (@NonNull NodeConnection connection : node.getOutgoingUsedBindingEdges()) {
 				connections.add(connection);
 			}
@@ -940,7 +964,7 @@
 	}
 
 	protected @Nullable List<@NonNull NavigableEdge> getPath(@NonNull Node sourceNode, @NonNull Node targetNode, @NonNull Set<@NonNull Edge> usedEdges) {
-		assert sourceNode.getRegion() == targetNode.getRegion();
+		assert sourceNode.getOwningRegion() == targetNode.getOwningRegion();
 		NavigableEdge bestEdge = null;
 		List<@NonNull NavigableEdge> bestPath = null;
 		for (@NonNull NavigableEdge edge : sourceNode.getNavigationEdges()) {
@@ -973,38 +997,38 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getPatternNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsPatternNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsPatternNodePredicate.INSTANCE);
 	}
 
 	public final @NonNull Iterable<NavigableEdge> getPredicateEdges() {
 		@SuppressWarnings("unchecked")
-		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsPredicatedEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsPredicatedEdgePredicate.INSTANCE);
 		return filter;
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull NavigableEdge> getPredicatedNavigationEdges() {
 		@SuppressWarnings("unchecked")
-		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsPredicatedNavigationEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsPredicatedNavigationEdgePredicate.INSTANCE);
 		return filter;
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull Edge> getRealizedEdges() {
-		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsRealizedEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsRealizedEdgePredicate.INSTANCE);
 		return filter;
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull NavigableEdge> getRealizedNavigationEdges() {
 		@SuppressWarnings("unchecked")
-		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsRealizedNavigationEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull NavigableEdge> filter = (Iterable<@NonNull NavigableEdge>)(Object)Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsRealizedNavigationEdgePredicate.INSTANCE);
 		return filter;
 	}
 
 	@Override
 	public final @NonNull Iterable<@NonNull Edge> getRecursionEdges() {
-		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getEdges(this), QVTscheduleUtil.IsRecursionEdgePredicate.INSTANCE);
+		@NonNull Iterable<@NonNull Edge> filter = Iterables.filter(QVTscheduleUtil.getOwnedEdges(this), QVTscheduleUtil.IsRecursionEdgePredicate.INSTANCE);
 		return filter;
 	}
 
@@ -1046,115 +1070,6 @@
 		return symbolName2;
 	}
 
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<Edge> getEdges() {
-		if (edges == null) {
-			edges = new EObjectContainmentWithInverseEList<Edge>(Edge.class, this, QVTschedulePackage.REGION__EDGES, QVTschedulePackage.EDGE__REGION);
-		}
-		return edges;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public ScheduledRegion getInvokingRegion() {
-		if (eContainerFeatureID() != QVTschedulePackage.REGION__INVOKING_REGION) return null;
-		return (ScheduledRegion)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetInvokingRegion(ScheduledRegion newInvokingRegion, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newInvokingRegion, QVTschedulePackage.REGION__INVOKING_REGION, msgs);
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setInvokingRegion(ScheduledRegion newInvokingRegion) {
-		if (newInvokingRegion != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.REGION__INVOKING_REGION && newInvokingRegion != null)) {
-			if (EcoreUtil.isAncestor(this, newInvokingRegion))
-				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
-			NotificationChain msgs = null;
-			if (eInternalContainer() != null)
-				msgs = eBasicRemoveFromContainer(msgs);
-			if (newInvokingRegion != null)
-				msgs = ((InternalEObject)newInvokingRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__REGIONS, ScheduledRegion.class, msgs);
-			msgs = basicSetInvokingRegion(newInvokingRegion, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.REGION__INVOKING_REGION, newInvokingRegion, newInvokingRegion));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<Node> getNodes() {
-		if (nodes == null) {
-			nodes = new EObjectContainmentWithInverseEList<Node>(Node.class, this, QVTschedulePackage.REGION__NODES, QVTschedulePackage.NODE__REGION);
-		}
-		return nodes;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Region getRegion() {
-		if (region != null && region.eIsProxy()) {
-			InternalEObject oldRegion = (InternalEObject)region;
-			region = (Region)eResolveProxy(oldRegion);
-			if (region != oldRegion) {
-				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.REGION__REGION, oldRegion, region));
-			}
-		}
-		return region;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Region basicGetRegion() {
-		return region;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setRegion(Region newRegion) {
-		Region oldRegion = region;
-		region = newRegion;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.REGION__REGION, oldRegion, region));
-	}
-
 	protected @NonNull String getSymbolNamePrefix() {
 		return QVTscheduleConstants.REGION_SYMBOL_NAME_PREFIX;
 	}
@@ -1165,7 +1080,7 @@
 
 	@Override
 	public final @NonNull Iterable<@NonNull Node> getTrueNodes() {
-		return Iterables.filter(QVTscheduleUtil.getNodes(this), QVTscheduleUtil.IsTrueNodePredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedNodes(this), QVTscheduleUtil.IsTrueNodePredicate.INSTANCE);
 	}
 
 	@Override
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduleModelImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduleModelImpl.java
index a7acce1..b172d2b 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduleModelImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduleModelImpl.java
@@ -48,10 +48,10 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getLoadingRegion <em>Loading Region</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getScheduledRegion <em>Scheduled Region</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getClassDatums <em>Class Datums</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getOtherMappingRegions <em>Other Mapping Regions</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getMappingActions <em>Mapping Actions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getOwnedClassDatums <em>Owned Class Datums</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getOwnedMappingActions <em>Owned Mapping Actions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getOwnedOtherMappingRegions <em>Owned Other Mapping Regions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduleModelImpl#getOwnedScheduledRegion <em>Owned Scheduled Region</em>}</li>
  * </ul>
  *
  * @generated
@@ -67,41 +67,41 @@
 	 */
 	protected LoadingRegion loadingRegion;
 	/**
-	 * The cached value of the '{@link #getScheduledRegion() <em>Scheduled Region</em>}' containment reference.
+	 * The cached value of the '{@link #getOwnedClassDatums() <em>Owned Class Datums</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getScheduledRegion()
+	 * @see #getOwnedClassDatums()
 	 * @generated
 	 * @ordered
 	 */
-	protected ScheduledRegion scheduledRegion;
+	protected EList<ClassDatum> ownedClassDatums;
 	/**
-	 * The cached value of the '{@link #getClassDatums() <em>Class Datums</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedMappingActions() <em>Owned Mapping Actions</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getClassDatums()
+	 * @see #getOwnedMappingActions()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<ClassDatum> classDatums;
+	protected EList<MappingAction> ownedMappingActions;
 	/**
-	 * The cached value of the '{@link #getOtherMappingRegions() <em>Other Mapping Regions</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedOtherMappingRegions() <em>Owned Other Mapping Regions</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getOtherMappingRegions()
+	 * @see #getOwnedOtherMappingRegions()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<MappingRegion> otherMappingRegions;
+	protected EList<MappingRegion> ownedOtherMappingRegions;
 	/**
-	 * The cached value of the '{@link #getMappingActions() <em>Mapping Actions</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedScheduledRegion() <em>Owned Scheduled Region</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getMappingActions()
+	 * @see #getOwnedScheduledRegion()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<MappingAction> mappingActions;
+	protected ScheduledRegion ownedScheduledRegion;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -167,8 +167,11 @@
 	 * @generated
 	 */
 	@Override
-	public ScheduledRegion getScheduledRegion() {
-		return scheduledRegion;
+	public EList<ClassDatum> getOwnedClassDatums() {
+		if (ownedClassDatums == null) {
+			ownedClassDatums = new EObjectContainmentWithInverseEList<ClassDatum>(ClassDatum.class, this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS, QVTschedulePackage.CLASS_DATUM__OWNING_SCHEDULE_MODEL);
+		}
+		return ownedClassDatums;
 	}
 
 	/**
@@ -176,11 +179,47 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetScheduledRegion(ScheduledRegion newScheduledRegion, NotificationChain msgs) {
-		ScheduledRegion oldScheduledRegion = scheduledRegion;
-		scheduledRegion = newScheduledRegion;
+	@Override
+	public EList<MappingAction> getOwnedMappingActions() {
+		if (ownedMappingActions == null) {
+			ownedMappingActions = new EObjectContainmentWithInverseEList<MappingAction>(MappingAction.class, this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS, QVTschedulePackage.MAPPING_ACTION__OWNING_SCHEDULE_MODEL);
+		}
+		return ownedMappingActions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<MappingRegion> getOwnedOtherMappingRegions() {
+		if (ownedOtherMappingRegions == null) {
+			ownedOtherMappingRegions = new EObjectContainmentEList<MappingRegion>(MappingRegion.class, this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS);
+		}
+		return ownedOtherMappingRegions;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ScheduledRegion getOwnedScheduledRegion() {
+		return ownedScheduledRegion;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetOwnedScheduledRegion(ScheduledRegion newOwnedScheduledRegion, NotificationChain msgs) {
+		ScheduledRegion oldOwnedScheduledRegion = ownedScheduledRegion;
+		ownedScheduledRegion = newOwnedScheduledRegion;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION, oldScheduledRegion, newScheduledRegion);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, oldOwnedScheduledRegion, newOwnedScheduledRegion);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -192,57 +231,18 @@
 	 * @generated
 	 */
 	@Override
-	public void setScheduledRegion(ScheduledRegion newScheduledRegion) {
-		if (newScheduledRegion != scheduledRegion) {
+	public void setOwnedScheduledRegion(ScheduledRegion newOwnedScheduledRegion) {
+		if (newOwnedScheduledRegion != ownedScheduledRegion) {
 			NotificationChain msgs = null;
-			if (scheduledRegion != null)
-				msgs = ((InternalEObject)scheduledRegion).eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL, ScheduledRegion.class, msgs);
-			if (newScheduledRegion != null)
-				msgs = ((InternalEObject)newScheduledRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL, ScheduledRegion.class, msgs);
-			msgs = basicSetScheduledRegion(newScheduledRegion, msgs);
+			if (ownedScheduledRegion != null)
+				msgs = ((InternalEObject)ownedScheduledRegion).eInverseRemove(this, QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL, ScheduledRegion.class, msgs);
+			if (newOwnedScheduledRegion != null)
+				msgs = ((InternalEObject)newOwnedScheduledRegion).eInverseAdd(this, QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL, ScheduledRegion.class, msgs);
+			msgs = basicSetOwnedScheduledRegion(newOwnedScheduledRegion, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION, newScheduledRegion, newScheduledRegion));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<ClassDatum> getClassDatums() {
-		if (classDatums == null) {
-			classDatums = new EObjectContainmentWithInverseEList<ClassDatum>(ClassDatum.class, this, QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS, QVTschedulePackage.CLASS_DATUM__SCHEDULE_MODEL);
-		}
-		return classDatums;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<MappingRegion> getOtherMappingRegions() {
-		if (otherMappingRegions == null) {
-			otherMappingRegions = new EObjectContainmentEList<MappingRegion>(MappingRegion.class, this, QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS);
-		}
-		return otherMappingRegions;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<MappingAction> getMappingActions() {
-		if (mappingActions == null) {
-			mappingActions = new EObjectContainmentWithInverseEList<MappingAction>(MappingAction.class, this, QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS, QVTschedulePackage.MAPPING_ACTION__SCHEDULE_MODEL);
-		}
-		return mappingActions;
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, newOwnedScheduledRegion, newOwnedScheduledRegion));
 	}
 
 	/**
@@ -254,14 +254,14 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				if (scheduledRegion != null)
-					msgs = ((InternalEObject)scheduledRegion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION, null, msgs);
-				return basicSetScheduledRegion((ScheduledRegion)otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getClassDatums()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getMappingActions()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedClassDatums()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedMappingActions()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				if (ownedScheduledRegion != null)
+					msgs = ((InternalEObject)ownedScheduledRegion).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, null, msgs);
+				return basicSetOwnedScheduledRegion((ScheduledRegion)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -274,14 +274,14 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				return basicSetScheduledRegion(null, msgs);
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				return ((InternalEList<?>)getClassDatums()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS:
-				return ((InternalEList<?>)getOtherMappingRegions()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				return ((InternalEList<?>)getMappingActions()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				return ((InternalEList<?>)getOwnedClassDatums()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				return ((InternalEList<?>)getOwnedMappingActions()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS:
+				return ((InternalEList<?>)getOwnedOtherMappingRegions()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				return basicSetOwnedScheduledRegion(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -297,14 +297,14 @@
 			case QVTschedulePackage.SCHEDULE_MODEL__LOADING_REGION:
 				if (resolve) return getLoadingRegion();
 				return basicGetLoadingRegion();
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				return getScheduledRegion();
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				return getClassDatums();
-			case QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS:
-				return getOtherMappingRegions();
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				return getMappingActions();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				return getOwnedClassDatums();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				return getOwnedMappingActions();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS:
+				return getOwnedOtherMappingRegions();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				return getOwnedScheduledRegion();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -321,20 +321,20 @@
 			case QVTschedulePackage.SCHEDULE_MODEL__LOADING_REGION:
 				setLoadingRegion((LoadingRegion)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				setScheduledRegion((ScheduledRegion)newValue);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				getOwnedClassDatums().clear();
+				getOwnedClassDatums().addAll((Collection<? extends ClassDatum>)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				getClassDatums().clear();
-				getClassDatums().addAll((Collection<? extends ClassDatum>)newValue);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				getOwnedMappingActions().clear();
+				getOwnedMappingActions().addAll((Collection<? extends MappingAction>)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS:
-				getOtherMappingRegions().clear();
-				getOtherMappingRegions().addAll((Collection<? extends MappingRegion>)newValue);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS:
+				getOwnedOtherMappingRegions().clear();
+				getOwnedOtherMappingRegions().addAll((Collection<? extends MappingRegion>)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				getMappingActions().clear();
-				getMappingActions().addAll((Collection<? extends MappingAction>)newValue);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				setOwnedScheduledRegion((ScheduledRegion)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -351,17 +351,17 @@
 			case QVTschedulePackage.SCHEDULE_MODEL__LOADING_REGION:
 				setLoadingRegion((LoadingRegion)null);
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				setScheduledRegion((ScheduledRegion)null);
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				getOwnedClassDatums().clear();
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				getClassDatums().clear();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				getOwnedMappingActions().clear();
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS:
-				getOtherMappingRegions().clear();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS:
+				getOwnedOtherMappingRegions().clear();
 				return;
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				getMappingActions().clear();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				setOwnedScheduledRegion((ScheduledRegion)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -377,14 +377,14 @@
 		switch (featureID) {
 			case QVTschedulePackage.SCHEDULE_MODEL__LOADING_REGION:
 				return loadingRegion != null;
-			case QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION:
-				return scheduledRegion != null;
-			case QVTschedulePackage.SCHEDULE_MODEL__CLASS_DATUMS:
-				return classDatums != null && !classDatums.isEmpty();
-			case QVTschedulePackage.SCHEDULE_MODEL__OTHER_MAPPING_REGIONS:
-				return otherMappingRegions != null && !otherMappingRegions.isEmpty();
-			case QVTschedulePackage.SCHEDULE_MODEL__MAPPING_ACTIONS:
-				return mappingActions != null && !mappingActions.isEmpty();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_CLASS_DATUMS:
+				return ownedClassDatums != null && !ownedClassDatums.isEmpty();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_MAPPING_ACTIONS:
+				return ownedMappingActions != null && !ownedMappingActions.isEmpty();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_OTHER_MAPPING_REGIONS:
+				return ownedOtherMappingRegions != null && !ownedOtherMappingRegions.isEmpty();
+			case QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION:
+				return ownedScheduledRegion != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduledRegionImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduledRegionImpl.java
index 28a7c5f..52bd628 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduledRegionImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/ScheduledRegionImpl.java
@@ -50,26 +50,16 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getConnections <em>Connections</em>}</li>
  *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getName <em>Name</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getRegions <em>Regions</em>}</li>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getScheduleModel <em>Schedule Model</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getOwnedConnections <em>Owned Connections</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getOwnedRegions <em>Owned Regions</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.ScheduledRegionImpl#getOwningScheduleModel <em>Owning Schedule Model</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class ScheduledRegionImpl extends RegionImpl implements ScheduledRegion {
 	/**
-	 * The cached value of the '{@link #getConnections() <em>Connections</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getConnections()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Connection> connections;
-
-	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -90,14 +80,24 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getRegions() <em>Regions</em>}' containment reference list.
+	 * The cached value of the '{@link #getOwnedConnections() <em>Owned Connections</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getRegions()
+	 * @see #getOwnedConnections()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Region> regions;
+	protected EList<Connection> ownedConnections;
+
+	/**
+	 * The cached value of the '{@link #getOwnedRegions() <em>Owned Regions</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getOwnedRegions()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Region> ownedRegions;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -147,11 +147,11 @@
 	 * @generated
 	 */
 	@Override
-	public EList<Connection> getConnections() {
-		if (connections == null) {
-			connections = new EObjectContainmentWithInverseEList<Connection>(Connection.class, this, QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS, QVTschedulePackage.CONNECTION__REGION);
+	public EList<Connection> getOwnedConnections() {
+		if (ownedConnections == null) {
+			ownedConnections = new EObjectContainmentWithInverseEList<Connection>(Connection.class, this, QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS, QVTschedulePackage.CONNECTION__OWNING_SCHEDULED_REGION);
 		}
-		return connections;
+		return ownedConnections;
 	}
 
 	/**
@@ -160,11 +160,11 @@
 	 * @generated
 	 */
 	@Override
-	public EList<Region> getRegions() {
-		if (regions == null) {
-			regions = new EObjectContainmentWithInverseEList<Region>(Region.class, this, QVTschedulePackage.SCHEDULED_REGION__REGIONS, QVTschedulePackage.REGION__INVOKING_REGION);
+	public EList<Region> getOwnedRegions() {
+		if (ownedRegions == null) {
+			ownedRegions = new EObjectContainmentWithInverseEList<Region>(Region.class, this, QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS, QVTschedulePackage.REGION__OWNING_SCHEDULED_REGION);
 		}
-		return regions;
+		return ownedRegions;
 	}
 
 	/**
@@ -173,8 +173,8 @@
 	 * @generated
 	 */
 	@Override
-	public ScheduleModel getScheduleModel() {
-		if (eContainerFeatureID() != QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL) return null;
+	public ScheduleModel getOwningScheduleModel() {
+		if (eContainerFeatureID() != QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL) return null;
 		return (ScheduleModel)eInternalContainer();
 	}
 
@@ -183,8 +183,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetScheduleModel(ScheduleModel newScheduleModel, NotificationChain msgs) {
-		msgs = eBasicSetContainer((InternalEObject)newScheduleModel, QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL, msgs);
+	public NotificationChain basicSetOwningScheduleModel(ScheduleModel newOwningScheduleModel, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newOwningScheduleModel, QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL, msgs);
 		return msgs;
 	}
 
@@ -194,20 +194,20 @@
 	 * @generated
 	 */
 	@Override
-	public void setScheduleModel(ScheduleModel newScheduleModel) {
-		if (newScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL && newScheduleModel != null)) {
-			if (EcoreUtil.isAncestor(this, newScheduleModel))
+	public void setOwningScheduleModel(ScheduleModel newOwningScheduleModel) {
+		if (newOwningScheduleModel != eInternalContainer() || (eContainerFeatureID() != QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL && newOwningScheduleModel != null)) {
+			if (EcoreUtil.isAncestor(this, newOwningScheduleModel))
 				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
 			NotificationChain msgs = null;
 			if (eInternalContainer() != null)
 				msgs = eBasicRemoveFromContainer(msgs);
-			if (newScheduleModel != null)
-				msgs = ((InternalEObject)newScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION, ScheduleModel.class, msgs);
-			msgs = basicSetScheduleModel(newScheduleModel, msgs);
+			if (newOwningScheduleModel != null)
+				msgs = ((InternalEObject)newOwningScheduleModel).eInverseAdd(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, ScheduleModel.class, msgs);
+			msgs = basicSetOwningScheduleModel(newOwningScheduleModel, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL, newScheduleModel, newScheduleModel));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL, newOwningScheduleModel, newOwningScheduleModel));
 	}
 
 	/**
@@ -219,14 +219,14 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getConnections()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getRegions()).basicAdd(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedConnections()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedRegions()).basicAdd(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return basicSetScheduleModel((ScheduleModel)otherEnd, msgs);
+				return basicSetOwningScheduleModel((ScheduleModel)otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -239,12 +239,12 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				return ((InternalEList<?>)getConnections()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				return ((InternalEList<?>)getRegions()).basicRemove(otherEnd, msgs);
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				return basicSetScheduleModel(null, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				return ((InternalEList<?>)getOwnedConnections()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				return ((InternalEList<?>)getOwnedRegions()).basicRemove(otherEnd, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				return basicSetOwningScheduleModel(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -257,8 +257,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__SCHEDULED_REGION, ScheduleModel.class, msgs);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				return eInternalContainer().eInverseRemove(this, QVTschedulePackage.SCHEDULE_MODEL__OWNED_SCHEDULED_REGION, ScheduleModel.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -271,14 +271,14 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				return getConnections();
 			case QVTschedulePackage.SCHEDULED_REGION__NAME:
 				return getName();
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				return getRegions();
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				return getScheduleModel();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				return getOwnedConnections();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				return getOwnedRegions();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -292,19 +292,19 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				getConnections().clear();
-				getConnections().addAll((Collection<? extends Connection>)newValue);
-				return;
 			case QVTschedulePackage.SCHEDULED_REGION__NAME:
 				setName((String)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				getRegions().clear();
-				getRegions().addAll((Collection<? extends Region>)newValue);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				getOwnedConnections().clear();
+				getOwnedConnections().addAll((Collection<? extends Connection>)newValue);
 				return;
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)newValue);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				getOwnedRegions().clear();
+				getOwnedRegions().addAll((Collection<? extends Region>)newValue);
+				return;
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -318,17 +318,17 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				getConnections().clear();
-				return;
 			case QVTschedulePackage.SCHEDULED_REGION__NAME:
 				setName(NAME_EDEFAULT);
 				return;
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				getRegions().clear();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				getOwnedConnections().clear();
 				return;
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				setScheduleModel((ScheduleModel)null);
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				getOwnedRegions().clear();
+				return;
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				setOwningScheduleModel((ScheduleModel)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -342,14 +342,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.SCHEDULED_REGION__CONNECTIONS:
-				return connections != null && !connections.isEmpty();
 			case QVTschedulePackage.SCHEDULED_REGION__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-			case QVTschedulePackage.SCHEDULED_REGION__REGIONS:
-				return regions != null && !regions.isEmpty();
-			case QVTschedulePackage.SCHEDULED_REGION__SCHEDULE_MODEL:
-				return getScheduleModel() != null;
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_CONNECTIONS:
+				return ownedConnections != null && !ownedConnections.isEmpty();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNED_REGIONS:
+				return ownedRegions != null && !ownedRegions.isEmpty();
+			case QVTschedulePackage.SCHEDULED_REGION__OWNING_SCHEDULE_MODEL:
+				return getOwningScheduleModel() != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -378,7 +378,7 @@
 
 	@Override
 	public @NonNull Iterable<@NonNull Region> getCallableRegions() {
-		return Iterables.filter(QVTscheduleUtil.getRegions(this), QVTscheduleUtil.IsCallableRegionPredicate.INSTANCE);
+		return Iterables.filter(QVTscheduleUtil.getOwnedRegions(this), QVTscheduleUtil.IsCallableRegionPredicate.INSTANCE);
 	}
 
 	@Override
@@ -391,7 +391,7 @@
 		if (region == this) {
 			return null;
 		}
-		for (Region invokingRegion; (invokingRegion = region.getInvokingRegion()) != null; ) {
+		for (Region invokingRegion; (invokingRegion = region.getOwningScheduledRegion()) != null; ) {
 			if (invokingRegion == this) {
 				return region;
 			}
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/VariableNodeImpl.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/VariableNodeImpl.java
index d466b1e8..4b72454 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/VariableNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/impl/VariableNodeImpl.java
@@ -34,22 +34,21 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.VariableNodeImpl#getVariable <em>Variable</em>}</li>
+ *   <li>{@link org.eclipse.qvtd.pivot.qvtschedule.impl.VariableNodeImpl#getReferredVariable <em>Referred Variable</em>}</li>
  * </ul>
  *
  * @generated
  */
 public abstract class VariableNodeImpl extends NodeImpl implements VariableNode {
 	/**
-	 * The cached value of the '{@link #getVariable() <em>Variable</em>}' reference.
+	 * The cached value of the '{@link #getReferredVariable() <em>Referred Variable</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getVariable()
+	 * @see #getReferredVariable()
 	 * @generated
 	 * @ordered
 	 */
-	protected VariableDeclaration variable;
-
+	protected VariableDeclaration referredVariable;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75,16 +74,16 @@
 	 * @generated
 	 */
 	@Override
-	public VariableDeclaration getVariable() {
-		if (variable != null && variable.eIsProxy()) {
-			InternalEObject oldVariable = (InternalEObject)variable;
-			variable = (VariableDeclaration)eResolveProxy(oldVariable);
-			if (variable != oldVariable) {
+	public VariableDeclaration getReferredVariable() {
+		if (referredVariable != null && referredVariable.eIsProxy()) {
+			InternalEObject oldReferredVariable = (InternalEObject)referredVariable;
+			referredVariable = (VariableDeclaration)eResolveProxy(oldReferredVariable);
+			if (referredVariable != oldReferredVariable) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.VARIABLE_NODE__VARIABLE, oldVariable, variable));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE, oldReferredVariable, referredVariable));
 			}
 		}
-		return variable;
+		return referredVariable;
 	}
 
 	/**
@@ -92,8 +91,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public VariableDeclaration basicGetVariable() {
-		return variable;
+	public VariableDeclaration basicGetReferredVariable() {
+		return referredVariable;
 	}
 
 	/**
@@ -102,11 +101,11 @@
 	 * @generated
 	 */
 	@Override
-	public void setVariable(VariableDeclaration newVariable) {
-		VariableDeclaration oldVariable = variable;
-		variable = newVariable;
+	public void setReferredVariable(VariableDeclaration newReferredVariable) {
+		VariableDeclaration oldReferredVariable = referredVariable;
+		referredVariable = newReferredVariable;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.VARIABLE_NODE__VARIABLE, oldVariable, variable));
+			eNotify(new ENotificationImpl(this, Notification.SET, QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE, oldReferredVariable, referredVariable));
 	}
 
 	/**
@@ -117,9 +116,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case QVTschedulePackage.VARIABLE_NODE__VARIABLE:
-				if (resolve) return getVariable();
-				return basicGetVariable();
+			case QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE:
+				if (resolve) return getReferredVariable();
+				return basicGetReferredVariable();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -132,8 +131,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case QVTschedulePackage.VARIABLE_NODE__VARIABLE:
-				setVariable((VariableDeclaration)newValue);
+			case QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE:
+				setReferredVariable((VariableDeclaration)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -147,8 +146,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.VARIABLE_NODE__VARIABLE:
-				setVariable((VariableDeclaration)null);
+			case QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE:
+				setReferredVariable((VariableDeclaration)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -162,8 +161,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case QVTschedulePackage.VARIABLE_NODE__VARIABLE:
-				return variable != null;
+			case QVTschedulePackage.VARIABLE_NODE__REFERRED_VARIABLE:
+				return referredVariable != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -171,14 +170,14 @@
 	@Override
 	public @NonNull Node createNode(@NonNull Role nodeRole, @NonNull Region region) {
 		VariableNodeImpl node = (VariableNodeImpl)super.createNode(nodeRole, region);
-		node.initializeVariable(region, getVariable());
+		node.initializeVariable(region, getReferredVariable());
 		return node;
 	}
 
 	@Override
 	public void initializeVariable(@NonNull Region region, /*@NonNull*/ VariableDeclaration variable) {
 		assert variable != null;
-		setVariable(variable);
+		setReferredVariable(variable);
 		assert variable.eContainer() != null;
 		assert variable.getName() != null;
 		addTypedElement(variable);
@@ -188,6 +187,6 @@
 	@Override
 	public @NonNull String toString() {
 		Role nodeRole = getNodeRole();
-		return nodeRole + "-" + getClass().getSimpleName().replace("Impl",  "") + "(" + (variable != null ? variable.toString() : getName()) + ")";
+		return nodeRole + "-" + getClass().getSimpleName().replace("Impl",  "") + "(" + (referredVariable != null ? referredVariable.toString() : getName()) + ")";
 	}
 } //VariableNodeImpl
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleAdapterFactory.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleAdapterFactory.java
index b3cdf76..118fb3e 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleAdapterFactory.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleAdapterFactory.java
@@ -25,9 +25,6 @@
 import org.eclipse.ocl.pivot.Namespace;
 import org.eclipse.ocl.pivot.util.Visitable;
 import org.eclipse.ocl.pivot.utilities.Nameable;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable;
 import org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage;
 import org.eclipse.qvtd.pivot.qvtschedule.*;
 
@@ -87,211 +84,199 @@
 	 */
 	protected QVTscheduleSwitch<@Nullable Adapter> modelSwitch =
 			new QVTscheduleSwitch<@Nullable Adapter>() {
-			@Override
-			public Adapter caseAbstractDatum(AbstractDatum object) {
-				return createAbstractDatumAdapter();
-			}
-			@Override
-			public Adapter caseBasicMappingRegion(BasicMappingRegion object) {
-				return createBasicMappingRegionAdapter();
-			}
-			@Override
-			public Adapter caseCastEdge(CastEdge object) {
-				return createCastEdgeAdapter();
-			}
-			@Override
-			public Adapter caseClassDatum(ClassDatum object) {
-				return createClassDatumAdapter();
-			}
-			@Override
-			public Adapter caseComposedNode(ComposedNode object) {
-				return createComposedNodeAdapter();
-			}
-			@Override
-			public Adapter caseConnection(Connection object) {
-				return createConnectionAdapter();
-			}
-			@Override
-			public Adapter caseConnectionEnd(ConnectionEnd object) {
-				return createConnectionEndAdapter();
-			}
-			@Override
-			public <CE extends ConnectionEnd> Adapter caseDatumConnection(DatumConnection<CE> object) {
-				return createDatumConnectionAdapter();
-			}
-			@Override
-			public Adapter caseDependencyNode(DependencyNode object) {
-				return createDependencyNodeAdapter();
-			}
-			@Override
-			public Adapter caseEdge(Edge object) {
-				return createEdgeAdapter();
-			}
-			@Override
-			public Adapter caseEdgeConnection(EdgeConnection object) {
-				return createEdgeConnectionAdapter();
-			}
-			@Override
-			public Adapter caseErrorNode(ErrorNode object) {
-				return createErrorNodeAdapter();
-			}
-			@Override
-			public Adapter caseExpressionEdge(ExpressionEdge object) {
-				return createExpressionEdgeAdapter();
-			}
-			@Override
-			public Adapter caseInputNode(InputNode object) {
-				return createInputNodeAdapter();
-			}
-			@Override
-			public Adapter caseIteratedEdge(IteratedEdge object) {
-				return createIteratedEdgeAdapter();
-			}
-			@Override
-			public Adapter caseIteratorNode(IteratorNode object) {
-				return createIteratorNodeAdapter();
-			}
-			@Override
-			public Adapter caseLoadingRegion(LoadingRegion object) {
-				return createLoadingRegionAdapter();
-			}
-			@Override
-			public Adapter caseMappingAction(MappingAction object) {
-				return createMappingActionAdapter();
-			}
-			@Override
-			public Adapter caseMappingRegion(MappingRegion object) {
-				return createMappingRegionAdapter();
-			}
-			@Override
-			public Adapter caseMicroMappingRegion(MicroMappingRegion object) {
-				return createMicroMappingRegionAdapter();
-			}
-			@Override
-			public Adapter caseNamedMappingRegion(NamedMappingRegion object) {
-				return createNamedMappingRegionAdapter();
-			}
-			@Override
-			public Adapter caseNavigableEdge(NavigableEdge object) {
-				return createNavigableEdgeAdapter();
-			}
-			@Override
-			public Adapter caseNavigationEdge(NavigationEdge object) {
-				return createNavigationEdgeAdapter();
-			}
-			@Override
-			public Adapter caseNode(Node object) {
-				return createNodeAdapter();
-			}
-			@Override
-			public Adapter caseNodeConnection(NodeConnection object) {
-				return createNodeConnectionAdapter();
-			}
-			@Override
-			public Adapter caseNullNode(NullNode object) {
-				return createNullNodeAdapter();
-			}
-			@Override
-			public Adapter caseOperationNode(OperationNode object) {
-				return createOperationNodeAdapter();
-			}
-			@Override
-			public Adapter caseOperationRegion(OperationRegion object) {
-				return createOperationRegionAdapter();
-			}
-			@Override
-			public Adapter casePatternTypedNode(PatternTypedNode object) {
-				return createPatternTypedNodeAdapter();
-			}
-			@Override
-			public Adapter casePatternVariableNode(PatternVariableNode object) {
-				return createPatternVariableNodeAdapter();
-			}
-			@Override
-			public Adapter casePredicateEdge(PredicateEdge object) {
-				return createPredicateEdgeAdapter();
-			}
-			@Override
-			public Adapter casePropertyDatum(PropertyDatum object) {
-				return createPropertyDatumAdapter();
-			}
-			@Override
-			public Adapter caseRecursionEdge(RecursionEdge object) {
-				return createRecursionEdgeAdapter();
-			}
-			@Override
-			public Adapter caseRegion(Region object) {
-				return createRegionAdapter();
-			}
-			@Override
-			public Adapter caseScheduleModel(ScheduleModel object) {
-				return createScheduleModelAdapter();
-			}
-			@Override
-			public Adapter caseScheduledRegion(ScheduledRegion object) {
-				return createScheduledRegionAdapter();
-			}
-			@Override
-			public Adapter caseSymbolable(Symbolable object) {
-				return createSymbolableAdapter();
-			}
-			@Override
-			public Adapter caseTrueNode(TrueNode object) {
-				return createTrueNodeAdapter();
-			}
-			@Override
-			public Adapter caseUnknownNode(UnknownNode object) {
-				return createUnknownNodeAdapter();
-			}
-			@Override
-			public Adapter caseVariableNode(VariableNode object) {
-				return createVariableNodeAdapter();
-			}
-			@Override
-			public Adapter caseDomainUsage(DomainUsage object) {
-				return createDomainUsageAdapter();
-			}
-			@Override
-			public Adapter caseGraphEdge(GraphEdge object) {
-				return createGraphEdgeAdapter();
-			}
-			@Override
-			public Adapter caseGraphNode(GraphNode object) {
-				return createGraphNodeAdapter();
-			}
-			@Override
-			public Adapter caseToDOTable(ToDOTable object) {
-				return createToDOTableAdapter();
-			}
-			@Override
-			public Adapter caseVisitable(Visitable object) {
-				return createVisitableAdapter();
-			}
-			@Override
-			public Adapter caseElement(Element object) {
-				return createElementAdapter();
-			}
-			@Override
-			public Adapter caseNameable(Nameable object) {
-				return createNameableAdapter();
-			}
-			@Override
-			public Adapter caseNamedElement(NamedElement object) {
-				return createNamedElementAdapter();
-			}
-			@Override
-			public Adapter caseNamespace(Namespace object) {
-				return createNamespaceAdapter();
-			}
-			@Override
-			public Adapter caseModel(Model object) {
-				return createModelAdapter();
-			}
-			@Override
-			public Adapter defaultCase(EObject object) {
-				return createEObjectAdapter();
-			}
-		};
+		@Override
+		public Adapter caseAbstractDatum(AbstractDatum object) {
+			return createAbstractDatumAdapter();
+		}
+		@Override
+		public Adapter caseBasicMappingRegion(BasicMappingRegion object) {
+			return createBasicMappingRegionAdapter();
+		}
+		@Override
+		public Adapter caseCastEdge(CastEdge object) {
+			return createCastEdgeAdapter();
+		}
+		@Override
+		public Adapter caseClassDatum(ClassDatum object) {
+			return createClassDatumAdapter();
+		}
+		@Override
+		public Adapter caseComposedNode(ComposedNode object) {
+			return createComposedNodeAdapter();
+		}
+		@Override
+		public Adapter caseConnection(Connection object) {
+			return createConnectionAdapter();
+		}
+		@Override
+		public Adapter caseConnectionEnd(ConnectionEnd object) {
+			return createConnectionEndAdapter();
+		}
+		@Override
+		public <CE extends ConnectionEnd> Adapter caseDatumConnection(DatumConnection<CE> object) {
+			return createDatumConnectionAdapter();
+		}
+		@Override
+		public Adapter caseDependencyNode(DependencyNode object) {
+			return createDependencyNodeAdapter();
+		}
+		@Override
+		public Adapter caseEdge(Edge object) {
+			return createEdgeAdapter();
+		}
+		@Override
+		public Adapter caseEdgeConnection(EdgeConnection object) {
+			return createEdgeConnectionAdapter();
+		}
+		@Override
+		public Adapter caseErrorNode(ErrorNode object) {
+			return createErrorNodeAdapter();
+		}
+		@Override
+		public Adapter caseExpressionEdge(ExpressionEdge object) {
+			return createExpressionEdgeAdapter();
+		}
+		@Override
+		public Adapter caseInputNode(InputNode object) {
+			return createInputNodeAdapter();
+		}
+		@Override
+		public Adapter caseIteratedEdge(IteratedEdge object) {
+			return createIteratedEdgeAdapter();
+		}
+		@Override
+		public Adapter caseIteratorNode(IteratorNode object) {
+			return createIteratorNodeAdapter();
+		}
+		@Override
+		public Adapter caseLoadingRegion(LoadingRegion object) {
+			return createLoadingRegionAdapter();
+		}
+		@Override
+		public Adapter caseMappingAction(MappingAction object) {
+			return createMappingActionAdapter();
+		}
+		@Override
+		public Adapter caseMappingRegion(MappingRegion object) {
+			return createMappingRegionAdapter();
+		}
+		@Override
+		public Adapter caseMicroMappingRegion(MicroMappingRegion object) {
+			return createMicroMappingRegionAdapter();
+		}
+		@Override
+		public Adapter caseNamedMappingRegion(NamedMappingRegion object) {
+			return createNamedMappingRegionAdapter();
+		}
+		@Override
+		public Adapter caseNavigableEdge(NavigableEdge object) {
+			return createNavigableEdgeAdapter();
+		}
+		@Override
+		public Adapter caseNavigationEdge(NavigationEdge object) {
+			return createNavigationEdgeAdapter();
+		}
+		@Override
+		public Adapter caseNode(Node object) {
+			return createNodeAdapter();
+		}
+		@Override
+		public Adapter caseNodeConnection(NodeConnection object) {
+			return createNodeConnectionAdapter();
+		}
+		@Override
+		public Adapter caseNullNode(NullNode object) {
+			return createNullNodeAdapter();
+		}
+		@Override
+		public Adapter caseOperationNode(OperationNode object) {
+			return createOperationNodeAdapter();
+		}
+		@Override
+		public Adapter caseOperationRegion(OperationRegion object) {
+			return createOperationRegionAdapter();
+		}
+		@Override
+		public Adapter casePatternTypedNode(PatternTypedNode object) {
+			return createPatternTypedNodeAdapter();
+		}
+		@Override
+		public Adapter casePatternVariableNode(PatternVariableNode object) {
+			return createPatternVariableNodeAdapter();
+		}
+		@Override
+		public Adapter casePredicateEdge(PredicateEdge object) {
+			return createPredicateEdgeAdapter();
+		}
+		@Override
+		public Adapter casePropertyDatum(PropertyDatum object) {
+			return createPropertyDatumAdapter();
+		}
+		@Override
+		public Adapter caseRecursionEdge(RecursionEdge object) {
+			return createRecursionEdgeAdapter();
+		}
+		@Override
+		public Adapter caseRegion(Region object) {
+			return createRegionAdapter();
+		}
+		@Override
+		public Adapter caseScheduleModel(ScheduleModel object) {
+			return createScheduleModelAdapter();
+		}
+		@Override
+		public Adapter caseScheduledRegion(ScheduledRegion object) {
+			return createScheduledRegionAdapter();
+		}
+		@Override
+		public Adapter caseSymbolable(Symbolable object) {
+			return createSymbolableAdapter();
+		}
+		@Override
+		public Adapter caseTrueNode(TrueNode object) {
+			return createTrueNodeAdapter();
+		}
+		@Override
+		public Adapter caseUnknownNode(UnknownNode object) {
+			return createUnknownNodeAdapter();
+		}
+		@Override
+		public Adapter caseVariableNode(VariableNode object) {
+			return createVariableNodeAdapter();
+		}
+		@Override
+		public Adapter caseDomainUsage(DomainUsage object) {
+			return createDomainUsageAdapter();
+		}
+		@Override
+		public Adapter caseVisitable(Visitable object) {
+			return createVisitableAdapter();
+		}
+		@Override
+		public Adapter caseElement(Element object) {
+			return createElementAdapter();
+		}
+		@Override
+		public Adapter caseNameable(Nameable object) {
+			return createNameableAdapter();
+		}
+		@Override
+		public Adapter caseNamedElement(NamedElement object) {
+			return createNamedElementAdapter();
+		}
+		@Override
+		public Adapter caseNamespace(Namespace object) {
+			return createNamespaceAdapter();
+		}
+		@Override
+		public Adapter caseModel(Model object) {
+			return createModelAdapter();
+		}
+		@Override
+		public Adapter defaultCase(EObject object) {
+			return createEObjectAdapter();
+		}
+	};
 
 	/**
 	 * Creates an adapter for the <code>target</code>.
@@ -560,48 +545,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge <em>Graph Edge</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge
-	 * @generated
-	 */
-	public Adapter createGraphEdgeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode <em>Graph Node</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode
-	 * @generated
-	 */
-	public Adapter createGraphNodeAdapter() {
-		return null;
-	}
-
-	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable <em>To DO Table</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable
-	 * @generated
-	 */
-	public Adapter createToDOTableAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.pivot.qvtschedule.ErrorNode <em>Error Node</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleSwitch.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleSwitch.java
index 21ebd97..2713ca1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleSwitch.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/emf-gen/org/eclipse/qvtd/pivot/qvtschedule/util/QVTscheduleSwitch.java
@@ -24,9 +24,6 @@
 import org.eclipse.ocl.pivot.Namespace;
 import org.eclipse.ocl.pivot.util.Visitable;
 import org.eclipse.ocl.pivot.utilities.Nameable;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode;
-import org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable;
 import org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage;
 import org.eclipse.qvtd.pivot.qvtschedule.*;
 
@@ -101,10 +98,8 @@
 				if (result == null) result = caseMappingRegion(basicMappingRegion);
 				if (result == null) result = caseRegion(basicMappingRegion);
 				if (result == null) result = caseElement(basicMappingRegion);
-				if (result == null) result = caseGraphNode(basicMappingRegion);
 				if (result == null) result = caseNameable(basicMappingRegion);
 				if (result == null) result = caseSymbolable(basicMappingRegion);
-				if (result == null) result = caseToDOTable(basicMappingRegion);
 				if (result == null) result = caseVisitable(basicMappingRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -116,7 +111,6 @@
 				if (result == null) result = caseEdge(castEdge);
 				if (result == null) result = caseConnectionEnd(castEdge);
 				if (result == null) result = caseElement(castEdge);
-				if (result == null) result = caseGraphEdge(castEdge);
 				if (result == null) result = caseNameable(castEdge);
 				if (result == null) result = caseVisitable(castEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -137,7 +131,6 @@
 				if (result == null) result = caseNode(composedNode);
 				if (result == null) result = caseElement(composedNode);
 				if (result == null) result = caseConnectionEnd(composedNode);
-				if (result == null) result = caseGraphNode(composedNode);
 				if (result == null) result = caseNameable(composedNode);
 				if (result == null) result = caseVisitable(composedNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -163,8 +156,6 @@
 				DatumConnection<?> datumConnection = (DatumConnection<?>)theEObject;
 				T result = caseDatumConnection(datumConnection);
 				if (result == null) result = caseConnection(datumConnection);
-				if (result == null) result = caseGraphEdge(datumConnection);
-				if (result == null) result = caseGraphNode(datumConnection);
 				if (result == null) result = caseElement(datumConnection);
 				if (result == null) result = caseNameable(datumConnection);
 				if (result == null) result = caseSymbolable(datumConnection);
@@ -178,7 +169,6 @@
 				if (result == null) result = caseNode(dependencyNode);
 				if (result == null) result = caseElement(dependencyNode);
 				if (result == null) result = caseConnectionEnd(dependencyNode);
-				if (result == null) result = caseGraphNode(dependencyNode);
 				if (result == null) result = caseNameable(dependencyNode);
 				if (result == null) result = caseVisitable(dependencyNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -188,7 +178,6 @@
 				Edge edge = (Edge)theEObject;
 				T result = caseEdge(edge);
 				if (result == null) result = caseElement(edge);
-				if (result == null) result = caseGraphEdge(edge);
 				if (result == null) result = caseNameable(edge);
 				if (result == null) result = caseVisitable(edge);
 				if (result == null) result = defaultCase(theEObject);
@@ -199,8 +188,6 @@
 				T result = caseEdgeConnection(edgeConnection);
 				if (result == null) result = caseDatumConnection(edgeConnection);
 				if (result == null) result = caseConnection(edgeConnection);
-				if (result == null) result = caseGraphEdge(edgeConnection);
-				if (result == null) result = caseGraphNode(edgeConnection);
 				if (result == null) result = caseElement(edgeConnection);
 				if (result == null) result = caseNameable(edgeConnection);
 				if (result == null) result = caseSymbolable(edgeConnection);
@@ -214,7 +201,6 @@
 				if (result == null) result = caseNode(errorNode);
 				if (result == null) result = caseElement(errorNode);
 				if (result == null) result = caseConnectionEnd(errorNode);
-				if (result == null) result = caseGraphNode(errorNode);
 				if (result == null) result = caseNameable(errorNode);
 				if (result == null) result = caseVisitable(errorNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -225,7 +211,6 @@
 				T result = caseExpressionEdge(expressionEdge);
 				if (result == null) result = caseEdge(expressionEdge);
 				if (result == null) result = caseElement(expressionEdge);
-				if (result == null) result = caseGraphEdge(expressionEdge);
 				if (result == null) result = caseNameable(expressionEdge);
 				if (result == null) result = caseVisitable(expressionEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -237,7 +222,6 @@
 				if (result == null) result = caseNode(inputNode);
 				if (result == null) result = caseElement(inputNode);
 				if (result == null) result = caseConnectionEnd(inputNode);
-				if (result == null) result = caseGraphNode(inputNode);
 				if (result == null) result = caseNameable(inputNode);
 				if (result == null) result = caseVisitable(inputNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -248,7 +232,6 @@
 				T result = caseIteratedEdge(iteratedEdge);
 				if (result == null) result = caseEdge(iteratedEdge);
 				if (result == null) result = caseElement(iteratedEdge);
-				if (result == null) result = caseGraphEdge(iteratedEdge);
 				if (result == null) result = caseNameable(iteratedEdge);
 				if (result == null) result = caseVisitable(iteratedEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -261,7 +244,6 @@
 				if (result == null) result = caseNode(iteratorNode);
 				if (result == null) result = caseElement(iteratorNode);
 				if (result == null) result = caseConnectionEnd(iteratorNode);
-				if (result == null) result = caseGraphNode(iteratorNode);
 				if (result == null) result = caseNameable(iteratorNode);
 				if (result == null) result = caseVisitable(iteratorNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -272,10 +254,8 @@
 				T result = caseLoadingRegion(loadingRegion);
 				if (result == null) result = caseRegion(loadingRegion);
 				if (result == null) result = caseElement(loadingRegion);
-				if (result == null) result = caseGraphNode(loadingRegion);
 				if (result == null) result = caseNameable(loadingRegion);
 				if (result == null) result = caseSymbolable(loadingRegion);
-				if (result == null) result = caseToDOTable(loadingRegion);
 				if (result == null) result = caseVisitable(loadingRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -293,10 +273,8 @@
 				T result = caseMappingRegion(mappingRegion);
 				if (result == null) result = caseRegion(mappingRegion);
 				if (result == null) result = caseElement(mappingRegion);
-				if (result == null) result = caseGraphNode(mappingRegion);
 				if (result == null) result = caseNameable(mappingRegion);
 				if (result == null) result = caseSymbolable(mappingRegion);
-				if (result == null) result = caseToDOTable(mappingRegion);
 				if (result == null) result = caseVisitable(mappingRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -307,10 +285,8 @@
 				if (result == null) result = caseMappingRegion(microMappingRegion);
 				if (result == null) result = caseRegion(microMappingRegion);
 				if (result == null) result = caseElement(microMappingRegion);
-				if (result == null) result = caseGraphNode(microMappingRegion);
 				if (result == null) result = caseNameable(microMappingRegion);
 				if (result == null) result = caseSymbolable(microMappingRegion);
-				if (result == null) result = caseToDOTable(microMappingRegion);
 				if (result == null) result = caseVisitable(microMappingRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -321,10 +297,8 @@
 				if (result == null) result = caseMappingRegion(namedMappingRegion);
 				if (result == null) result = caseRegion(namedMappingRegion);
 				if (result == null) result = caseElement(namedMappingRegion);
-				if (result == null) result = caseGraphNode(namedMappingRegion);
 				if (result == null) result = caseNameable(namedMappingRegion);
 				if (result == null) result = caseSymbolable(namedMappingRegion);
-				if (result == null) result = caseToDOTable(namedMappingRegion);
 				if (result == null) result = caseVisitable(namedMappingRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -335,7 +309,6 @@
 				if (result == null) result = caseEdge(navigableEdge);
 				if (result == null) result = caseConnectionEnd(navigableEdge);
 				if (result == null) result = caseElement(navigableEdge);
-				if (result == null) result = caseGraphEdge(navigableEdge);
 				if (result == null) result = caseNameable(navigableEdge);
 				if (result == null) result = caseVisitable(navigableEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -348,7 +321,6 @@
 				if (result == null) result = caseEdge(navigationEdge);
 				if (result == null) result = caseConnectionEnd(navigationEdge);
 				if (result == null) result = caseElement(navigationEdge);
-				if (result == null) result = caseGraphEdge(navigationEdge);
 				if (result == null) result = caseNameable(navigationEdge);
 				if (result == null) result = caseVisitable(navigationEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -359,7 +331,6 @@
 				T result = caseNode(node);
 				if (result == null) result = caseElement(node);
 				if (result == null) result = caseConnectionEnd(node);
-				if (result == null) result = caseGraphNode(node);
 				if (result == null) result = caseNameable(node);
 				if (result == null) result = caseVisitable(node);
 				if (result == null) result = defaultCase(theEObject);
@@ -370,8 +341,6 @@
 				T result = caseNodeConnection(nodeConnection);
 				if (result == null) result = caseDatumConnection(nodeConnection);
 				if (result == null) result = caseConnection(nodeConnection);
-				if (result == null) result = caseGraphEdge(nodeConnection);
-				if (result == null) result = caseGraphNode(nodeConnection);
 				if (result == null) result = caseElement(nodeConnection);
 				if (result == null) result = caseNameable(nodeConnection);
 				if (result == null) result = caseSymbolable(nodeConnection);
@@ -385,7 +354,6 @@
 				if (result == null) result = caseNode(nullNode);
 				if (result == null) result = caseElement(nullNode);
 				if (result == null) result = caseConnectionEnd(nullNode);
-				if (result == null) result = caseGraphNode(nullNode);
 				if (result == null) result = caseNameable(nullNode);
 				if (result == null) result = caseVisitable(nullNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -397,7 +365,6 @@
 				if (result == null) result = caseNode(operationNode);
 				if (result == null) result = caseElement(operationNode);
 				if (result == null) result = caseConnectionEnd(operationNode);
-				if (result == null) result = caseGraphNode(operationNode);
 				if (result == null) result = caseNameable(operationNode);
 				if (result == null) result = caseVisitable(operationNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -408,10 +375,8 @@
 				T result = caseOperationRegion(operationRegion);
 				if (result == null) result = caseRegion(operationRegion);
 				if (result == null) result = caseElement(operationRegion);
-				if (result == null) result = caseGraphNode(operationRegion);
 				if (result == null) result = caseNameable(operationRegion);
 				if (result == null) result = caseSymbolable(operationRegion);
-				if (result == null) result = caseToDOTable(operationRegion);
 				if (result == null) result = caseVisitable(operationRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -422,7 +387,6 @@
 				if (result == null) result = caseNode(patternTypedNode);
 				if (result == null) result = caseElement(patternTypedNode);
 				if (result == null) result = caseConnectionEnd(patternTypedNode);
-				if (result == null) result = caseGraphNode(patternTypedNode);
 				if (result == null) result = caseNameable(patternTypedNode);
 				if (result == null) result = caseVisitable(patternTypedNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -435,7 +399,6 @@
 				if (result == null) result = caseNode(patternVariableNode);
 				if (result == null) result = caseElement(patternVariableNode);
 				if (result == null) result = caseConnectionEnd(patternVariableNode);
-				if (result == null) result = caseGraphNode(patternVariableNode);
 				if (result == null) result = caseNameable(patternVariableNode);
 				if (result == null) result = caseVisitable(patternVariableNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -446,7 +409,6 @@
 				T result = casePredicateEdge(predicateEdge);
 				if (result == null) result = caseEdge(predicateEdge);
 				if (result == null) result = caseElement(predicateEdge);
-				if (result == null) result = caseGraphEdge(predicateEdge);
 				if (result == null) result = caseNameable(predicateEdge);
 				if (result == null) result = caseVisitable(predicateEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -466,7 +428,6 @@
 				T result = caseRecursionEdge(recursionEdge);
 				if (result == null) result = caseEdge(recursionEdge);
 				if (result == null) result = caseElement(recursionEdge);
-				if (result == null) result = caseGraphEdge(recursionEdge);
 				if (result == null) result = caseNameable(recursionEdge);
 				if (result == null) result = caseVisitable(recursionEdge);
 				if (result == null) result = defaultCase(theEObject);
@@ -476,10 +437,8 @@
 				Region region = (Region)theEObject;
 				T result = caseRegion(region);
 				if (result == null) result = caseElement(region);
-				if (result == null) result = caseGraphNode(region);
 				if (result == null) result = caseNameable(region);
 				if (result == null) result = caseSymbolable(region);
-				if (result == null) result = caseToDOTable(region);
 				if (result == null) result = caseVisitable(region);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -501,10 +460,8 @@
 				T result = caseScheduledRegion(scheduledRegion);
 				if (result == null) result = caseRegion(scheduledRegion);
 				if (result == null) result = caseElement(scheduledRegion);
-				if (result == null) result = caseGraphNode(scheduledRegion);
 				if (result == null) result = caseNameable(scheduledRegion);
 				if (result == null) result = caseSymbolable(scheduledRegion);
-				if (result == null) result = caseToDOTable(scheduledRegion);
 				if (result == null) result = caseVisitable(scheduledRegion);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -521,7 +478,6 @@
 				if (result == null) result = caseNode(trueNode);
 				if (result == null) result = caseElement(trueNode);
 				if (result == null) result = caseConnectionEnd(trueNode);
-				if (result == null) result = caseGraphNode(trueNode);
 				if (result == null) result = caseNameable(trueNode);
 				if (result == null) result = caseVisitable(trueNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -533,7 +489,6 @@
 				if (result == null) result = caseNode(unknownNode);
 				if (result == null) result = caseElement(unknownNode);
 				if (result == null) result = caseConnectionEnd(unknownNode);
-				if (result == null) result = caseGraphNode(unknownNode);
 				if (result == null) result = caseNameable(unknownNode);
 				if (result == null) result = caseVisitable(unknownNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -545,7 +500,6 @@
 				if (result == null) result = caseNode(variableNode);
 				if (result == null) result = caseElement(variableNode);
 				if (result == null) result = caseConnectionEnd(variableNode);
-				if (result == null) result = caseGraphNode(variableNode);
 				if (result == null) result = caseNameable(variableNode);
 				if (result == null) result = caseVisitable(variableNode);
 				if (result == null) result = defaultCase(theEObject);
@@ -557,24 +511,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case QVTschedulePackage.GRAPH_EDGE: {
-				GraphEdge graphEdge = (GraphEdge)theEObject;
-				T result = caseGraphEdge(graphEdge);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case QVTschedulePackage.GRAPH_NODE: {
-				GraphNode graphNode = (GraphNode)theEObject;
-				T result = caseGraphNode(graphNode);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
-			case QVTschedulePackage.TO_DO_TABLE: {
-				ToDOTable toDOTable = (ToDOTable)theEObject;
-				T result = caseToDOTable(toDOTable);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -850,51 +786,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Graph Edge</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Graph Edge</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseGraphEdge(GraphEdge object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Graph Node</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Graph Node</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseGraphNode(GraphNode object) {
-		return null;
-	}
-
-	/**
-	 * Returns the result of interpreting the object as an instance of '<em>To DO Table</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>To DO Table</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseToDOTable(ToDOTable object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Error Node</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.ecore b/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.ecore
index 7d8dff9..3543991 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.ecore
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.ecore
@@ -8,22 +8,22 @@
     <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>

   </eAnnotations>

   <eClassifiers xsi:type="ecore:EClass" name="AbstractDatum" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="producedBy" upperBound="-1"

-        eType="#//MappingAction" eOpposite="#//MappingAction/productions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="requiredBy" upperBound="-1"

-        eType="#//MappingAction" derived="true" eOpposite="#//MappingAction/requisites"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="typedModel" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="producedByActions" upperBound="-1"

+        eType="#//MappingAction" eOpposite="#//MappingAction/producedDatums"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredTypedModel" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvtbase/model/QVTbase.ecore#T-qvtbase-TypedModel"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="requiredByActions" upperBound="-1"

+        eType="#//MappingAction" derived="true" eOpposite="#//MappingAction/requiredDatums"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="BasicMappingRegion" eSuperTypes="#//MappingRegion">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"

+        changeable="false" volatile="true" transient="true" derived="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredMapping" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore#T-qvtcore-Mapping">

       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

         <details key="documentation" value="The property to navigate from source to target."/>

       </eAnnotations>

     </eStructuralFeatures>

-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"

-        changeable="false" volatile="true" transient="true" derived="true"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="CastEdge" eSuperTypes="#//NavigableEdge">

     <eStructuralFeatures xsi:type="ecore:EReference" name="property" lowerBound="1"

@@ -33,33 +33,33 @@
         <details key="documentation" value="The property to navigate from source to target."/>

       </eAnnotations>

     </eStructuralFeatures>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="primaryClass" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredClass" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Class"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="ClassDatum" eSuperTypes="#//AbstractDatum">

     <eStructuralFeatures xsi:type="ecore:EReference" name="completeClass" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-CompleteClass"

         transient="true" derived="true"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="primaryClass" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningPropertyDatums" upperBound="-1"

+        eType="#//PropertyDatum" containment="true" eOpposite="#//PropertyDatum/owningClassDatum"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningScheduleModel" lowerBound="1"

+        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/ownedClassDatums"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredClass" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Class"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="propertyDatums" upperBound="-1"

-        eType="#//PropertyDatum" containment="true" eOpposite="#//PropertyDatum/classDatum"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="scheduleModel" lowerBound="1"

-        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/classDatums"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="superClassDatums" upperBound="-1"

         eType="#//ClassDatum"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="ComposedNode" eSuperTypes="#//Node"/>

   <eClassifiers xsi:type="ecore:EClass" name="Connection" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable #//Symbolable">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" lowerBound="1"

-        eType="#//ScheduledRegion" eOpposite="#//ScheduledRegion/connections"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningScheduledRegion"

+        lowerBound="1" eType="#//ScheduledRegion" eOpposite="#//ScheduledRegion/ownedConnections"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="ConnectionEnd" abstract="true" interface="true">

     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

       <details key="documentation" value="A ConnectionEnd may be the Node/Edge at the end of a NodeConnection/EdgeConnection."/>

     </eAnnotations>

   </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="DatumConnection" abstract="true" eSuperTypes="#//Connection #//GraphEdge #//GraphNode">

+  <eClassifiers xsi:type="ecore:EClass" name="DatumConnection" abstract="true" eSuperTypes="#//Connection">

     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

       <details key="documentation" value="A DatumConnection establishes that one or more source edges/nodes are available for use by one or more target edges/nodes.&#xD;&#xA;Derivations refine the availability to edges or nodes, pass by value, optional existence or mandatory existence."/>

     </eAnnotations>

@@ -75,15 +75,15 @@
     </eStructuralFeatures>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="DependencyNode" eSuperTypes="#//Node"/>

-  <eClassifiers xsi:type="ecore:EClass" name="Edge" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element #//GraphEdge ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable">

+  <eClassifiers xsi:type="ecore:EClass" name="Edge" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable">

     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

       <details key="documentation" value="An edge is directed and abstracts any Node interconnection within a Region."/>

     </eAnnotations>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="edgeRole" lowerBound="1"

         eType="#//Role"/>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" lowerBound="1"

-        eType="#//Region" eOpposite="#//Region/edges"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningRegion" lowerBound="1"

+        eType="#//Region" eOpposite="#//Region/ownedEdges"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="sourceNode" lowerBound="1"

         eType="#//Node" eOpposite="#//Node/outgoingEdges"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="targetNode" lowerBound="1"

@@ -93,7 +93,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

       <details key="documentation" value="An EdgeConnection supports an existence dependency between the region(s) that produce a navigation edge&#xD;&#xA;and the region(s) that consume it."/>

     </eAnnotations>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="property" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Property"/>

     <eGenericSuperTypes eClassifier="#//DatumConnection">

       <eTypeArguments eClassifier="#//NavigableEdge"/>

@@ -106,14 +106,14 @@
   <eClassifiers xsi:type="ecore:EClass" name="IteratorNode" eSuperTypes="#//VariableNode"/>

   <eClassifiers xsi:type="ecore:EClass" name="LoadingRegion" eSuperTypes="#//Region"/>

   <eClassifiers xsi:type="ecore:EClass" name="MappingAction" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="mapping" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningScheduleModel" lowerBound="1"

+        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/ownedMappingActions"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="producedDatums" upperBound="-1"

+        eType="#//AbstractDatum" eOpposite="#//AbstractDatum/producedByActions"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredMapping" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.qvtd.pivot.qvtcore/model/QVTcore.ecore#T-qvtcore-Mapping"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="productions" upperBound="-1"

-        eType="#//AbstractDatum" eOpposite="#//AbstractDatum/producedBy"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="requisites" upperBound="-1"

-        eType="#//AbstractDatum" eOpposite="#//AbstractDatum/requiredBy"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="scheduleModel" lowerBound="1"

-        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/mappingActions"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="requiredDatums" upperBound="-1"

+        eType="#//AbstractDatum" eOpposite="#//AbstractDatum/requiredByActions"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="MappingRegion" abstract="true" eSuperTypes="#//Region"/>

   <eClassifiers xsi:type="ecore:EClass" name="MicroMappingRegion" eSuperTypes="#//MappingRegion">

@@ -155,14 +155,14 @@
         <details key="documentation" value="True if this edge is a partial many-to-one relationship."/>

       </eAnnotations>

     </eStructuralFeatures>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="property" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Property">

       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

         <details key="documentation" value="The property to navigate from source to target."/>

       </eAnnotations>

     </eStructuralFeatures>

   </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Node" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element #//ConnectionEnd #//GraphNode ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable">

+  <eClassifiers xsi:type="ecore:EClass" name="Node" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element #//ConnectionEnd ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable">

     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

       <details key="documentation" value="AbstractNode provides the analysis and status of a node in the pattern match or construction of a Mapping&#xD;&#xA;or Composite Region."/>

     </eAnnotations>

@@ -182,8 +182,8 @@
         eType="#//NodeConnection"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="outgoingEdges" upperBound="-1"

         eType="#//Edge" eOpposite="#//Edge/sourceNode"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" lowerBound="1"

-        eType="#//Region" eOpposite="#//Region/nodes"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningRegion" lowerBound="1"

+        eType="#//Region" eOpposite="#//Region/ownedNodes"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="NodeConnection">

     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">

@@ -213,7 +213,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="headNodes" upperBound="-1"

         eType="#//Node"/>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="operation" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredOperation" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Operation"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="resultNode" eType="#//Node"/>

   </eClassifiers>

@@ -227,48 +227,46 @@
   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="PredicateEdge" eSuperTypes="#//Edge"/>

   <eClassifiers xsi:type="ecore:EClass" name="PropertyDatum" eSuperTypes="#//AbstractDatum">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="property" lowerBound="1"

-        eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Property"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="classDatum" lowerBound="1"

-        eType="#//ClassDatum" eOpposite="#//ClassDatum/propertyDatums"/>

     <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//PropertyDatum"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="super" upperBound="-1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningClassDatum" lowerBound="1"

+        eType="#//ClassDatum" eOpposite="#//ClassDatum/owningPropertyDatums"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredProperty" lowerBound="1"

+        eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Property"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="superPropertyDatums" upperBound="-1"

         eType="#//PropertyDatum"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="RecursionEdge" eSuperTypes="#//Edge">

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="primary" lowerBound="1"

         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>

   </eClassifiers>

-  <eClassifiers xsi:type="ecore:EClass" name="Region" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element #//GraphNode ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable #//Symbolable #//ToDOTable">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="edges" upperBound="-1"

-        eType="#//Edge" containment="true" eOpposite="#//Edge/region"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="invokingRegion" eType="#//ScheduledRegion"

-        eOpposite="#//ScheduledRegion/regions"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"

-        eType="#//Node" containment="true" eOpposite="#//Node/region"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="region" lowerBound="1"

-        eType="#//Region"/>

+  <eClassifiers xsi:type="ecore:EClass" name="Region" abstract="true" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Element ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Nameable #//Symbolable">

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedEdges" upperBound="-1"

+        eType="#//Edge" containment="true" eOpposite="#//Edge/owningRegion"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedNodes" upperBound="-1"

+        eType="#//Node" containment="true" eOpposite="#//Node/owningRegion"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningScheduledRegion"

+        eType="#//ScheduledRegion" eOpposite="#//ScheduledRegion/ownedRegions"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="ScheduleModel" eSuperTypes="../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-Model">

     <eStructuralFeatures xsi:type="ecore:EReference" name="loadingRegion" lowerBound="1"

         eType="#//LoadingRegion"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="scheduledRegion" eType="#//ScheduledRegion"

-        containment="true" eOpposite="#//ScheduledRegion/scheduleModel"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="classDatums" upperBound="-1"

-        eType="#//ClassDatum" containment="true" eOpposite="#//ClassDatum/scheduleModel"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="otherMappingRegions" upperBound="-1"

-        eType="#//MappingRegion" containment="true"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="mappingActions" upperBound="-1"

-        eType="#//MappingAction" containment="true" eOpposite="#//MappingAction/scheduleModel"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedClassDatums" upperBound="-1"

+        eType="#//ClassDatum" containment="true" eOpposite="#//ClassDatum/owningScheduleModel"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedMappingActions" upperBound="-1"

+        eType="#//MappingAction" containment="true" eOpposite="#//MappingAction/owningScheduleModel"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedOtherMappingRegions"

+        upperBound="-1" eType="#//MappingRegion" containment="true"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedScheduledRegion" eType="#//ScheduledRegion"

+        containment="true" eOpposite="#//ScheduledRegion/owningScheduleModel"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="ScheduledRegion" eSuperTypes="#//Region">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="connections" upperBound="-1"

-        eType="#//Connection" containment="true" eOpposite="#//Connection/region"/>

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="regions" upperBound="-1"

-        eType="#//Region" containment="true" eOpposite="#//Region/invokingRegion"/>

-    <eStructuralFeatures xsi:type="ecore:EReference" name="scheduleModel" lowerBound="1"

-        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/scheduledRegion"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedConnections" upperBound="-1"

+        eType="#//Connection" containment="true" eOpposite="#//Connection/owningScheduledRegion"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRegions" upperBound="-1"

+        eType="#//Region" containment="true" eOpposite="#//Region/owningScheduledRegion"/>

+    <eStructuralFeatures xsi:type="ecore:EReference" name="owningScheduleModel" lowerBound="1"

+        eType="#//ScheduleModel" eOpposite="#//ScheduleModel/ownedScheduledRegion"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="Symbolable" abstract="true" interface="true">

     <eStructuralFeatures xsi:type="ecore:EAttribute" name="symbolName" lowerBound="1"

@@ -277,7 +275,7 @@
   <eClassifiers xsi:type="ecore:EClass" name="TrueNode" eSuperTypes="#//Node"/>

   <eClassifiers xsi:type="ecore:EClass" name="UnknownNode" eSuperTypes="#//Node"/>

   <eClassifiers xsi:type="ecore:EClass" name="VariableNode" abstract="true" eSuperTypes="#//Node">

-    <eStructuralFeatures xsi:type="ecore:EReference" name="variable" lowerBound="1"

+    <eStructuralFeatures xsi:type="ecore:EReference" name="referredVariable" lowerBound="1"

         eType="ecore:EClass ../../org.eclipse.ocl.pivot/model/Pivot.ecore#T-pivot-VariableDeclaration"/>

   </eClassifiers>

   <eClassifiers xsi:type="ecore:EEnum" name="ConnectionRole">

@@ -354,10 +352,4 @@
   </eClassifiers>

   <eClassifiers xsi:type="ecore:EClass" name="DomainUsage" instanceClassName="org.eclipse.qvtd.pivot.qvtcore.analysis.DomainUsage"

       abstract="true" interface="true"/>

-  <eClassifiers xsi:type="ecore:EClass" name="GraphEdge" instanceClassName="org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphEdge"

-      abstract="true" interface="true"/>

-  <eClassifiers xsi:type="ecore:EClass" name="GraphNode" instanceClassName="org.eclipse.qvtd.pivot.qvtbase.graphs.GraphStringBuilder.GraphNode"

-      abstract="true" interface="true"/>

-  <eClassifiers xsi:type="ecore:EClass" name="ToDOTable" instanceClassName="org.eclipse.qvtd.pivot.qvtbase.graphs.ToDOT.ToDOTable"

-      abstract="true" interface="true"/>

 </ecore:EPackage>

diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.genmodel b/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.genmodel
index 54be1e9..155b542 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.genmodel
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/model/QVTschedule.genmodel
@@ -34,28 +34,28 @@
       <genEnumLiterals ecoreEnumLiteral="QVTschedule.ecore#//Role/OTHER"/>
     </genEnums>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//AbstractDatum">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/producedBy"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/requiredBy"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/typedModel"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/producedByActions"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/referredTypedModel"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//AbstractDatum/requiredByActions"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//BasicMappingRegion">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//BasicMappingRegion/mapping"/>
       <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//BasicMappingRegion/name"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//BasicMappingRegion/referredMapping"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//CastEdge">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//CastEdge/property"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//CastEdge/primaryClass"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//CastEdge/referredClass"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//ClassDatum">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/completeClass"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/primaryClass"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/propertyDatums"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/scheduleModel"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/owningPropertyDatums"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/owningScheduleModel"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/referredClass"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ClassDatum/superClassDatums"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//ComposedNode"/>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//Connection">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Connection/region"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Connection/owningScheduledRegion"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//ConnectionEnd"/>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//DatumConnection">
@@ -68,12 +68,12 @@
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//Edge">
       <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//Edge/edgeRole"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//Edge/name"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Edge/region"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Edge/owningRegion"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Edge/sourceNode"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Edge/targetNode"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//EdgeConnection">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//EdgeConnection/property"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//EdgeConnection/referredProperty"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//ErrorNode"/>
     <genClasses ecoreClass="QVTschedule.ecore#//ExpressionEdge"/>
@@ -82,10 +82,10 @@
     <genClasses ecoreClass="QVTschedule.ecore#//IteratorNode"/>
     <genClasses ecoreClass="QVTschedule.ecore#//LoadingRegion"/>
     <genClasses ecoreClass="QVTschedule.ecore#//MappingAction">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/mapping"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/productions"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/requisites"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/scheduleModel"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/owningScheduleModel"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/producedDatums"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/referredMapping"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//MappingAction/requiredDatums"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//MappingRegion"/>
     <genClasses ecoreClass="QVTschedule.ecore#//MicroMappingRegion">
@@ -105,7 +105,7 @@
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//NavigationEdge">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//NavigationEdge/partial"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//NavigationEdge/property"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//NavigationEdge/referredProperty"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//Node">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Node/classDatum"/>
@@ -115,7 +115,7 @@
       <genFeatures property="Readonly" notify="false" createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//Node/nodeRole"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Node/outgoingConnections"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Node/outgoingEdges"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Node/region"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Node/owningRegion"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//NodeConnection">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//NodeConnection/classDatum"/>
@@ -130,7 +130,7 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//OperationRegion/dependencyNodes"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//OperationRegion/headNodes"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//OperationRegion/name"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//OperationRegion/operation"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//OperationRegion/referredOperation"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//OperationRegion/resultNode"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//PatternTypedNode">
@@ -141,32 +141,31 @@
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//PredicateEdge"/>
     <genClasses ecoreClass="QVTschedule.ecore#//PropertyDatum">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/property"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/classDatum"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/opposite"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/super"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/owningClassDatum"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/referredProperty"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//PropertyDatum/superPropertyDatums"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//RecursionEdge">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//RecursionEdge/primary"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//Region">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/edges"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/invokingRegion"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/nodes"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/region"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/ownedEdges"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/ownedNodes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//Region/owningScheduledRegion"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//ScheduleModel">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/loadingRegion"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/scheduledRegion"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/classDatums"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/otherMappingRegions"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/mappingActions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/ownedClassDatums"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/ownedMappingActions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/ownedOtherMappingRegions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduleModel/ownedScheduledRegion"/>
     </genClasses>
     <genClasses ecoreClass="QVTschedule.ecore#//ScheduledRegion">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/connections"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//ScheduledRegion/name"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/regions"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/scheduleModel"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/ownedConnections"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/ownedRegions"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference QVTschedule.ecore#//ScheduledRegion/owningScheduleModel"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//Symbolable">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute QVTschedule.ecore#//Symbolable/symbolName"/>
@@ -174,11 +173,8 @@
     <genClasses ecoreClass="QVTschedule.ecore#//TrueNode"/>
     <genClasses ecoreClass="QVTschedule.ecore#//UnknownNode"/>
     <genClasses ecoreClass="QVTschedule.ecore#//VariableNode">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//VariableNode/variable"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference QVTschedule.ecore#//VariableNode/referredVariable"/>
     </genClasses>
     <genClasses image="false" ecoreClass="QVTschedule.ecore#//DomainUsage"/>
-    <genClasses image="false" ecoreClass="QVTschedule.ecore#//GraphEdge"/>
-    <genClasses image="false" ecoreClass="QVTschedule.ecore#//GraphNode"/>
-    <genClasses image="false" ecoreClass="QVTschedule.ecore#//ToDOTable"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/QVTscheduleUtil.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/QVTscheduleUtil.java
index 5d49f58..f60d319 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/QVTscheduleUtil.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/QVTscheduleUtil.java
@@ -550,10 +550,6 @@
 		return ClassUtil.nonNullState(classDatum.getCompleteClass());
 	}
 
-	public static @NonNull Iterable<@NonNull Connection> getConnections(@NonNull ScheduledRegion scheduledRegion) {
-		return ClassUtil.nullFree(scheduledRegion.getConnections());
-	}
-
 	public static @NonNull Iterable<@NonNull Node> getDependencyNodes(@NonNull OperationRegion operationRegion) {
 		return ClassUtil.nullFree(operationRegion.getDependencyNodes());
 	}
@@ -562,10 +558,6 @@
 		return ClassUtil.nonNullState(edge.getEdgeRole());
 	}
 
-	public static @NonNull Iterable<@NonNull Edge> getEdges(@NonNull Region region) {
-		return ClassUtil.nullFree(region.getEdges());
-	}
-
 	public static @NonNull String getFillColor(@NonNull Role nodeRole) {
 		switch (nodeRole) {
 			case CONSTANT: return LIGHT_CONSTANT_COLOR;
@@ -586,14 +578,6 @@
 		return ClassUtil.nullFree(node.getIncomingEdges());
 	}
 
-	public static @NonNull ScheduledRegion getInvokingRegion(@NonNull Region region) {
-		return ClassUtil.nonNullState(region.getInvokingRegion());
-	}
-
-	public static @NonNull Mapping getMapping(@NonNull BasicMappingRegion basicMappingRegion) {
-		return ClassUtil.nonNullState(basicMappingRegion.getMapping());
-	}
-
 	public static @NonNull String getName(@NonNull Nameable nameable) {
 		return ClassUtil.nonNullState(nameable.getName());
 	}
@@ -602,10 +586,6 @@
 		return ClassUtil.nonNullState(node.getNodeRole());
 	}
 
-	public static @NonNull Iterable<@NonNull Node> getNodes(@NonNull Region region) {
-		return ClassUtil.nullFree(region.getNodes());
-	}
-
 	public static @NonNull Iterable<@NonNull EdgeConnection> getOutgoingConnections(@NonNull NavigableEdge navigableEdge) {
 		return ClassUtil.nullFree(navigableEdge.getOutgoingConnections());
 	}
@@ -618,24 +598,44 @@
 		return ClassUtil.nullFree(node.getOutgoingEdges());
 	}
 
-	//	public static @NonNull Phase getPhase(@NonNull Role role) {
-	//		return ClassUtil.nonNullState(role);
-	//	}
+	public static @NonNull Iterable<@NonNull Connection> getOwnedConnections(@NonNull ScheduledRegion scheduledRegion) {
+		return ClassUtil.nullFree(scheduledRegion.getOwnedConnections());
+	}
+
+	public static @NonNull Iterable<@NonNull Edge> getOwnedEdges(@NonNull Region region) {
+		return ClassUtil.nullFree(region.getOwnedEdges());
+	}
+
+	public static @NonNull Iterable<@NonNull Node> getOwnedNodes(@NonNull Region region) {
+		return ClassUtil.nullFree(region.getOwnedNodes());
+	}
+
+	public static @NonNull Iterable<@NonNull Region> getOwnedRegions(@NonNull ScheduledRegion scheduledRegion) {
+		return ClassUtil.nullFree(scheduledRegion.getOwnedRegions());
+	}
+
+	public static @NonNull ScheduledRegion getOwningScheduledRegion(@NonNull Region region) {
+		return ClassUtil.nonNullState(region.getOwningScheduledRegion());
+	}
 
 	public static @NonNull Property getProperty(@NonNull NavigableEdge navigableEdge) {
 		return ClassUtil.nonNullState(navigableEdge.getProperty());
 	}
 
-	public static @NonNull Region getRegion(@NonNull ConnectionEnd connectionEnd) {
-		return ClassUtil.nonNullState(connectionEnd.getRegion());
+	public static @NonNull Region getOwningRegion(@NonNull ConnectionEnd connectionEnd) {
+		return ClassUtil.nonNullState(connectionEnd.getOwningRegion());
 	}
 
-	public static @NonNull Region getRegion(@NonNull Node node) {
-		return ClassUtil.nonNullState(node.getRegion());
+	public static @NonNull Region getOwningRegion(@NonNull Node node) {
+		return ClassUtil.nonNullState(node.getOwningRegion());
 	}
 
-	public static @NonNull Iterable<@NonNull Region> getRegions(@NonNull ScheduledRegion scheduledRegion) {
-		return ClassUtil.nullFree(scheduledRegion.getRegions());
+	public static @NonNull Mapping getReferredMapping(@NonNull BasicMappingRegion basicMappingRegion) {
+		return ClassUtil.nonNullState(basicMappingRegion.getReferredMapping());
+	}
+
+	public static @NonNull TypedModel getReferredTypedModel(@NonNull ClassDatum classDatum) {
+		return ClassUtil.nonNullState(classDatum.getReferredTypedModel());
 	}
 
 	public static @NonNull ScheduleModel getScheduleModel(@NonNull Region region) {
@@ -654,10 +654,6 @@
 		return ClassUtil.nonNullState(edge.getTargetNode());
 	}
 
-	public static @NonNull TypedModel getTypedModel(@NonNull ClassDatum classDatum) {
-		return ClassUtil.nonNullState(classDatum.getTypedModel());
-	}
-
 	/**
 	 * Return true if the target of thatEdge is compatible with the target of thisEdge.
 	 */
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToCallGraphVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToCallGraphVisitor.java
index 6e79385..275600c 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToCallGraphVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToCallGraphVisitor.java
@@ -135,7 +135,7 @@
 
 					@Override
 					public @NonNull GraphNode getEdgeTarget() {
-						return QVTscheduleUtil.getRegion(targetNode);
+						return QVTscheduleUtil.getOwningRegion(targetNode);
 					}
 				};
 				context.appendEdge(graphEdge.getEdgeSource(), graphEdge, graphEdge.getEdgeTarget());
@@ -151,7 +151,7 @@
 		for (@NonNull Region region : scheduledRegion.getCallableRegions()) {
 			region.accept(this);
 		}
-		for (@NonNull Connection connection : QVTscheduleUtil.getConnections(scheduledRegion)) {
+		for (@NonNull Connection connection : QVTscheduleUtil.getOwnedConnections(scheduledRegion)) {
 			connection.accept(new ToRegionGraphVisitor(context));
 		}
 		context.popCluster();
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToGraphVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToGraphVisitor.java
index 5b445c8..1af8df1 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToGraphVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToGraphVisitor.java
@@ -81,10 +81,10 @@
 		context.setColor("lightblue");
 		context.setPenwidth(QVTscheduleConstants.LINE_WIDTH);
 		context.pushCluster();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(loadingRegion)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(loadingRegion)) {
 			context.appendNode(node);
 		}
-		for (@NonNull Edge edge : QVTscheduleUtil.getEdges(loadingRegion)) {
+		for (@NonNull Edge edge : QVTscheduleUtil.getOwnedEdges(loadingRegion)) {
 			context.appendEdge(edge.getEdgeSource(), edge, edge.getEdgeTarget());
 		}
 		context.popCluster();
@@ -150,11 +150,11 @@
 	public @Nullable String visitRegion(@NonNull Region region) {
 		context.setLabel(region.getName());
 		context.pushCluster();
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(region)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(region)) {
 			node.accept(this);
 			//			s.appendNode(node);
 		}
-		for (@NonNull Edge edge : QVTscheduleUtil.getEdges(region)) {
+		for (@NonNull Edge edge : QVTscheduleUtil.getOwnedEdges(region)) {
 			edge.accept(this);
 			//			s.appendEdge(edge.getSource(), edge, edge.getTarget());
 		}
@@ -166,16 +166,16 @@
 	public @Nullable String visitScheduledRegion(@NonNull ScheduledRegion scheduledRegion) {
 		context.setLabel(scheduledRegion.getName());
 		context.pushCluster();
-		for (@NonNull Region region : QVTscheduleUtil.getRegions(scheduledRegion)) {
+		for (@NonNull Region region : QVTscheduleUtil.getOwnedRegions(scheduledRegion)) {
 			region.accept(this);
 		}
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(scheduledRegion)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(scheduledRegion)) {
 			context.appendNode(node);
 		}
-		for (@NonNull Edge edge : QVTscheduleUtil.getEdges(scheduledRegion)) {
+		for (@NonNull Edge edge : QVTscheduleUtil.getOwnedEdges(scheduledRegion)) {
 			context.appendEdge(edge.getEdgeSource(), edge, edge.getEdgeTarget());
 		}
-		for (@NonNull Connection connection : QVTscheduleUtil.getConnections(scheduledRegion)) {
+		for (@NonNull Connection connection : QVTscheduleUtil.getOwnedConnections(scheduledRegion)) {
 			connection.accept(this);
 		}
 		context.popCluster();
diff --git a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToRegionGraphVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToRegionGraphVisitor.java
index fe7c9fb..6f79d09 100644
--- a/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToRegionGraphVisitor.java
+++ b/plugins/org.eclipse.qvtd.pivot.qvtschedule/src/org/eclipse/qvtd/pivot/qvtschedule/utilities/ToRegionGraphVisitor.java
@@ -42,10 +42,10 @@
 
 	@Override
 	public @Nullable String visitDatumConnection(@NonNull DatumConnection<?> datumConnection) {
-		ScheduledRegion scheduledRegion = datumConnection.getRegion();
+		ScheduledRegion scheduledRegion = datumConnection.getOwningScheduledRegion();
 		Map<@NonNull Region, @NonNull Integer> sourceRegion2count = new HashMap<>();
 		for (@NonNull Node source : datumConnection.getSourceNodes()) {
-			Region sourceRegion = scheduledRegion.getNormalizedRegion(QVTscheduleUtil.getRegion(source));
+			Region sourceRegion = scheduledRegion.getNormalizedRegion(QVTscheduleUtil.getOwningRegion(source));
 			if (sourceRegion != null) {
 				//				Integer count = sourceRegion2count.get(sourceRegion);
 				sourceRegion2count.put(sourceRegion, 1); //(count != null ? count.intValue() : 0) + 1);
@@ -55,7 +55,7 @@
 		for (@NonNull ConnectionEnd target : datumConnection.getTargets().keySet()) {
 			ConnectionRole role = datumConnection.getTargets().get(target);
 			assert role != null;
-			Region targetRegion = scheduledRegion.getNormalizedRegion(QVTscheduleUtil.getRegion(target));
+			Region targetRegion = scheduledRegion.getNormalizedRegion(QVTscheduleUtil.getOwningRegion(target));
 			if (targetRegion != null) {
 				List<@NonNull ConnectionRole> roles = targetRegion2roles.get(targetRegion);
 				if (roles == null) {
@@ -109,7 +109,7 @@
 				} */
 				@Nullable ConnectionEnd sourceEnd = null;
 				for (@NonNull ConnectionEnd end : QVTscheduleUtil.getSourceEnds(datumConnection)) {
-					if (end.getRegion() == scheduledRegion) {
+					if (end.getOwningRegion() == scheduledRegion) {
 						assert sourceEnd == null;
 						sourceEnd = end;
 					}
@@ -130,7 +130,7 @@
 	public @Nullable String visitRegion(@NonNull Region region) {
 		context.appendNode(region);
 		for (@NonNull Edge edge : region.getRecursionEdges()) {
-			context.appendEdge(QVTscheduleUtil.getRegion(edge.getEdgeSource()), edge, QVTscheduleUtil.getRegion(edge.getEdgeTarget()));
+			context.appendEdge(QVTscheduleUtil.getOwningRegion(edge.getEdgeSource()), edge, QVTscheduleUtil.getOwningRegion(edge.getEdgeTarget()));
 		}
 		return null;
 	}
@@ -146,10 +146,10 @@
 			//				s.appendEdge(edge.getSource().getRegion(), edge, edge.getTarget().getRegion());
 			//			}
 		}
-		for (@NonNull Node node : QVTscheduleUtil.getNodes(scheduledRegion)) {
+		for (@NonNull Node node : QVTscheduleUtil.getOwnedNodes(scheduledRegion)) {
 			context.appendNode(node);
 		}
-		for (@NonNull Connection connection : QVTscheduleUtil.getConnections(scheduledRegion)) {
+		for (@NonNull Connection connection : QVTscheduleUtil.getOwnedConnections(scheduledRegion)) {
 			connection.accept(this);
 		}
 		context.popCluster();