Merge "OCL2AC to Henshin: util plug-in."
diff --git a/plugins/org.eclipse.emf.henshin.diagram/src/org/eclipse/emf/henshin/diagram/providers/HenshinMarkerNavigationProvider.java b/plugins/org.eclipse.emf.henshin.diagram/src/org/eclipse/emf/henshin/diagram/providers/HenshinMarkerNavigationProvider.java
index ecc0ccb..a04d8c6 100644
--- a/plugins/org.eclipse.emf.henshin.diagram/src/org/eclipse/emf/henshin/diagram/providers/HenshinMarkerNavigationProvider.java
+++ b/plugins/org.eclipse.emf.henshin.diagram/src/org/eclipse/emf/henshin/diagram/providers/HenshinMarkerNavigationProvider.java
@@ -68,10 +68,10 @@
 	/**
 	 * @generated
 	 */
-	public static IMarker addMarker(IFile file, String elementId, String location, String message, int statusSeverity) {
+	public static IMarker addMarker(IResource ressource, String elementId, String location, String message, int statusSeverity) {
 		IMarker marker = null;
 		try {
-			marker = file.createMarker(MARKER_TYPE);
+			marker = ressource.createMarker(MARKER_TYPE);
 			marker.setAttribute(IMarker.MESSAGE, message);
 			marker.setAttribute(IMarker.LOCATION, location);
 			marker.setAttribute(org.eclipse.gmf.runtime.common.ui.resources.IMarker.ELEMENT_ID, elementId);
diff --git a/plugins/org.eclipse.emf.henshin.interpreter.ui/src/org/eclipse/emf/henshin/interpreter/ui/debug/LaunchRuleDelegate.java b/plugins/org.eclipse.emf.henshin.interpreter.ui/src/org/eclipse/emf/henshin/interpreter/ui/debug/LaunchRuleDelegate.java
index d833ef9..4f877b8 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter.ui/src/org/eclipse/emf/henshin/interpreter/ui/debug/LaunchRuleDelegate.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter.ui/src/org/eclipse/emf/henshin/interpreter/ui/debug/LaunchRuleDelegate.java
@@ -15,6 +15,7 @@
 
 import org.eclipse.compare.internal.CompareAction;
 import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.FileLocator;
@@ -211,7 +212,15 @@
 				}
 			});
 
-			engine.getDebugTarget().initTarget(applicationCondition, findResourceForModulePath(modulePath));
+			IResource moduleResource;
+			if (moduleUri.isPlatform()) {
+				moduleResource = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(moduleUri.toPlatformString(true)));
+			}
+			else
+			{
+				moduleResource = findResourceForModulePath(modulePath);
+			}	
+			engine.getDebugTarget().initTarget(applicationCondition, moduleResource);
 			launch.addDebugTarget(engine.getDebugTarget());
 
 			applicationCondition.initNextVariable();
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/debug/HenshinDebugTarget.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/debug/HenshinDebugTarget.java
index ba957db..928596d 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/debug/HenshinDebugTarget.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/debug/HenshinDebugTarget.java
@@ -2,6 +2,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarkerDelta;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.debug.core.DebugEvent;
 import org.eclipse.debug.core.DebugException;
 import org.eclipse.debug.core.DebugPlugin;
@@ -23,7 +24,7 @@
 	 */
 	private HenshinDebugThread debugThread;
 	
-	private IFile moduleFile;
+	private IResource moduleResource;
 	
 	/**
 	 * The DebugTarget's name (displays in the debug view)
@@ -53,9 +54,9 @@
 	 * Connects the given DebugApplicationCondition to this DebugTarget
 	 * @param applicationCondition the DebugApplicationCondition that will be used for debugging.
 	 */
-	public void initTarget(DebugApplicationCondition applicationCondition, IFile moduleFile) {
+	public void initTarget(DebugApplicationCondition applicationCondition, IResource moduleFile) {
 		this.debugThread = new HenshinDebugThread(this, applicationCondition);
-		this.moduleFile = moduleFile;
+		this.moduleResource = moduleFile;
 		fireCreationEvent();
 	}
 
@@ -69,8 +70,8 @@
 		return this;
 	}
 	
-	public IFile getModuleFile() {
-		return this.moduleFile;
+	public IResource getModuleResource() {
+		return this.moduleResource;
 	}
 	
 	@Override
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/ChangeImpl.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/ChangeImpl.java
index b83f313..d239182 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/ChangeImpl.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/ChangeImpl.java
@@ -16,6 +16,7 @@
 import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.henshin.interpreter.Change;
 import org.eclipse.emf.henshin.interpreter.EGraph;
 import org.eclipse.emf.henshin.interpreter.util.InterpreterUtil;
@@ -112,15 +113,26 @@
 		private EAttribute attribute;
 		private Object oldValue;
 		private Object newValue;
+		/**
+		 * The semantics of deleting an attribute is to unset it.
+		 */
+		private boolean delete;
 		private boolean initialized;
+		private boolean revert = false;
 
 		public AttributeChangeImpl(EGraph graph, EObject object, EAttribute attribute, Object newValue) {
 			super(graph);
 			this.object = object;
 			this.attribute = attribute;
 			this.newValue = newValue;
+			this.delete = false;
 			this.initialized = false;
 		}
+		
+		public AttributeChangeImpl(EGraph graph, EObject object, EAttribute attribute) {
+			this(graph, object, attribute, null);
+			this.delete = true;
+		}
 
 		/*
 		 * (non-Javadoc)
@@ -132,8 +144,9 @@
 			// Need to initialize?
 			 if (!initialized && attribute != null) { 
 				oldValue = object.eGet(attribute);
-				if ((oldValue==null && newValue==null) ||
-					(oldValue!=null && oldValue.equals(newValue))) {
+				if (!delete 
+						&& ((oldValue==null && newValue==null) 
+								|| (oldValue!=null && oldValue.equals(newValue)))) {
 					attribute = null;
 				}
 			}
@@ -141,7 +154,9 @@
 			if (attribute==null) {
 				return;
 			}
-			if (attribute.isMany()) {
+			if (delete && !revert) {
+				object.eUnset(attribute);				
+			} else if (attribute.isMany()) {
 				List values = (List) object.eGet(attribute);
 				values.clear();
 				if (newValue instanceof List) {
@@ -155,6 +170,7 @@
 			java.lang.Object dummy = oldValue;
 			oldValue = newValue;
 			newValue = dummy;
+			revert = !revert;
 		}
 
 		/*
@@ -191,8 +207,7 @@
 		@Override
 		public Object getNewValue() {
 			return newValue;
-		}
-		
+		}		
 	}
 	
 	/**
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java
index 0f5c612..f1f0091 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/impl/EngineImpl.java
@@ -986,6 +986,12 @@
 				}
 			}
 		}
+		
+		// Deleted (unset) attributes:
+		for (Attribute attribute : ruleChange.getDeletedAttributes()) {
+			EObject object = completeMatch.getNodeTarget(attribute.getNode());
+			changes.add(new AttributeChangeImpl(graph, object, attribute.getType()));
+		}
 
 		// Preserved objects:
 		for (Node node : ruleChange.getPreservedNodes()) {
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/info/RuleChangeInfo.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/info/RuleChangeInfo.java
index 3626354..01bc7d0 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/info/RuleChangeInfo.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/info/RuleChangeInfo.java
@@ -12,15 +12,19 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.henshin.model.Attribute;
 import org.eclipse.emf.henshin.model.Edge;
 import org.eclipse.emf.henshin.model.Node;
+import org.eclipse.emf.henshin.model.Parameter;
+import org.eclipse.emf.henshin.model.ParameterKind;
 import org.eclipse.emf.henshin.model.Rule;
 
 public class RuleChangeInfo {
 	
 	private final List<Node> createdNodes;
 	private final List<Node> deletedNodes;
+	private final List<Attribute> deletedAttributes;
 	private final List<Node> preservedNodes;
 	private final List<Edge> createdEdges;
 	private final List<Edge> deletedEdges;
@@ -30,19 +34,34 @@
 	public RuleChangeInfo(Rule rule) {
 		createdNodes = new ArrayList<Node>();
 		deletedNodes = new ArrayList<Node>();
+		deletedAttributes = new ArrayList<Attribute>();
 		preservedNodes = new ArrayList<Node>();		
 		createdEdges = new ArrayList<Edge>();
 		deletedEdges = new ArrayList<Edge>();
 		attributeChanges = new ArrayList<Attribute>();
 		indexChanges = new ArrayList<Edge>();
 		
-		// Deleted nodes:
+		// Deleted nodes; deleted attributes:
 		for (Node node : rule.getLhs().getNodes()) {
 			if (rule.getMultiMappings().getOrigin(node)!=null) {
 				continue;
 			}
-			if (rule.getMappings().getImage(node, rule.getRhs())==null) {
+			Node image = rule.getMappings().getImage(node, rule.getRhs());
+			if (image==null) {
 				deletedNodes.add(node);
+			} else {
+				for (Attribute attribute : node.getAttributes()) {
+					boolean attributeDeleted = image.getAttribute(attribute.getType()) == null;
+					if (attributeDeleted) {
+						if (attribute.getType().isUnsettable()
+								&& isAttributeChangeable(attribute)) {
+							deletedAttributes.add(attribute);
+						} else {
+							throw new IllegalStateException("Cannot delete attribute which is unsetable"
+									+ " or not changeable.");
+						}
+					}
+				}
 			}
 		}
 		
@@ -51,13 +70,23 @@
 			if (rule.getMultiMappings().getOrigin(node)!=null) {
 				continue;
 			}
-			if (rule.getMappings().getOrigin(node)==null) {
+			Node origin = rule.getMappings().getOrigin(node);
+			
+			if (origin==null) {
 				createdNodes.add(node);
 			} else {
 				preservedNodes.add(node);
 			}			
 			for (Attribute attribute : node.getAttributes()) {
-				attributeChanges.add(attribute);
+				boolean attributeChanged = hasAttributeChanged(rule, origin, attribute);
+				if (attributeChanged) {
+					if (isAttributeChangeable(attribute)) {
+						attributeChanges.add(attribute);					
+					} else {
+						throw new IllegalStateException("Cannot assign a value to derived or "
+								+ "unchangeable attribute.");
+					}
+				}
 			}
 		}
 		
@@ -82,8 +111,32 @@
 			if (edge.getIndex()!=null && edge.getIndex().trim().length()>0) {
 				indexChanges.add(edge);
 			}
+		}		
+	}
+	
+	/**
+	 * Returns whether the value of the given attribute has changed.  
+	 * @param rule rule containing the attribute
+	 * @param origin the LHS node mapped to the RHS node containing the given attribute
+	 * @param attribute attribute of an RHS node 
+	 * @return true if the attribute value has changed - false otherwise
+	 */
+	private boolean hasAttributeChanged(Rule rule, Node origin, Attribute attribute) {
+		boolean changed;
+		// Attribute has been created explicitly; value assignment expected
+		if (origin == null) {
+			changed = true;
+		//Attribute preserved but value changed
+		} else {
+			Attribute originAttribute = origin.getAttribute(attribute.getType());
+			changed =!( originAttribute != null 
+					&& originAttribute.getValue().equals(attribute.getValue()));
 		}
-		
+		return changed;
+	}
+	
+	private boolean isAttributeChangeable(Attribute attribute) {
+		return !attribute.getType().isDerived() && attribute.getType().isChangeable();
 	}
 	
 	/**
@@ -115,6 +168,13 @@
 	}
 	
 	/**
+	 * @return the deletedAttributes
+	 */
+	public List<Attribute> getDeletedAttributes() {
+		return deletedAttributes;
+	}
+	
+	/**
 	 * @return the attributeChanges
 	 */
 	public List<Attribute> getAttributeChanges() {
diff --git a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/matching/conditions/DebugApplicationCondition.java b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/matching/conditions/DebugApplicationCondition.java
index 3e873c2..75849d2 100644
--- a/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/matching/conditions/DebugApplicationCondition.java
+++ b/plugins/org.eclipse.emf.henshin.interpreter/src/org/eclipse/emf/henshin/interpreter/matching/conditions/DebugApplicationCondition.java
@@ -9,6 +9,7 @@
 
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.debug.core.DebugEvent;
@@ -180,12 +181,15 @@
 				if (variable.requiresFinalCheck) {
 					DomainSlot slot = domainMap.get(variable);
 					if (!slot.recheck(variable, domainMap)) {
-						// recheck turned out invalid --> terminate (no match found)
+						// recheck turned out invalid --> go back
+						updateDebugState(DebugLevel.VARIABLE, currentVariableIndex-1, ConstraintType.NONE, -1);
+						tryNextValue();
+/*						// recheck turned out invalid --> terminate (no match found)
 						updateDebugState(DebugLevel.NONE, -1, ConstraintType.NONE, -1);
 						setCurrentDebugState(DebugState.TERMINATED_FALSE);
 						if (debugTarget != null) {
 							debugTarget.fireTerminateEvent();							
-						}
+						}*/
 						return;
 					}
 				}
@@ -211,12 +215,15 @@
 				return;
 			}
 			
-			// else: final evaluation was not successful --> terminate (no match found)
+			// else formula did not work, go back to last variable 
+			updateDebugState(DebugLevel.VARIABLE, currentVariableIndex-1, ConstraintType.NONE, -1);
+			tryNextValue();
+/*			// else: final evaluation was not successful --> terminate (no match found)
 			updateDebugState(DebugLevel.NONE, -1, ConstraintType.NONE, -1);
 			setCurrentDebugState(DebugState.TERMINATED_FALSE);
 			if (debugTarget != null) {
 				debugTarget.fireTerminateEvent();			
-			}
+			}*/
 			return;
 			
 		}
@@ -481,13 +488,13 @@
 				
 				// set the value
 				if (!currentSlot.setValueAndLock()) {
-					throw new IllegalStateException("step called on Variable level, but no values left: "
-						+ toString());
+					//if no furthe valuer, try lower index variable 
+					tryLowerIndexVariable();
+					break;
 				}
-
+				
 				// update the debug state (current index does not change)
 				updateDebugState(DebugLevel.VALUE, currentVariableIndex, ConstraintType.NONE, -1);
-												
 				break;
 			case VALUE:
 				// go to the "type" constraint type as it is always the first constraint. 
@@ -844,7 +851,7 @@
 		// get all breakpoints
 		IBreakpointManager manager = getManager();
 		// create breakpoint
-		IFile moduleFile = debugTarget.getModuleFile();
+		IResource moduleFile = debugTarget.getModuleResource();
 		IMarker marker = HenshinMarkerNavigationProvider.addMarker(moduleFile, HenshinModelPlugin.PLUGIN_ID, "/variable", "Sample VariableBreakpoint", IStatus.OK);
 		VariableBreakpoint breakpoint = new VariableBreakpoint();
 		try {
@@ -879,7 +886,7 @@
 		// get all breakpoints
 		IBreakpointManager manager = getManager();
 		// create breakpoint
-		IFile moduleFile = debugTarget.getModuleFile();
+		IResource moduleFile = debugTarget.getModuleResource();
 		IMarker marker = HenshinMarkerNavigationProvider.addMarker(moduleFile, HenshinModelPlugin.PLUGIN_ID, "/value", "Sample ValueBreakpoint", IStatus.OK);
 		ValueBreakpoint breakpoint = new ValueBreakpoint();
 		try {
@@ -903,7 +910,7 @@
 		// get all breakpoints
 		IBreakpointManager manager = getManager();
 		// create breakpoint
-		IFile moduleFile = debugTarget.getModuleFile();
+		IResource moduleFile = debugTarget.getModuleResource();
 		IMarker marker = HenshinMarkerNavigationProvider.addMarker(moduleFile, HenshinModelPlugin.PLUGIN_ID, "/constraintType", "Sample ConstraintTypeBreakpoint", IStatus.OK);
 		ConstraintTypeBreakpoint breakpoint = new ConstraintTypeBreakpoint();
 		try {
@@ -925,7 +932,7 @@
 		// get all breakpoints
 		IBreakpointManager manager = getManager();
 		// create breakpoint
-		IFile moduleFile = debugTarget.getModuleFile();
+		IResource moduleFile = debugTarget.getModuleResource();
 		IMarker marker = HenshinMarkerNavigationProvider.addMarker(moduleFile, HenshinModelPlugin.PLUGIN_ID, "/constraintInstance", "Sample ConstraintInstanceBreakpoint", IStatus.OK);
 		ConstraintInstanceBreakpoint breakpoint = new ConstraintInstanceBreakpoint();
 		try {
diff --git a/plugins/org.eclipse.emf.henshin.model/src/org/eclipse/emf/henshin/model/util/HenshinValidator.java b/plugins/org.eclipse.emf.henshin.model/src/org/eclipse/emf/henshin/model/util/HenshinValidator.java
index ee2f15e..3a232b2 100644
--- a/plugins/org.eclipse.emf.henshin.model/src/org/eclipse/emf/henshin/model/util/HenshinValidator.java
+++ b/plugins/org.eclipse.emf.henshin.model/src/org/eclipse/emf/henshin/model/util/HenshinValidator.java
@@ -29,6 +29,8 @@
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.common.util.ResourceLocator;
 import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EEnumLiteral;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EPackage;
 import org.eclipse.emf.ecore.EReference;
@@ -74,21 +76,24 @@
 /**
  * <!-- begin-user-doc --> The <b>Validator</b> for the Henshin model. <!--
  * end-user-doc -->
+ * 
  * @see org.eclipse.emf.henshin.model.HenshinPackage
  * @generated
  */
 public class HenshinValidator extends EObjectValidator {
 
 	/**
-	 * The cached model package
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * The cached model package <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public static final HenshinValidator INSTANCE = new HenshinValidator();
 
 	/**
-	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource()
+	 * source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode()
+	 * codes} from this package. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
 	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
 	 * @generated
@@ -96,17 +101,19 @@
 	public static final String DIAGNOSTIC_SOURCE = "org.eclipse.emf.henshin.model";
 
 	/**
-	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
+	 * A constant with a fixed name that can be used as the base value for
+	 * additional hand written constants. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
 	 * @generated
 	 */
 	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;
 
 	/**
-	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
-	 * <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * A constant with a fixed name that can be used as the base value for
+	 * additional hand written constants in a derived class. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;
@@ -138,11 +145,11 @@
 			"typeof", "var", "void", "volatile", "while", "with", "yield" }));
 
 	private Set<Unit> unitsWithIllegallyNamedParameters = new HashSet<Unit>();
-	
+
 	/**
-	 * Creates an instance of the switch.
-	 * <!-- begin-user-doc --> <!--
-	 * end-user-doc -->
+	 * Creates an instance of the switch. <!-- begin-user-doc --> <!-- end-user-doc
+	 * -->
+	 * 
 	 * @generated
 	 */
 	public HenshinValidator() {
@@ -150,100 +157,102 @@
 	}
 
 	/**
-	 * Returns the package of this validator switch.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * Returns the package of this validator switch. <!-- begin-user-doc --> <!--
+	 * end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	protected EPackage getEPackage() {
-	  return HenshinPackage.eINSTANCE;
+		return HenshinPackage.eINSTANCE;
 	}
 
 	/**
 	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
 	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
 		switch (classifierID) {
-			case HenshinPackage.MODEL_ELEMENT:
-				return validateModelElement((ModelElement)value, diagnostics, context);
-			case HenshinPackage.ANNOTATION:
-				return validateAnnotation((Annotation)value, diagnostics, context);
-			case HenshinPackage.NAMED_ELEMENT:
-				return validateNamedElement((NamedElement)value, diagnostics, context);
-			case HenshinPackage.GRAPH_ELEMENT:
-				return validateGraphElement((GraphElement)value, diagnostics, context);
-			case HenshinPackage.MODULE:
-				return validateModule((Module)value, diagnostics, context);
-			case HenshinPackage.UNIT:
-				return validateUnit((Unit)value, diagnostics, context);
-			case HenshinPackage.RULE:
-				return validateRule((Rule)value, diagnostics, context);
-			case HenshinPackage.PARAMETER:
-				return validateParameter((Parameter)value, diagnostics, context);
-			case HenshinPackage.PARAMETER_MAPPING:
-				return validateParameterMapping((ParameterMapping)value, diagnostics, context);
-			case HenshinPackage.GRAPH:
-				return validateGraph((Graph)value, diagnostics, context);
-			case HenshinPackage.NODE:
-				return validateNode((Node)value, diagnostics, context);
-			case HenshinPackage.EDGE:
-				return validateEdge((Edge)value, diagnostics, context);
-			case HenshinPackage.ATTRIBUTE:
-				return validateAttribute((Attribute)value, diagnostics, context);
-			case HenshinPackage.ATTRIBUTE_CONDITION:
-				return validateAttributeCondition((AttributeCondition)value, diagnostics, context);
-			case HenshinPackage.MAPPING:
-				return validateMapping((Mapping)value, diagnostics, context);
-			case HenshinPackage.UNARY_UNIT:
-				return validateUnaryUnit((UnaryUnit)value, diagnostics, context);
-			case HenshinPackage.MULTI_UNIT:
-				return validateMultiUnit((MultiUnit)value, diagnostics, context);
-			case HenshinPackage.INDEPENDENT_UNIT:
-				return validateIndependentUnit((IndependentUnit)value, diagnostics, context);
-			case HenshinPackage.SEQUENTIAL_UNIT:
-				return validateSequentialUnit((SequentialUnit)value, diagnostics, context);
-			case HenshinPackage.CONDITIONAL_UNIT:
-				return validateConditionalUnit((ConditionalUnit)value, diagnostics, context);
-			case HenshinPackage.PRIORITY_UNIT:
-				return validatePriorityUnit((PriorityUnit)value, diagnostics, context);
-			case HenshinPackage.ITERATED_UNIT:
-				return validateIteratedUnit((IteratedUnit)value, diagnostics, context);
-			case HenshinPackage.LOOP_UNIT:
-				return validateLoopUnit((LoopUnit)value, diagnostics, context);
-			case HenshinPackage.FORMULA:
-				return validateFormula((Formula)value, diagnostics, context);
-			case HenshinPackage.NESTED_CONDITION:
-				return validateNestedCondition((NestedCondition)value, diagnostics, context);
-			case HenshinPackage.UNARY_FORMULA:
-				return validateUnaryFormula((UnaryFormula)value, diagnostics, context);
-			case HenshinPackage.BINARY_FORMULA:
-				return validateBinaryFormula((BinaryFormula)value, diagnostics, context);
-			case HenshinPackage.AND:
-				return validateAnd((And)value, diagnostics, context);
-			case HenshinPackage.OR:
-				return validateOr((Or)value, diagnostics, context);
-			case HenshinPackage.XOR:
-				return validateXor((Xor)value, diagnostics, context);
-			case HenshinPackage.NOT:
-				return validateNot((Not)value, diagnostics, context);
-			case HenshinPackage.TRUE:
-				return validateTrue((True)value, diagnostics, context);
-			case HenshinPackage.PARAMETER_KIND:
-				return validateParameterKind((ParameterKind)value, diagnostics, context);
-			case HenshinPackage.ACTION:
-				return validateAction((Action)value, diagnostics, context);
-			default:
-				return true;
+		case HenshinPackage.MODEL_ELEMENT:
+			return validateModelElement((ModelElement) value, diagnostics, context);
+		case HenshinPackage.ANNOTATION:
+			return validateAnnotation((Annotation) value, diagnostics, context);
+		case HenshinPackage.NAMED_ELEMENT:
+			return validateNamedElement((NamedElement) value, diagnostics, context);
+		case HenshinPackage.GRAPH_ELEMENT:
+			return validateGraphElement((GraphElement) value, diagnostics, context);
+		case HenshinPackage.MODULE:
+			return validateModule((Module) value, diagnostics, context);
+		case HenshinPackage.UNIT:
+			return validateUnit((Unit) value, diagnostics, context);
+		case HenshinPackage.RULE:
+			return validateRule((Rule) value, diagnostics, context);
+		case HenshinPackage.PARAMETER:
+			return validateParameter((Parameter) value, diagnostics, context);
+		case HenshinPackage.PARAMETER_MAPPING:
+			return validateParameterMapping((ParameterMapping) value, diagnostics, context);
+		case HenshinPackage.GRAPH:
+			return validateGraph((Graph) value, diagnostics, context);
+		case HenshinPackage.NODE:
+			return validateNode((Node) value, diagnostics, context);
+		case HenshinPackage.EDGE:
+			return validateEdge((Edge) value, diagnostics, context);
+		case HenshinPackage.ATTRIBUTE:
+			return validateAttribute((Attribute) value, diagnostics, context);
+		case HenshinPackage.ATTRIBUTE_CONDITION:
+			return validateAttributeCondition((AttributeCondition) value, diagnostics, context);
+		case HenshinPackage.MAPPING:
+			return validateMapping((Mapping) value, diagnostics, context);
+		case HenshinPackage.UNARY_UNIT:
+			return validateUnaryUnit((UnaryUnit) value, diagnostics, context);
+		case HenshinPackage.MULTI_UNIT:
+			return validateMultiUnit((MultiUnit) value, diagnostics, context);
+		case HenshinPackage.INDEPENDENT_UNIT:
+			return validateIndependentUnit((IndependentUnit) value, diagnostics, context);
+		case HenshinPackage.SEQUENTIAL_UNIT:
+			return validateSequentialUnit((SequentialUnit) value, diagnostics, context);
+		case HenshinPackage.CONDITIONAL_UNIT:
+			return validateConditionalUnit((ConditionalUnit) value, diagnostics, context);
+		case HenshinPackage.PRIORITY_UNIT:
+			return validatePriorityUnit((PriorityUnit) value, diagnostics, context);
+		case HenshinPackage.ITERATED_UNIT:
+			return validateIteratedUnit((IteratedUnit) value, diagnostics, context);
+		case HenshinPackage.LOOP_UNIT:
+			return validateLoopUnit((LoopUnit) value, diagnostics, context);
+		case HenshinPackage.FORMULA:
+			return validateFormula((Formula) value, diagnostics, context);
+		case HenshinPackage.NESTED_CONDITION:
+			return validateNestedCondition((NestedCondition) value, diagnostics, context);
+		case HenshinPackage.UNARY_FORMULA:
+			return validateUnaryFormula((UnaryFormula) value, diagnostics, context);
+		case HenshinPackage.BINARY_FORMULA:
+			return validateBinaryFormula((BinaryFormula) value, diagnostics, context);
+		case HenshinPackage.AND:
+			return validateAnd((And) value, diagnostics, context);
+		case HenshinPackage.OR:
+			return validateOr((Or) value, diagnostics, context);
+		case HenshinPackage.XOR:
+			return validateXor((Xor) value, diagnostics, context);
+		case HenshinPackage.NOT:
+			return validateNot((Not) value, diagnostics, context);
+		case HenshinPackage.TRUE:
+			return validateTrue((True) value, diagnostics, context);
+		case HenshinPackage.PARAMETER_KIND:
+			return validateParameterKind((ParameterKind) value, diagnostics, context);
+		case HenshinPackage.ACTION:
+			return validateAction((Action) value, diagnostics, context);
+		default:
+			return true;
 		}
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateModelElement(ModelElement modelElement, DiagnosticChain diagnostics,
@@ -253,6 +262,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateAnnotation(Annotation annotation, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -261,6 +271,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateNamedElement(NamedElement namedElement, DiagnosticChain diagnostics,
@@ -270,28 +281,47 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateRule(Rule rule, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(rule, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(rule, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_mappingsFromLeft2Right(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_createdNodesNotAbstract(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_createdEdgesNotDerived(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_deletedEdgesNotDerived(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_uniqueNodeNames(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_varParametersOccurOnLeftSide(rule, diagnostics, context);
-		if (result || diagnostics != null) result &= validateRule_multiRuleParametersSameKind(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_mappingsFromLeft2Right(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_createdNodesNotAbstract(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_createdEdgesNotDerived(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_deletedEdgesNotDerived(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_uniqueNodeNames(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_varParametersOccurOnLeftSide(rule, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateRule_multiRuleParametersSameKind(rule, diagnostics, context);
 		return result;
 	}
 
@@ -530,8 +560,8 @@
 	}
 
 	/**
-	 * Validates the multiRuleParametersSameKind constraint of '<em>Rule</em>'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the multiRuleParametersSameKind constraint of '<em>Rule</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -555,8 +585,8 @@
 	}
 
 	/**
-	 * Validates the modeling of opposite '<em>Edge</em>'s. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * Validates the modeling of opposite '<em>Edge</em>'s. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -606,8 +636,8 @@
 	}
 
 	/**
-	 * Validates the deletion of containment '<em>Edge</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the deletion of containment '<em>Edge</em>'. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -650,8 +680,8 @@
 	}
 
 	/**
-	 * Validates the creation of containment '<em>Edge</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the creation of containment '<em>Edge</em>'. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -696,29 +726,41 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateAttributeCondition(AttributeCondition attributeCondition, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(attributeCondition, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(attributeCondition, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAttributeCondition_conditionTextNotEmpty(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAttributeCondition_conditionValidJavaScript(attributeCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAttributeCondition_conditionAllParametersAreDeclared(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAttributeCondition_conditionTextNotEmpty(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAttributeCondition_conditionValidJavaScript(attributeCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAttributeCondition_conditionAllParametersAreDeclared(attributeCondition, diagnostics,
+					context);
 		return result;
 	}
 
 	/**
-	 * Validates the conditionTextNotEmpty constraint of '
-	 * <em>Attribute Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
+	 * Validates the conditionTextNotEmpty constraint of ' <em>Attribute
+	 * Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -734,9 +776,8 @@
 	}
 
 	/**
-	 * Validates the conditionValidJavaScript constraint of '
-	 * <em>Attribute Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
+	 * Validates the conditionValidJavaScript constraint of ' <em>Attribute
+	 * Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -763,6 +804,18 @@
 		if (attributeCondition.getConditionText() != null && !attributeCondition.getConditionText().isEmpty()) {
 			List<String> undeclared = findUndeclaredNames(attributeCondition.getConditionText(),
 					attributeCondition.getRule());
+
+			if (!undeclared.isEmpty()) {
+				for (Node n : attributeCondition.getRule().getLhs().getNodes()) {
+					for (Attribute  a : n.getAttributes()) {
+						if (a.getType() != null && a.getType().getEType() instanceof EEnum) {
+							for (EEnumLiteral lit : ((EEnum) a.getType().getEType()).getELiterals()) {
+								undeclared.remove(lit.getName());
+							}
+						}
+					}
+				}
+			}
 			if (!undeclared.isEmpty()) {
 				if (isJavaScriptExpression(attributeCondition.getConditionText()))
 					diagnostics.add(createDiagnostic(Diagnostic.WARNING, attributeCondition, AttributeCondition.class,
@@ -782,11 +835,11 @@
 	 * errors.
 	 */
 	private void validateExpression(String expression, Unit unit) throws ScriptException {
-		// If the unit has invalid parameter names (like keywords), this is the primary 
+		// If the unit has invalid parameter names (like keywords), this is the primary
 		// error; directly return to avoid additional feedback that may confuse the user
-		if (unitsWithIllegallyNamedParameters.contains(unit)) 
+		if (unitsWithIllegallyNamedParameters.contains(unit))
 			return;
-		
+
 		if (expression == null || unit == null) {
 			return;
 		}
@@ -834,23 +887,37 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateParameter(Parameter parameter, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(parameter, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(parameter, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameter_nameNotEmpty(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameter_nameNotTypeName(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameter_nameNotKindAlias(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameter_unknownKindDeprecated(parameter, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameter_nameNotKeyword(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_nameNotEmpty(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_nameNotTypeName(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_nameNotKindAlias(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_unknownKindDeprecated(parameter, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameter_nameNotKeyword(parameter, diagnostics, context);
 		return result;
 	}
 
@@ -913,8 +980,8 @@
 	}
 
 	/**
-	 * Validates the unknownKindDeprecated constraint of '<em>Parameter</em>'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the unknownKindDeprecated constraint of '<em>Parameter</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -922,7 +989,7 @@
 			Map<Object, Object> context) {
 		if (isSuppressParameterKindDeprecatedWarnings())
 			return true;
-		
+
 		EObject container = parameter.eContainer();
 		if (parameter != null && parameter.getKind() == ParameterKind.UNKNOWN
 				&& !(container instanceof Rule && ((Rule) container).isMultiRule())) {
@@ -975,6 +1042,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateGraph(Graph graph, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -983,6 +1051,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateGraphElement(GraphElement graphElement, DiagnosticChain diagnostics,
@@ -992,6 +1061,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateModule(Module module, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1000,27 +1070,39 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateUnit(Unit unit, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(unit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(unit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(unit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(unit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(unit, diagnostics, context);
 		return result;
 	}
 
 	/**
-	 * Validates the nameNotEmpty constraint of '<em>Unit</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the nameNotEmpty constraint of '<em>Unit</em>'. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1089,6 +1171,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateMapping(Mapping mapping, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1097,22 +1180,35 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateNode(Node node, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(node, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(node, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNode_uniqueAttributeTypes(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNode_atMostOneContainer(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNode_NodeDeletionDanglingEdge(node, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNode_NodeCreationWithoutContainment(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNode_uniqueAttributeTypes(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNode_atMostOneContainer(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNode_NodeDeletionDanglingEdge(node, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNode_NodeCreationWithoutContainment(node, diagnostics, context);
 		return result;
 	}
 
@@ -1122,13 +1218,12 @@
 		return preferences.getBoolean(PREF_ENABLE_EXTENDED_CONSISTENCY_CHECK, false);
 	}
 
-
 	private boolean isSuppressParameterKindDeprecatedWarnings() {
 		// access the global preferences
 		IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(HenshinModelPlugin.PLUGIN_ID);
 		return preferences.getBoolean(PREF_SUPPRESS_PARAMETERKIND_DEPRECATED_WARNINGS, false);
 	}
-	
+
 	/**
 	 * Validates the uniqueAttributeTypes constraint of '<em>Node</em>'. <!--
 	 * begin-user-doc --> <!-- end-user-doc -->
@@ -1183,8 +1278,8 @@
 	}
 
 	/**
-	 * Validates the consistent deletion of '<em>Node</em>'. <!-- begin-user-doc
-	 * --> <!-- end-user-doc -->
+	 * Validates the consistent deletion of '<em>Node</em>'. <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1258,26 +1353,37 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateAttribute(Attribute attribute, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(attribute, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(attribute, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAttribute_valueValidJavaScript(attribute, diagnostics, context);
-		if (result || diagnostics != null) result &= validateAttribute_valueAllParametersAreDeclared(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAttribute_valueValidJavaScript(attribute, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateAttribute_valueAllParametersAreDeclared(attribute, diagnostics, context);
 		return result;
 	}
 
 	/**
-	 * Validates the valueValidJavaScript constraint of '<em>Attribute</em>'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the valueValidJavaScript constraint of '<em>Attribute</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1309,6 +1415,13 @@
 			List<String> undeclared = findUndeclaredNames(attribute.getValue(),
 					attribute.getNode().getGraph().getRule());
 			if (!undeclared.isEmpty()) {
+				if (attribute.getType() != null && attribute.getType().getEType() instanceof EEnum) {
+					for (EEnumLiteral lit : ((EEnum) attribute.getType().getEType()).getELiterals()) {
+						undeclared.remove(lit.getName());
+					}
+				}
+			}
+			if (!undeclared.isEmpty()) {
 				if (isJavaScriptExpression(attribute.getValue()))
 					diagnostics.add(createDiagnostic(Diagnostic.WARNING, attribute, Attribute.class,
 							"valueAllParametersAreDeclaredWarning", context, new RuntimeException(undeclared.get(0))));
@@ -1400,27 +1513,45 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateEdge(Edge edge, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(edge, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(edge, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_equalParentGraphs(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_indexValidJavaScript(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_indexAllParametersAreDeclared(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_noContainmentCycles(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_EOppositeContainments(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_oppositeEdgeConsidered(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_noParallelEdgesOfSameType(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_containmentEdgeDeletion(edge, diagnostics, context);
-		if (result || diagnostics != null) result &= validateEdge_containmentEdgeCreation(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_equalParentGraphs(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_indexValidJavaScript(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_indexAllParametersAreDeclared(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_noContainmentCycles(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_EOppositeContainments(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_oppositeEdgeConsidered(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_noParallelEdgesOfSameType(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_containmentEdgeDeletion(edge, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateEdge_containmentEdgeCreation(edge, diagnostics, context);
 		return result;
 	}
 
@@ -1457,8 +1588,8 @@
 	}
 
 	/**
-	 * Validates the indexAllParametersAreDeclared constraint of '<em>Edge</em>
-	 * '. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the indexAllParametersAreDeclared constraint of '<em>Edge</em> '.
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1520,8 +1651,8 @@
 	}
 
 	/**
-	 * Validates the EOpposite constraint of '<em>Edge</em>'. <!--
-	 * begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the EOpposite constraint of '<em>Edge</em>'. <!-- begin-user-doc
+	 * --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1541,155 +1672,242 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateUnaryUnit(UnaryUnit unaryUnit, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(unaryUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(unaryUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(unaryUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(unaryUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(unaryUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateMultiUnit(MultiUnit multiUnit, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(multiUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(multiUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(multiUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(multiUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(multiUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateIndependentUnit(IndependentUnit independentUnit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(independentUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(independentUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(independentUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(independentUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(independentUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateSequentialUnit(SequentialUnit sequentialUnit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(sequentialUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(sequentialUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(sequentialUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(sequentialUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(sequentialUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateConditionalUnit(ConditionalUnit conditionalUnit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(conditionalUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(conditionalUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(conditionalUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(conditionalUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(conditionalUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validatePriorityUnit(PriorityUnit priorityUnit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(priorityUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(priorityUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(priorityUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(priorityUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(priorityUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateIteratedUnit(IteratedUnit iteratedUnit, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(iteratedUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(iteratedUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateIteratedUnit_iterationsNotEmpty(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateIteratedUnit_iterationsValidJavaScript(iteratedUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateIteratedUnit_iterationsAllParametersAreDeclared(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateIteratedUnit_iterationsNotEmpty(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateIteratedUnit_iterationsValidJavaScript(iteratedUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateIteratedUnit_iterationsAllParametersAreDeclared(iteratedUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
-	 * Validates the iterationsNotEmpty constraint of '<em>Iterated Unit</em>'.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the iterationsNotEmpty constraint of '<em>Iterated Unit</em>'. <!--
+	 * begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1704,8 +1922,8 @@
 	}
 
 	/**
-	 * Validates the iterationsValidJavaScript constraint of '
-	 * <em>Iterated Unit</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the iterationsValidJavaScript constraint of ' <em>Iterated
+	 * Unit</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1721,8 +1939,8 @@
 	}
 
 	/**
-	 * Validates the iterationsAllParametersAreDeclared constraint of '
-	 * <em>Iterated Unit</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the iterationsAllParametersAreDeclared constraint of ' <em>Iterated
+	 * Unit</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1746,41 +1964,65 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateLoopUnit(LoopUnit loopUnit, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(loopUnit, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(loopUnit, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_nameNotEmpty(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterNamesUnique(loopUnit, diagnostics, context);
-		if (result || diagnostics != null) result &= validateUnit_parameterMappingsPointToDirectSubUnit(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_nameNotEmpty(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterNamesUnique(loopUnit, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateUnit_parameterMappingsPointToDirectSubUnit(loopUnit, diagnostics, context);
 		return result;
 	}
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateNestedCondition(NestedCondition nestedCondition, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(nestedCondition, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(nestedCondition, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNestedCondition_mappingOriginContainedInParentCondition(nestedCondition, diagnostics, context);
-		if (result || diagnostics != null) result &= validateNestedCondition_mappingImageContainedInCurrent(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(nestedCondition, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateNestedCondition_mappingOriginContainedInParentCondition(nestedCondition, diagnostics,
+					context);
+		if (result || diagnostics != null)
+			result &= validateNestedCondition_mappingImageContainedInCurrent(nestedCondition, diagnostics, context);
 		return result;
 	}
 
@@ -1806,8 +2048,8 @@
 	}
 
 	/**
-	 * Validates the mappingImageContainedInCurrent constraint of '
-	 * <em>Nested Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Validates the mappingImageContainedInCurrent constraint of ' <em>Nested
+	 * Condition</em>'. <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1825,6 +2067,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateFormula(Formula formula, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1833,6 +2076,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateUnaryFormula(UnaryFormula unaryFormula, DiagnosticChain diagnostics,
@@ -1842,6 +2086,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateBinaryFormula(BinaryFormula binaryFormula, DiagnosticChain diagnostics,
@@ -1851,6 +2096,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateAnd(And and, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1859,6 +2105,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateOr(Or or, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1867,6 +2114,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateNot(Not not, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1874,8 +2122,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateTrue(True true_, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1884,6 +2132,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateParameterKind(ParameterKind parameterKind, DiagnosticChain diagnostics,
@@ -1893,6 +2142,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateAction(Action action, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1901,6 +2151,7 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateXor(Xor xor, DiagnosticChain diagnostics, Map<Object, Object> context) {
@@ -1909,31 +2160,42 @@
 
 	/**
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	public boolean validateParameterMapping(ParameterMapping parameterMapping, DiagnosticChain diagnostics,
 			Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(parameterMapping, diagnostics, context)) return false;
+		if (!validate_NoCircularContainment(parameterMapping, diagnostics, context))
+			return false;
 		boolean result = validate_EveryMultiplicityConforms(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameterMapping_inParameterMappingIsCausal(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameterMapping_outParameterMappingIsCausal(parameterMapping, diagnostics, context);
-		if (result || diagnostics != null) result &= validateParameterMapping_varParameterMappingIsCausal(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryDataValueConforms(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryReferenceIsContained(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryBidirectionalReferenceIsPaired(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryProxyResolves(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_UniqueID(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryKeyUnique(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validate_EveryMapEntryUnique(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameterMapping_inParameterMappingIsCausal(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameterMapping_outParameterMappingIsCausal(parameterMapping, diagnostics, context);
+		if (result || diagnostics != null)
+			result &= validateParameterMapping_varParameterMappingIsCausal(parameterMapping, diagnostics, context);
 		return result;
 	}
 
 	/**
-	 * Validates the inParameterMappingIsCausal constraint of '
-	 * <em>Parameter Mapping</em>'. <!-- begin-user-doc --> If the source of a
-	 * parameter mapping is an in parameter contained in a unit, the target
-	 * parameter has to be of the kinds in, inout or unknown. <!-- end-user-doc
-	 * -->
+	 * Validates the inParameterMappingIsCausal constraint of ' <em>Parameter
+	 * Mapping</em>'. <!-- begin-user-doc --> If the source of a parameter mapping
+	 * is an in parameter contained in a unit, the target parameter has to be of the
+	 * kinds in, inout or unknown. <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1958,11 +2220,10 @@
 	}
 
 	/**
-	 * Validates the outParameterMappingIsCausal constraint of '
-	 * <em>Parameter Mapping</em>'. <!-- begin-user-doc --> If the source of a
-	 * parameter mapping is an out parameter contained in a unit, tha target
-	 * parameter has to be of the kinds out, inout, or unknown. <!--
-	 * end-user-doc -->
+	 * Validates the outParameterMappingIsCausal constraint of ' <em>Parameter
+	 * Mapping</em>'. <!-- begin-user-doc --> If the source of a parameter mapping
+	 * is an out parameter contained in a unit, tha target parameter has to be of
+	 * the kinds out, inout, or unknown. <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -1997,11 +2258,10 @@
 	}
 
 	/**
-	 * Validates the varParameterMappingIsCausal constraint of '
-	 * <em>Parameter Mapping</em>'. <!-- begin-user-doc --> If the source of a
-	 * parameter mapping is a var parameter contained in a unit, and the target
-	 * parameter is of the kind in, the mapping is valid if: <!-- end-user-doc
-	 * -->
+	 * Validates the varParameterMappingIsCausal constraint of ' <em>Parameter
+	 * Mapping</em>'. <!-- begin-user-doc --> If the source of a parameter mapping
+	 * is a var parameter contained in a unit, and the target parameter is of the
+	 * kind in, the mapping is valid if: <!-- end-user-doc -->
 	 * 
 	 * @generated NOT
 	 */
@@ -2063,8 +2323,9 @@
 	}
 
 	/**
-	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * Returns the resource locator that will be used to fetch messages for this
+	 * validator's diagnostics. <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * 
 	 * @generated
 	 */
 	@Override
diff --git a/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/analysis/PerformanceAnalysis.java b/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/analysis/PerformanceAnalysis.java
index 7789253..3a7a55b 100644
--- a/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/analysis/PerformanceAnalysis.java
+++ b/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/analysis/PerformanceAnalysis.java
@@ -24,8 +24,6 @@
 public class PerformanceAnalysis {
 	
 	private static FSReader reader;
-	private static final Configuration filterConfig = new Configuration();
-	private static final IAnalysisController analysisController = new AnalysisController();
 	private static LinkedList<RuleExecutionData> ruleCalls;
 	private static LinkedList<UnitVisualizationData> unitCallData;
 	private static LinkedList<AbstractMonitoringRecord> startStopRecords;
@@ -150,6 +148,8 @@
 		if((new File(kiekerDir)).exists()){
 			final Configuration fsReaderConfig = new Configuration(); 
 			fsReaderConfig.setProperty(FSReader.CONFIG_PROPERTY_NAME_INPUTDIRS,kiekerDir);
+			Configuration filterConfig = new Configuration();
+			IAnalysisController analysisController = new AnalysisController();
 			reader = new FSReader(fsReaderConfig,analysisController);
 			final PerformanceFilter performanceFilter = new PerformanceFilter(filterConfig,analysisController,ruleCalls,startStopRecords,startRecordToRuleCallsIdx);	
 			try{
diff --git a/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/monitoring/PerformanceMonitorImpl.java b/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/monitoring/PerformanceMonitorImpl.java
index 3d68e06..6366ec1 100644
--- a/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/monitoring/PerformanceMonitorImpl.java
+++ b/plugins/org.eclipse.emf.henshin.monitoring.kieker/src/org/eclipse/emf/henshin/monitoring/kieker/monitoring/PerformanceMonitorImpl.java
@@ -15,18 +15,25 @@
 import org.eclipse.emf.henshin.monitoring.kieker.records.VariableCheckRecord;

 import org.eclipse.emf.henshin.monitoring.kieker.records.VariableInfoRecord;

 

+import kieker.common.configuration.Configuration;

 import kieker.common.record.AbstractMonitoringRecord;

+import kieker.monitoring.core.configuration.ConfigurationFactory;

 import kieker.monitoring.core.controller.IMonitoringController;

 import kieker.monitoring.core.controller.MonitoringController;

 

 public class PerformanceMonitorImpl extends BasicApplicationMonitor implements PerformanceMonitor {

 	

-	private static final IMonitoringController MONITORING_CONTROLLER=MonitoringController.getInstance();

+	private final IMonitoringController MONITORING_CONTROLLER;

 	

 	private HashMap<String,BacktrackRecord> varIdToBacktrackRecord=null;

 	private HashMap<String,VariableCheckRecord> varIdToVariableCheckRecord=null;

 	private HashMap<String,DomainRestrictionRecord> varIdtoDomainRestrictionRecord=null;

 	

+	public PerformanceMonitorImpl() {

+		super();

+		MONITORING_CONTROLLER=createNewController();

+	}

+

 	/**

 	 * Decides on the basis of the record type, how it should be handled

 	 * 

@@ -203,7 +210,19 @@
 		if(!MONITORING_CONTROLLER.isMonitoringTerminated()){

 			MONITORING_CONTROLLER.terminateMonitoring();

 		}

-		PerformanceAnalysis.runPerformanceAnalysis();;

+		PerformanceAnalysis.runPerformanceAnalysis();

+	}

+	

+	private IMonitoringController createNewController() {

+		Configuration config=ConfigurationFactory.createSingletonConfiguration();

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.customStoragePath","");

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.maxLogFiles",-1);

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.flush",false);

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.maxLogSize",-1);

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.flushMapfile",true);

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.maxEntriesInFile",25000);

+		config.setProperty("kieker.monitoring.writer.filesystem.AsciiFileWriter.shouldCompress",false);

+		return MonitoringController.createInstance(config);

 	}

 

 }

diff --git a/plugins/org.eclipse.emf.henshin.monitoring.ui/src/org/eclipse/emf/henshin/monitoring/ui/HenshinPerformanceView.java b/plugins/org.eclipse.emf.henshin.monitoring.ui/src/org/eclipse/emf/henshin/monitoring/ui/HenshinPerformanceView.java
index b07df41..e3d3556 100644
--- a/plugins/org.eclipse.emf.henshin.monitoring.ui/src/org/eclipse/emf/henshin/monitoring/ui/HenshinPerformanceView.java
+++ b/plugins/org.eclipse.emf.henshin.monitoring.ui/src/org/eclipse/emf/henshin/monitoring/ui/HenshinPerformanceView.java
@@ -33,7 +33,7 @@
 			@Override

 			public void run() {

 				JFrame frame = new JFrame("Henshin Profiler");

-				frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

+				frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

 				String[] transformationTabs = new String[ruleVisualizationData.size()+1];

 				transformationTabs[0]="Call Graph";

 				int idx=1;

diff --git a/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/ConflictAnalysis.java b/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/ConflictAnalysis.java
index d001104..e6ad492 100644
--- a/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/ConflictAnalysis.java
+++ b/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/ConflictAnalysis.java
@@ -332,7 +332,15 @@
 		Set<Node> l1 = new HashSet<>(rule1.getLhs().getNodes());
 		Set<Node> l2 = new HashSet<>(originalR2.getLhs().getNodes());
 		Set<Node> f = new HashSet<>();
-		for (NestedCondition nc : originalR2.getLhs().getNACs())
+		Set<Node> l1InNac = new HashSet<>();
+		Set<Node> l2InNac = new HashSet<>();
+		boolean allowed1 = true;
+		boolean allowed2 = true;
+		boolean nac2Allowed = false;
+		boolean nac1Allowed = false;
+		
+		//collect all negative nodes of rule 2
+		for (NestedCondition nc : originalR2.getLhs().getNACs()) {
 			for (Node fn : nc.getConclusion().getNodes()) {
 				Node mappedNode = nc.getMappings().getOrigin(fn);
 				if (mappedNode == null)
@@ -341,20 +349,32 @@
 					l2.remove(mappedNode);
 					f.add(fn);
 				}
+				else {
+					l2InNac.add(fn);
+				}
 			}
 
+		//if there are negative elements, add l2
 		if (!f.isEmpty()) {
 			Map<Node, Node> result = new HashMap<>();
-			f.addAll(l2);
+			//f.addAll(l2);
+			f.addAll(l2InNac);
 			Utils.mapNodes(l1, f, result, true);
-			boolean allowed = result.size() < f.size();
-			if (!allowed)
-				return false;
+			boolean allNodesMapped = result.size() == f.size();
+			if (allNodesMapped) {
+					nac2Allowed = checkValidityOfMapping(result);
+			}
+			else nac2Allowed = true;
 		}
+		else nac2Allowed = true;
 		f.clear();
+		l2InNac.clear();
+		allowed1 = allowed1 && nac2Allowed;
+		}
+		
 		l2 = new HashSet<>(originalR2.getLhs().getNodes());
 		l1 = new HashSet<>(rule1.getLhs().getNodes());
-		for (NestedCondition nc : rule1.getLhs().getNACs())
+		for (NestedCondition nc : rule1.getLhs().getNACs()) {
 			for (Node fn : nc.getConclusion().getNodes()) {
 				Node mappedNode = nc.getMappings().getOrigin(fn);
 				if (mappedNode == null)
@@ -363,17 +383,53 @@
 					l1.remove(mappedNode);
 					f.add(fn);
 				}
+				else {
+					l1InNac.add(fn);
+				}
 			}
 
 		if (!f.isEmpty()) {
 			Map<Node, Node> result = new HashMap<>();
-			f.addAll(l1);
+			//f.addAll(l1);
+			f.addAll(l1InNac);
 			Utils.mapNodes(l2, f, result, true);
-			boolean allowed = result.size() < f.size();
-			if (!allowed)
-				return false;
+			boolean allNodesMapped = result.size() == f.size();
+			if (allNodesMapped) {
+				nac1Allowed = checkValidityOfMapping(result);
+			}
+		   else nac1Allowed = true;
+		  }
+	      else nac1Allowed = true;
+		   f.clear();
+	       l1InNac.clear();
+	       allowed2 = allowed2 && nac1Allowed;
 		}
-		return true;
+	return allowed1 && allowed2;
+	}
+
+	private boolean checkValidityOfMapping(Map<Node, Node> result) {
+		Set<Node> mappedNodes = result.keySet();
+		for (Node n : mappedNodes) {
+			if(n.getOutgoing().size() != result.get(n).getOutgoing().size() ||
+			   n.getIncoming().size() != result.get(n).getIncoming().size()){
+				   return  true;
+			   }
+			else if (n.getOutgoing().size() == result.get(n).getOutgoing().size()) {
+				for(Edge e: n.getOutgoing()) {
+					if(!result.containsKey(e.getTarget())){
+						return true;
+					}
+				}
+				if (n.getIncoming().size() == result.get(n).getIncoming().size()) {
+				for(Edge e: n.getIncoming()) {
+						if(!result.containsKey(e.getSource())){
+							return true;	
+						}
+					}
+				}
+			}
+		}
+		return false;
 	}
 
 	public <T extends Span> Set<T> setRequires(Set<T> spans) {
diff --git a/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/Utils.java b/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/Utils.java
index 69d052e..6858742 100644
--- a/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/Utils.java
+++ b/plugins/org.eclipse.emf.henshin.multicda.cda/src/org/eclipse/emf/henshin/multicda/cda/Utils.java
@@ -1046,6 +1046,9 @@
 
 	public static Map<Node, Node> mapNodes(Set<Node> nodesOriginal1, Set<Node> nodesOriginal2, Set<Node> nodes2,
 			Map<Node, Node> result, boolean allActionTypes) {
+		
+		//Tries to compute a mapping from nodesOriginal1 to nodesOriginal2
+		//When there is a mapping, result is not empty
 		if (result == null)
 			result = new HashMap<>();
 		for (Node n2 : nodes2) {
@@ -1058,12 +1061,16 @@
 								EList<Edge> e1 = n1.getOutgoing(e2.getType());
 								boolean foundEdge = false;
 								for (Edge e : e1)
-									if ((allActionTypes || e.getAction().getType() == Action.Type.PRESERVE)
-											&& nodesOriginal1.contains(e.getTarget())) {
-										foundEdge = true;
-										break;
-									}
-								found = foundEdge;
+									if (allActionTypes || e.getAction().getType() == Action.Type.PRESERVE) {
+											//&& nodesOriginal1.contains(e.getTarget())
+											if (result.get(e.getTarget()) == null || result.get(e.getTarget())== e2.getTarget()) {
+													foundEdge = true;
+													break;
+												}
+											}
+								if (e1.size() != 0) {
+									found = foundEdge;
+								}
 							}
 						if (found)
 							for (Edge e2 : n2.getIncoming())
@@ -1071,12 +1078,17 @@
 									EList<Edge> e1 = n1.getIncoming(e2.getType());
 									boolean foundEdge = false;
 									for (Edge e : e1)
-										if ((allActionTypes || e.getAction().getType() == Action.Type.PRESERVE)
-												&& nodesOriginal1.contains(e.getTarget())) {
-											foundEdge = true;
-											break;
-										}
-									found = foundEdge;
+										if (allActionTypes || e.getAction().getType() == Action.Type.PRESERVE) {
+												//&& nodesOriginal1.contains(e.getTarget())
+											// in the follwoing: getTarget() should be getSource()
+												if (result.get(e.getSource()) == null || result.get(e.getSource())== e2.getSource()) {
+														foundEdge = true;
+														break;
+													}
+												}
+									if (e1.size() != 0) {
+										found = foundEdge;
+									}
 								}
 						if (found) {
 							result.put(n1, n2);
@@ -1086,7 +1098,9 @@
 								return result;
 							}
 							mapNodes(nodesOriginal1, nodesOriginal2, remained, result, allActionTypes);
-							if (result.size() == nodesOriginal2.size()) {
+							//was nodesOriginal2
+							if (result.size() == Math.min(nodesOriginal1.size(),nodesOriginal2.size())) {
+							//if (result.size() == nodesOriginal2.size() - remained.size()) {
 								return result;
 							}
 							result.remove(n1);
diff --git a/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
index ee737c7..84c5bd8 100644
--- a/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.emf.henshin.tests/META-INF/MANIFEST.MF
@@ -2,6 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.emf.henshin.tests;singleton:=true
+Automatic-Module-Name: org.eclipse.emf.henshin.tests
 Bundle-Version: 1.7.0.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.emf.henshin.tests/basic/models/attributeTestsModels/restrictedAttributes.testmodel b/plugins/org.eclipse.emf.henshin.tests/basic/models/attributeTestsModels/restrictedAttributes.testmodel
new file mode 100644
index 0000000..aef837b
--- /dev/null
+++ b/plugins/org.eclipse.emf.henshin.tests/basic/models/attributeTestsModels/restrictedAttributes.testmodel
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<testmodel:cont xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:testmodel="http://www.eclipse.org/emf/2010/Henshin/Tests">
+  <containsNode hasVals="//@containsVal.0" nodename="TestNode"/>
+  <containsVal xsi:type="testmodel:SpecialVal" intvl="10" valname="TestValue" unsetablevl="99"/>
+</testmodel:cont>
diff --git a/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin b/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin
index d70d6bc..af175a0 100644
--- a/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin
+++ b/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin
@@ -1,5 +1,5 @@
-<?xml version="1.0" encoding="CP1252"?>
-<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_fzh7MPkLEeG8L_O0_HQfRg" name="basicTests">
+<?xml version="1.0" encoding="UTF-8"?>
+<henshin:Module xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmi:id="_fzh7MPkLEeG8L_O0_HQfRg" name="basicTests">
   <imports href="http://www.eclipse.org/emf/2010/Henshin/Tests#/"/>
   <units xsi:type="henshin:Rule" xmi:id="_fziiQPkLEeG8L_O0_HQfRg" name="createNodeWithContainmentEdge">
     <lhs xmi:id="_fziiQ_kLEeG8L_O0_HQfRg" name="LHS">
@@ -855,4 +855,109 @@
     </rhs>
     <mappings xmi:id="_f05NIfkLEeG8L_O0_HQfRg" origin="_f0tm8fkLEeG8L_O0_HQfRg" image="_f0u1EPkLEeG8L_O0_HQfRg"/>
   </units>
+  <units xsi:type="henshin:Rule" xmi:id="_407VsASIEeuVKoowyGAAsw" name="setStandardAttributeValue">
+    <lhs xmi:id="_41NCgASIEeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_jPU-4ASLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="_41NCgQSIEeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_jPW0EASLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_mni34ASLEeuVKoowyGAAsw" value="99">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
+        </attributes>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_jPW0EQSLEeuVKoowyGAAsw" origin="_jPU-4ASLEeuVKoowyGAAsw" image="_jPW0EASLEeuVKoowyGAAsw"/>
+  </units>
+  <units xsi:type="henshin:Rule" xmi:id="__-O6sASIEeuVKoowyGAAsw" name="setDerivedAttributeValue">
+    <lhs xmi:id="__-Qv4ASIEeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_sufA8ASLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="__-Qv4QSIEeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_sufoAASLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_uK_bMASLEeuVKoowyGAAsw" value="99">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal/derivedvl"/>
+        </attributes>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_sufoAQSLEeuVKoowyGAAsw" origin="_sufA8ASLEeuVKoowyGAAsw" image="_sufoAASLEeuVKoowyGAAsw"/>
+  </units>
+  <units xsi:type="henshin:Rule" xmi:id="_MqS9oASJEeuVKoowyGAAsw" name="setUnchangeableAttributeValue">
+    <lhs xmi:id="_MqULwASJEeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_2m-JAASLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="_MqULwQSJEeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_2m-JAQSLEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_3zWckASLEeuVKoowyGAAsw" value="99">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal/unchangeablevl"/>
+        </attributes>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_2m-JAgSLEeuVKoowyGAAsw" origin="_2m-JAASLEeuVKoowyGAAsw" image="_2m-JAQSLEeuVKoowyGAAsw"/>
+  </units>
+  <units xsi:type="henshin:Rule" xmi:id="_6pMBQASLEeuVKoowyGAAsw" name="unsetUnsetableAttribute">
+    <parameters xmi:id="_XqwTAASMEeuVKoowyGAAsw" name="x" kind="OUT">
+      <type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    </parameters>
+    <lhs xmi:id="_6pNPYASLEeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_UA_XAASMEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_VZKD0ASMEeuVKoowyGAAsw" value="x">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal/unsetablevl"/>
+        </attributes>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="_6pNPYQSLEeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_UA_XAQSMEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_UA_XAgSMEeuVKoowyGAAsw" origin="_UA_XAASMEeuVKoowyGAAsw" image="_UA_XAQSMEeuVKoowyGAAsw"/>
+  </units>
+  <units xsi:type="henshin:Rule" xmi:id="_B4WWoASMEeuVKoowyGAAsw" name="unsetStandardAttribute">
+    <parameters xmi:id="_P6MgwASMEeuVKoowyGAAsw" name="x" kind="OUT">
+      <type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    </parameters>
+    <lhs xmi:id="_B4XkwASMEeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_E6uigASMEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_GkXZ0ASMEeuVKoowyGAAsw" value="x">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
+        </attributes>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="_B4XkwQSMEeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_E6uigQSMEeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_E6uiggSMEeuVKoowyGAAsw" origin="_E6uigASMEeuVKoowyGAAsw" image="_E6uigQSMEeuVKoowyGAAsw"/>
+  </units>
+  <units xsi:type="henshin:Rule" xmi:id="_3TW0cAS4EeuVKoowyGAAsw" name="unsetUnsetableUnchangeableAttribute">
+    <parameters xmi:id="_Kdef8AS5EeuVKoowyGAAsw" name="x" kind="OUT">
+      <type xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
+    </parameters>
+    <lhs xmi:id="_3TZ3wAS4EeuVKoowyGAAsw" name="Lhs">
+      <nodes xmi:id="_3xI8oAS4EeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+        <attributes xmi:id="_E2qocAS5EeuVKoowyGAAsw" value="x">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal/unsetableunchangeablevl"/>
+        </attributes>
+      </nodes>
+    </lhs>
+    <rhs xmi:id="_3TZ3wQS4EeuVKoowyGAAsw" name="Rhs">
+      <nodes xmi:id="_3xI8oQS4EeuVKoowyGAAsw" name="v">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//SpecialVal"/>
+      </nodes>
+    </rhs>
+    <mappings xmi:id="_3xI8ogS4EeuVKoowyGAAsw" origin="_3xI8oAS4EeuVKoowyGAAsw" image="_3xI8oQS4EeuVKoowyGAAsw"/>
+  </units>
 </henshin:Module>
diff --git a/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin_diagram b/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin_diagram
new file mode 100644
index 0000000..36b46f6
--- /dev/null
+++ b/plugins/org.eclipse.emf.henshin.tests/basic/rules/basicTests.henshin_diagram
@@ -0,0 +1,305 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmi:id="_0D_LsASHEeubE-0qOuPy7w" type="Henshin" measurementUnit="Pixel">
+  <children xmi:type="notation:Shape" xmi:id="_x1HD4ASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HD4gSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HD4wSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fziiQPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1HD4QSIEeuVKoowyGAAsw"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1HD5ASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq8ASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq8QSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fzkXcfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1HD5QSIEeuVKoowyGAAsw" x="310"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1Hq8gSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq9ASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq9QSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fznawfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1Hq8wSIEeuVKoowyGAAsw" x="672"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1Hq9gSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq-ASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq-QSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fzp3A_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1Hq9wSIEeuVKoowyGAAsw" x="1077"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1Hq-gSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq_ASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1Hq_QSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fzs6UfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1Hq-wSIEeuVKoowyGAAsw" x="1482"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1Hq_gSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrAASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrAQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fzthYfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1Hq_wSIEeuVKoowyGAAsw" x="1792"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1HrAgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrBASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrBQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fzuvgvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1HrAwSIEeuVKoowyGAAsw" x="2102"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1HrBgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrCASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1HrCQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_fz_OMfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1HrBwSIEeuVKoowyGAAsw" x="2464"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISAASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISAgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISAwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0CRgPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISAQSIEeuVKoowyGAAsw" x="2828"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISBASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISBgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISBwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0EtwvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISBQSIEeuVKoowyGAAsw" x="3198"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISCASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISCgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISCwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0HxEPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISCQSIEeuVKoowyGAAsw" x="3568"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISDASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISDgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISDwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0K0YfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISDQSIEeuVKoowyGAAsw" x="3938"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISEASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISEgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISEwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0MpkfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISEQSIEeuVKoowyGAAsw" x="4248"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISFASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISFgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1ISFwSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0OewPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISFQSIEeuVKoowyGAAsw" x="4558"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1ISGASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5EASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5EQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0QT8fkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1ISGQSIEeuVKoowyGAAsw" x="4868"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5EgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5FASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5FQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0T-UPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5EwSIEeuVKoowyGAAsw" x="5178"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5FgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5GASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5GQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0XBofkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5FwSIEeuVKoowyGAAsw" x="5488"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5GgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5HASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5HQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0Zd4fkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5GwSIEeuVKoowyGAAsw" x="5798"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5HgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5IASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5IQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0b6IPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5HwSIEeuVKoowyGAAsw" x="6108"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5IgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5JASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1I5JQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0e9cPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5IwSIEeuVKoowyGAAsw" x="6478"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1I5JgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgIASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgIQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0hZsvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1I5JwSIEeuVKoowyGAAsw" x="6848"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1JgIgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgJASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgJQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0jO4_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1JgIwSIEeuVKoowyGAAsw" x="7158"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1JgJgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgKASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgKQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0m5QvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1JgJwSIEeuVKoowyGAAsw" x="7563"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1JgKgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgLASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgLQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0p8kPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1JgKwSIEeuVKoowyGAAsw" x="8024"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1JgLgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgMASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgMQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0sY0vkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1JgLwSIEeuVKoowyGAAsw" x="8485"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_x1JgMgSIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgNASIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_x1JgNQSIEeuVKoowyGAAsw" type="7001"/>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_f0s_4_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_x1JgMwSIEeuVKoowyGAAsw" x="8795"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_41JYIASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_jPW0EgSLEeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_jPW0EwSLEeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_41JYIgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_41JYIwSIEeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_jPbFgASLEeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_jPbFggSLEeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_jPbFgwSLEeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_jPbFhASLEeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_mnnJUASLEeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_mni34ASLEeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_mnnJUQSLEeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_jPbFhQSLEeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_jPbFhgSLEeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_jPU-4ASLEeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jPbFgQSLEeuVKoowyGAAsw" x="57" y="44"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_407VsASIEeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_41JYIQSIEeuVKoowyGAAsw" x="8981" y="297"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="__-PhwASIEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_sufoAgSLEeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_sufoAwSLEeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="__-PhwgSIEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="__-PhwwSIEeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_suirUASLEeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_suirUgSLEeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_suirUwSLEeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_suirVASLEeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_uLCegASLEeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_uK_bMASLEeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_uLCegQSLEeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_suirVQSLEeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_suirVgSLEeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_sufA8ASLEeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_suirUQSLEeuVKoowyGAAsw" x="53" y="47"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#__-O6sASIEeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="__-PhwQSIEeuVKoowyGAAsw" x="9271" y="297"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_MqTksASJEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_2m-JAwSLEeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_2m-JBASLEeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_MqTksgSJEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_MqTkswSJEeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_2m-JBQSLEeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_2m-JBwSLEeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_2m-JCASLEeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_2m-JCQSLEeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_3zY40ASLEeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_3zWckASLEeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_3zY40QSLEeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_2m-JCgSLEeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_2m-JCwSLEeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_2m-JAASLEeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2m-JBgSLEeuVKoowyGAAsw" x="54" y="42"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_MqS9oASJEeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MqTksQSJEeuVKoowyGAAsw" x="9548" y="297"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_6pMoUASLEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_UA_XAwSMEeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_UA_XBASMEeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6pMoUgSLEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_6pMoUwSLEeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_UBCaUASMEeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_UBCaUgSMEeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_UBCaUwSMEeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_UBCaVASMEeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_VZNuMASMEeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_VZKD0ASMEeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_VZNuMQSMEeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_UBCaVQSMEeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_UBCaVgSMEeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_UA_XAASMEeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UBCaUQSMEeuVKoowyGAAsw" x="57" y="42"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_6pMBQASLEeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_6pMoUQSLEeuVKoowyGAAsw" x="10134" y="297"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_B4W9sASMEeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_E6uigwSMEeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_E6uihASMEeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_B4W9sgSMEeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_B4W9swSMEeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_E6xl0ASMEeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_E6xl0gSMEeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_E6xl0wSMEeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_E6xl1ASMEeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_GkadIASMEeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_GkXZ0ASMEeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_GkadIQSMEeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_E6xl1QSMEeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_E6xl1gSMEeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_E6uigASMEeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E6xl0QSMEeuVKoowyGAAsw" x="76" y="41"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_B4WWoASMEeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_B4W9sQSMEeuVKoowyGAAsw" x="9837" y="297"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_3TYpoAS4EeuVKoowyGAAsw" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_3xJjsAS4EeuVKoowyGAAsw" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_3xJjsQS4EeuVKoowyGAAsw" key="value" value="preserve"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_3TYpogS4EeuVKoowyGAAsw" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_3TYpowS4EeuVKoowyGAAsw" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_3xN1IAS4EeuVKoowyGAAsw" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_3xN1IgS4EeuVKoowyGAAsw" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_3xN1IwS4EeuVKoowyGAAsw" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_3xN1JAS4EeuVKoowyGAAsw" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_E2wvEAS5EeuVKoowyGAAsw" type="3002">
+            <element xmi:type="henshin:Attribute" href="basicTests.henshin#_E2qocAS5EeuVKoowyGAAsw"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_E2wvEQS5EeuVKoowyGAAsw"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_3xN1JQS4EeuVKoowyGAAsw"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_3xN1JgS4EeuVKoowyGAAsw"/>
+        </children>
+        <element xmi:type="henshin:Node" href="basicTests.henshin#_3xI8oAS4EeuVKoowyGAAsw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3xN1IQS4EeuVKoowyGAAsw" x="55" y="40"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="basicTests.henshin#_3TW0cAS4EeuVKoowyGAAsw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_3TYpoQS4EeuVKoowyGAAsw" x="10453" y="297"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_0D_LsQSHEeubE-0qOuPy7w"/>
+  <element xmi:type="henshin:Module" href="basicTests.henshin#_fzh7MPkLEeG8L_O0_HQfRg"/>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin b/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin
index 13fe900..c34b27a 100644
--- a/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin
+++ b/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin
@@ -354,6 +354,7 @@
     <mappings xmi:id="_sU7mQfkLEeG8L_O0_HQfRg" origin="_sU6YIPkLEeG8L_O0_HQfRg" image="_sU6_MfkLEeG8L_O0_HQfRg"/>
     <mappings xmi:id="_sU7mQvkLEeG8L_O0_HQfRg" origin="_sU6YIfkLEeG8L_O0_HQfRg" image="_sU6_MvkLEeG8L_O0_HQfRg"/>
     <multiRules xmi:id="_sU8NUPkLEeG8L_O0_HQfRg" name="amalgamationUnitTest_mul_deleteChild" description="">
+      <parameters xmi:id="_HGG-0AM1EeuCbfdqQWBQPQ" name="ndname"/>
       <lhs xmi:id="_sU8NU_kLEeG8L_O0_HQfRg" name="LHS">
         <nodes xmi:id="_sU8NVPkLEeG8L_O0_HQfRg" name="containment" outgoing="_sU80YvkLEeG8L_O0_HQfRg _sU9bcPkLEeG8L_O0_HQfRg">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//cont"/>
@@ -396,6 +397,7 @@
       <multiMappings xmi:id="_sU_QofkLEeG8L_O0_HQfRg" origin="_sU6_MvkLEeG8L_O0_HQfRg" image="_sU-CgfkLEeG8L_O0_HQfRg"/>
     </multiRules>
     <multiRules xmi:id="_sU_QovkLEeG8L_O0_HQfRg" name="amalgamationUnitTest_mul_deleteVal">
+      <parameters xmi:id="_HGG-0QM1EeuCbfdqQWBQPQ" name="ndname"/>
       <lhs xmi:id="_sU_QpfkLEeG8L_O0_HQfRg" name="LHS">
         <nodes xmi:id="_sU_3sPkLEeG8L_O0_HQfRg" name="cont" outgoing="_sVAewPkLEeG8L_O0_HQfRg _sVAewfkLEeG8L_O0_HQfRg">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//cont"/>
@@ -510,101 +512,91 @@
   </units>
   <units xsi:type="henshin:Rule" xmi:id="_sVKPwPkLEeG8L_O0_HQfRg" name="amu_attributeInKernelNac_krl_amu2_krl">
     <lhs xmi:id="_sVKPw_kLEeG8L_O0_HQfRg" name="LHS">
-      <nodes xmi:id="_sVKPxPkLEeG8L_O0_HQfRg" name="main_nd">
+      <nodes xmi:id="_1DXAgAMzEeuCbfdqQWBQPQ" name="main">
         <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
-        <attributes xmi:id="_sVK20PkLEeG8L_O0_HQfRg" value="&quot;X&quot;">
+        <attributes xmi:id="_xdhFwAM0EeuCbfdqQWBQPQ" value="&quot;X&quot;">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/nodename"/>
         </attributes>
       </nodes>
-      <nodes xmi:id="_sVK20fkLEeG8L_O0_HQfRg" name="sel_nd" outgoing="_sVLd4fkLEeG8L_O0_HQfRg">
+      <nodes xmi:id="_9sR-IAMzEeuCbfdqQWBQPQ" name="sel">
         <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
       </nodes>
-      <nodes xmi:id="_sVLd4PkLEeG8L_O0_HQfRg" name="vl" incoming="_sVLd4fkLEeG8L_O0_HQfRg">
-        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
-      </nodes>
-      <edges xmi:id="_sVLd4fkLEeG8L_O0_HQfRg" source="_sVK20fkLEeG8L_O0_HQfRg" target="_sVLd4PkLEeG8L_O0_HQfRg">
-        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
-      </edges>
-      <formula xsi:type="henshin:NestedCondition" xmi:id="_sVME8PkLEeG8L_O0_HQfRg">
-        <conclusion xmi:id="_sVME8fkLEeG8L_O0_HQfRg" name="select node without val with intvl=4">
-          <nodes xmi:id="_sVME8vkLEeG8L_O0_HQfRg" name="nd" outgoing="_sVNTEPkLEeG8L_O0_HQfRg">
-            <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
-          </nodes>
-          <nodes xmi:id="_sVMsAPkLEeG8L_O0_HQfRg" name="vl" incoming="_sVNTEPkLEeG8L_O0_HQfRg">
-            <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
-            <attributes xmi:id="_sVMsAfkLEeG8L_O0_HQfRg" value="4">
-              <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
-            </attributes>
-          </nodes>
-          <edges xmi:id="_sVNTEPkLEeG8L_O0_HQfRg" source="_sVME8vkLEeG8L_O0_HQfRg" target="_sVMsAPkLEeG8L_O0_HQfRg">
-            <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
-          </edges>
-        </conclusion>
-        <mappings xmi:id="_sVNTEfkLEeG8L_O0_HQfRg" origin="_sVK20fkLEeG8L_O0_HQfRg" image="_sVME8vkLEeG8L_O0_HQfRg"/>
-        <mappings xmi:id="_sVN6IPkLEeG8L_O0_HQfRg" origin="_sVLd4PkLEeG8L_O0_HQfRg" image="_sVMsAPkLEeG8L_O0_HQfRg"/>
-      </formula>
     </lhs>
     <rhs xmi:id="_sVN6IfkLEeG8L_O0_HQfRg" name="RHS">
-      <nodes xmi:id="_sVN6IvkLEeG8L_O0_HQfRg" name="main_nd">
+      <nodes xmi:id="_1DXAgQMzEeuCbfdqQWBQPQ" name="main">
         <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
-      </nodes>
-      <nodes xmi:id="_sVOhMPkLEeG8L_O0_HQfRg" name="sel_nd" outgoing="_sVPIQfkLEeG8L_O0_HQfRg">
-        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
-      </nodes>
-      <nodes xmi:id="_sVOhMfkLEeG8L_O0_HQfRg" name="vl" incoming="_sVPIQfkLEeG8L_O0_HQfRg">
-        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
-        <attributes xmi:id="_sVPIQPkLEeG8L_O0_HQfRg" value="4">
-          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
+        <attributes xmi:id="_xdhFwQM0EeuCbfdqQWBQPQ" value="&quot;X&quot;">
+          <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/nodename"/>
         </attributes>
       </nodes>
-      <edges xmi:id="_sVPIQfkLEeG8L_O0_HQfRg" source="_sVOhMPkLEeG8L_O0_HQfRg" target="_sVOhMfkLEeG8L_O0_HQfRg">
-        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
-      </edges>
+      <nodes xmi:id="_9sR-IQMzEeuCbfdqQWBQPQ" name="sel">
+        <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
+      </nodes>
     </rhs>
-    <mappings xmi:id="_sVPvUPkLEeG8L_O0_HQfRg" origin="_sVKPxPkLEeG8L_O0_HQfRg" image="_sVN6IvkLEeG8L_O0_HQfRg"/>
-    <mappings xmi:id="_sVPvUfkLEeG8L_O0_HQfRg" origin="_sVK20fkLEeG8L_O0_HQfRg" image="_sVOhMPkLEeG8L_O0_HQfRg"/>
-    <mappings xmi:id="_sVPvUvkLEeG8L_O0_HQfRg" origin="_sVLd4PkLEeG8L_O0_HQfRg" image="_sVOhMfkLEeG8L_O0_HQfRg"/>
-    <multiRules xmi:id="_sVQWYPkLEeG8L_O0_HQfRg" name="amu_attributeInKernelNac_mul_amu2_multi">
-      <lhs xmi:id="_sVQWY_kLEeG8L_O0_HQfRg" name="LHS">
-        <nodes xmi:id="_sVQWZPkLEeG8L_O0_HQfRg" name="main_nd">
+    <mappings xmi:id="_1DXAggMzEeuCbfdqQWBQPQ" origin="_1DXAgAMzEeuCbfdqQWBQPQ" image="_1DXAgQMzEeuCbfdqQWBQPQ"/>
+    <mappings xmi:id="_9sR-IgMzEeuCbfdqQWBQPQ" origin="_9sR-IAMzEeuCbfdqQWBQPQ" image="_9sR-IQMzEeuCbfdqQWBQPQ"/>
+    <multiRules xmi:id="_eA1qoAM0EeuCbfdqQWBQPQ">
+      <lhs xmi:id="_eA1qoQM0EeuCbfdqQWBQPQ" name="Lhs">
+        <nodes xmi:id="_eA2RsQM0EeuCbfdqQWBQPQ" name="main">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
         </nodes>
-        <nodes xmi:id="_sVQ9cPkLEeG8L_O0_HQfRg" name="sel_nd" outgoing="_sVRkgPkLEeG8L_O0_HQfRg">
+        <nodes xmi:id="_eA2RtgM0EeuCbfdqQWBQPQ" name="sel" outgoing="_ffYFMAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
         </nodes>
-        <nodes xmi:id="_sVQ9cfkLEeG8L_O0_HQfRg" name="vl" incoming="_sVRkgPkLEeG8L_O0_HQfRg">
+        <nodes xmi:id="_cKM5IAM0EeuCbfdqQWBQPQ" name="val" incoming="_ffYFMAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
         </nodes>
-        <edges xmi:id="_sVRkgPkLEeG8L_O0_HQfRg" source="_sVQ9cPkLEeG8L_O0_HQfRg" target="_sVQ9cfkLEeG8L_O0_HQfRg">
+        <edges xmi:id="_ffYFMAM0EeuCbfdqQWBQPQ" source="_eA2RtgM0EeuCbfdqQWBQPQ" target="_cKM5IAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
         </edges>
+        <formula xsi:type="henshin:Not" xmi:id="_vAb_UAM0EeuCbfdqQWBQPQ">
+          <child xsi:type="henshin:NestedCondition" xmi:id="_vAb_UQM0EeuCbfdqQWBQPQ">
+            <conclusion xmi:id="_vAb_UgM0EeuCbfdqQWBQPQ">
+              <nodes xmi:id="_vAb_UwM0EeuCbfdqQWBQPQ" name="val" incoming="_vAb_WAM0EeuCbfdqQWBQPQ">
+                <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
+                <attributes xmi:id="_nPMQkAM0EeuCbfdqQWBQPQ" value="4">
+                  <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
+                </attributes>
+              </nodes>
+              <nodes xmi:id="_vAb_VgM0EeuCbfdqQWBQPQ" name="sel" outgoing="_vAb_WAM0EeuCbfdqQWBQPQ">
+                <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
+              </nodes>
+              <edges xmi:id="_vAb_WAM0EeuCbfdqQWBQPQ" source="_vAb_VgM0EeuCbfdqQWBQPQ" target="_vAb_UwM0EeuCbfdqQWBQPQ">
+                <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
+              </edges>
+            </conclusion>
+            <mappings xmi:id="_vAb_VQM0EeuCbfdqQWBQPQ" origin="_cKM5IAM0EeuCbfdqQWBQPQ" image="_vAb_UwM0EeuCbfdqQWBQPQ"/>
+            <mappings xmi:id="_vAb_VwM0EeuCbfdqQWBQPQ" origin="_eA2RtgM0EeuCbfdqQWBQPQ" image="_vAb_VgM0EeuCbfdqQWBQPQ"/>
+          </child>
+        </formula>
       </lhs>
-      <rhs xmi:id="_sVRkgfkLEeG8L_O0_HQfRg" name="RHS">
-        <nodes xmi:id="_sVRkgvkLEeG8L_O0_HQfRg" name="main_nd" outgoing="_sVSyofkLEeG8L_O0_HQfRg">
+      <rhs xmi:id="_eA1qogM0EeuCbfdqQWBQPQ" name="Rhs">
+        <nodes xmi:id="_eA1qowM0EeuCbfdqQWBQPQ" name="main" outgoing="_lIY8IAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
         </nodes>
-        <nodes xmi:id="_sVSLkPkLEeG8L_O0_HQfRg" name="sel_nd" outgoing="_sVSyoPkLEeG8L_O0_HQfRg">
+        <nodes xmi:id="_eA2RtAM0EeuCbfdqQWBQPQ" name="sel" outgoing="_ffYsQAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node"/>
         </nodes>
-        <nodes xmi:id="_sVSLkfkLEeG8L_O0_HQfRg" name="vl" incoming="_sVSyoPkLEeG8L_O0_HQfRg _sVSyofkLEeG8L_O0_HQfRg">
+        <nodes xmi:id="_cKM5IQM0EeuCbfdqQWBQPQ" name="val" incoming="_ffYsQAM0EeuCbfdqQWBQPQ _lIY8IAM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val"/>
+          <attributes xmi:id="_VxrbYAM1EeuCbfdqQWBQPQ" value="4">
+            <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Val/intvl"/>
+          </attributes>
         </nodes>
-        <edges xmi:id="_sVSyoPkLEeG8L_O0_HQfRg" source="_sVSLkPkLEeG8L_O0_HQfRg" target="_sVSLkfkLEeG8L_O0_HQfRg">
+        <edges xmi:id="_ffYsQAM0EeuCbfdqQWBQPQ" source="_eA2RtAM0EeuCbfdqQWBQPQ" target="_cKM5IQM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
         </edges>
-        <edges xmi:id="_sVSyofkLEeG8L_O0_HQfRg" source="_sVRkgvkLEeG8L_O0_HQfRg" target="_sVSLkfkLEeG8L_O0_HQfRg">
+        <edges xmi:id="_lIY8IAM0EeuCbfdqQWBQPQ" source="_eA1qowM0EeuCbfdqQWBQPQ" target="_cKM5IQM0EeuCbfdqQWBQPQ">
           <type href="http://www.eclipse.org/emf/2010/Henshin/Tests#//Node/hasVals"/>
         </edges>
       </rhs>
-      <mappings xmi:id="_sVTZsPkLEeG8L_O0_HQfRg" origin="_sVQWZPkLEeG8L_O0_HQfRg" image="_sVRkgvkLEeG8L_O0_HQfRg"/>
-      <mappings xmi:id="_sVTZsfkLEeG8L_O0_HQfRg" origin="_sVQ9cPkLEeG8L_O0_HQfRg" image="_sVSLkPkLEeG8L_O0_HQfRg"/>
-      <mappings xmi:id="_sVTZsvkLEeG8L_O0_HQfRg" origin="_sVQ9cfkLEeG8L_O0_HQfRg" image="_sVSLkfkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUAwPkLEeG8L_O0_HQfRg" origin="_sVKPxPkLEeG8L_O0_HQfRg" image="_sVQWZPkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUAwfkLEeG8L_O0_HQfRg" origin="_sVK20fkLEeG8L_O0_HQfRg" image="_sVQ9cPkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUAwvkLEeG8L_O0_HQfRg" origin="_sVLd4PkLEeG8L_O0_HQfRg" image="_sVQ9cfkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUAw_kLEeG8L_O0_HQfRg" origin="_sVN6IvkLEeG8L_O0_HQfRg" image="_sVRkgvkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUn0PkLEeG8L_O0_HQfRg" origin="_sVOhMPkLEeG8L_O0_HQfRg" image="_sVSLkPkLEeG8L_O0_HQfRg"/>
-      <multiMappings xmi:id="_sVUn0fkLEeG8L_O0_HQfRg" origin="_sVOhMfkLEeG8L_O0_HQfRg" image="_sVSLkfkLEeG8L_O0_HQfRg"/>
+      <mappings xmi:id="_eA2RswM0EeuCbfdqQWBQPQ" origin="_eA2RsQM0EeuCbfdqQWBQPQ" image="_eA1qowM0EeuCbfdqQWBQPQ"/>
+      <mappings xmi:id="_eA2RuAM0EeuCbfdqQWBQPQ" origin="_eA2RtgM0EeuCbfdqQWBQPQ" image="_eA2RtAM0EeuCbfdqQWBQPQ"/>
+      <mappings xmi:id="_cKNgMAM0EeuCbfdqQWBQPQ" origin="_cKM5IAM0EeuCbfdqQWBQPQ" image="_cKM5IQM0EeuCbfdqQWBQPQ"/>
+      <multiMappings xmi:id="_eA2RsAM0EeuCbfdqQWBQPQ" origin="_1DXAgQMzEeuCbfdqQWBQPQ" image="_eA1qowM0EeuCbfdqQWBQPQ"/>
+      <multiMappings xmi:id="_eA2RsgM0EeuCbfdqQWBQPQ" origin="_1DXAgAMzEeuCbfdqQWBQPQ" image="_eA2RsQM0EeuCbfdqQWBQPQ"/>
+      <multiMappings xmi:id="_eA2RtQM0EeuCbfdqQWBQPQ" origin="_9sR-IQMzEeuCbfdqQWBQPQ" image="_eA2RtAM0EeuCbfdqQWBQPQ"/>
+      <multiMappings xmi:id="_eA2RtwM0EeuCbfdqQWBQPQ" origin="_9sR-IAMzEeuCbfdqQWBQPQ" image="_eA2RtgM0EeuCbfdqQWBQPQ"/>
     </multiRules>
   </units>
   <units xsi:type="henshin:Rule" xmi:id="_sVUn0vkLEeG8L_O0_HQfRg" name="findNode">
@@ -701,7 +693,6 @@
   <units xsi:type="henshin:SequentialUnit" xmi:id="_sVcjoPkLEeG8L_O0_HQfRg" name="sequentialUnitTest" subUnits="_sVF-UfkLEeG8L_O0_HQfRg _sUjLwfkLEeG8L_O0_HQfRg _sVdxxPkLEeG8L_O0_HQfRg"/>
   <units xsi:type="henshin:SequentialUnit" xmi:id="_sVdxxPkLEeG8L_O0_HQfRg" name="subsequence" subUnits="_sVF-UfkLEeG8L_O0_HQfRg"/>
   <units xsi:type="henshin:IndependentUnit" xmi:id="_sVe_4PkLEeG8L_O0_HQfRg" name="independentUnitTest" subUnits="_sUjLwfkLEeG8L_O0_HQfRg _sVF-UfkLEeG8L_O0_HQfRg _n4J7EJL5EeelVqCQguqkhw"/>
-  <units xsi:type="henshin:SequentialUnit" xmi:id="_sVfm8PkLEeG8L_O0_HQfRg" name="loop_amu_attributeInKernelNac" subUnits="_sVKPwPkLEeG8L_O0_HQfRg _sVKPwPkLEeG8L_O0_HQfRg"/>
   <units xsi:type="henshin:IndependentUnit" xmi:id="_sVfm9PkLEeG8L_O0_HQfRg" name="emptyIndependentUnit"/>
   <units xsi:type="henshin:SequentialUnit" xmi:id="_sVgOAPkLEeG8L_O0_HQfRg" name="emptySequentialUnit"/>
   <units xsi:type="henshin:PriorityUnit" xmi:id="_sVgOAfkLEeG8L_O0_HQfRg" name="emptyPriorityUnit"/>
@@ -749,4 +740,5 @@
     </rhs>
     <mappings xmi:id="_N5LiRyYSEeiTHaGclUiVMQ" origin="_N5LiQiYSEeiTHaGclUiVMQ" image="_N5LiRiYSEeiTHaGclUiVMQ"/>
   </units>
+  <units xsi:type="henshin:IteratedUnit" xmi:id="_qmTdsAMxEeuCbfdqQWBQPQ" name="iter_amu_attributeInKernelNac" subUnit="_sVKPwPkLEeG8L_O0_HQfRg" iterations="2" strict="true"/>
 </henshin:Module>
diff --git a/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin_diagram b/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin_diagram
new file mode 100644
index 0000000..a55acc0
--- /dev/null
+++ b/plugins/org.eclipse.emf.henshin.tests/basic/rules/unitTests.henshin_diagram
@@ -0,0 +1,1816 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<notation:Diagram xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:henshin="http://www.eclipse.org/emf/2011/Henshin" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.3/notation" xmi:id="_T7HcAAMtEeuKm91C-HHeDg" type="Henshin" measurementUnit="Pixel">
+  <children xmi:type="notation:Shape" xmi:id="_f8HIsAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8IW0AMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8IW0QMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f9Dj4AMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9Dj4gMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9Dj4wMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9EyAAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f9EyAQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f9EyAgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUjy0PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9Dj4QMtEeuCbfdqQWBQPQ" x="20" y="2"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f9EyAwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9EyBQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9EyBgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9EyBwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f9EyCAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f9EyCQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUjy0fkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9EyBAMtEeuCbfdqQWBQPQ" x="94" y="78"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f9FZEAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZEgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZEwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZFAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f9FZFQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f9FZFgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUkZ4PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9FZEQMtEeuCbfdqQWBQPQ" x="221" y="78"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f9FZFwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZGQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZGgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f9FZGwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f9FZHAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f9FZHQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUkZ4fkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f9FZGAMtEeuCbfdqQWBQPQ" x="316" y="8"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUjLwfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8HIsQMtEeuCbfdqQWBQPQ" x="6" y="80"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8KMAAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8KzEAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8KzEQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f-OokAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OokgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OokwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OolAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-OolQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-OolgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUm2J_kLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-OokQMtEeuCbfdqQWBQPQ" x="24" y="73"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f-OolwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OomQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OomgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-OomwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-OonAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-OonQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUndMPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-OomAMtEeuCbfdqQWBQPQ" x="114" y="69"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUm2IfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8KMAQMtEeuCbfdqQWBQPQ" x="30" y="380"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8KzEgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8KzFAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8KzFQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f-dSEAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSEgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSEwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSFAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-dSFQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-dSFgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUorU_kLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-dSEQMtEeuCbfdqQWBQPQ" x="29" y="32"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f-dSFwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSGQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSGgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSGwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-dSHAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-dSHQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUpSYPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-dSGAMtEeuCbfdqQWBQPQ" x="110" y="101"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f-dSHgMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSIAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSIQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-dSIgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-dSIwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-dSJAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUpSYfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-dSHwMtEeuCbfdqQWBQPQ" x="209" y="32"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUoEQ_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8KzEwMtEeuCbfdqQWBQPQ" x="525" y="159"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8KzFgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8KzGAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8LaIAMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f-r7kAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-sioAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-sioQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-siogMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-siowMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-sipAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUruoPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-r7kQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f-sipQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-sipwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-siqAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-siqQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-siqgMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-siqwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUruofkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-sipgMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUrHkfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8KzFwMtEeuCbfdqQWBQPQ" x="905" y="199"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8LaIQMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8LaIwMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8LaJAMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f-4v4AMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v4gMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v4wMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v5AMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-4v5QMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-4v5gMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUtj1PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-4v4QMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f-4v5wMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v6QMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v6gMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f-4v6wMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f-4v7AMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f-4v7QMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUuK4fkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f-4v6AMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUs8w_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8LaIgMtEeuCbfdqQWBQPQ" x="1509"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8LaJQMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8LaJwMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8LaKAMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f_GyUAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyUgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyUwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyVAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_GyVQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_GyVgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUvZBPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_GyUQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_GyVwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyWQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyWgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyWwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_GyXAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_GyXQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUwnI_kLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_GyWAMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_GyXgMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyYAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyYQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_GyYgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_GyYwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_GyZAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUwAEPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_GyXwMtEeuCbfdqQWBQPQ" x="318"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUvZAPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8LaJgMtEeuCbfdqQWBQPQ" x="1823"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MBMAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBMgMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBMwMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f_X4EAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfIAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfIQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfIgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_YfIwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_YfJAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUx1RfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_X4EQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_YfJQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfJwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfKAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfKQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_YfKgMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_YfKwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUzqcPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_YfJgMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_YfLAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfLgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfLwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_YfMAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_YfMQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_YfMgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sUycUvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_YfLQMtEeuCbfdqQWBQPQ" x="318"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUx1QfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MBMQMtEeuCbfdqQWBQPQ" x="2349"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MBNAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBNgMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBNwMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f_nvsAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWwAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWwQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWwgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_oWwwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_oWxAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU04kPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_nvsQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_oWxQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWxwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWyAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWyQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_oWygMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_oWywMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU04kfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_oWxgMtEeuCbfdqQWBQPQ" x="143"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_oWzAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWzgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oWzwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_oW0AMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_oW0QMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_oW0gMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU04kvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_oWzQMtEeuCbfdqQWBQPQ" x="273"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sU0RgvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MBNQMtEeuCbfdqQWBQPQ" x="2875"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MBOAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBOgMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MBOwMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_f_0kAAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kAgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kAwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kBAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_0kBQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_0kBgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU3U0fkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_0kAQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_0kBwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kCQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kCgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kCwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_0kDAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_0kDQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU3U0vkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_0kCAMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_f_0kDgMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kEAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kEQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_f_0kEgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_f_0kEwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_f_0kFAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU3U0_kLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f_0kDwMtEeuCbfdqQWBQPQ" x="242"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sU2tw_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MBOQMtEeuCbfdqQWBQPQ" x="3280"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MBPAMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MoQAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MoQQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gADNgAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNggMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNgwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNhAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gADNhQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gADNhgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU6YIPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gADNgQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gADNhwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNiQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNigMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNiwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gADNjAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gADNjQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU6YIfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gADNiAMtEeuCbfdqQWBQPQ" x="160"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gADNjgMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNkAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gADNkQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAD0kAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAD0kQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAD0kgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU80YfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gADNjwMtEeuCbfdqQWBQPQ" x="406"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gAD0kwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAD0lQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAD0lgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAD0lwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAD0mAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAD0mQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sU_3svkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAD0lAMtEeuCbfdqQWBQPQ" x="740"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sU5xEvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MBPQMtEeuCbfdqQWBQPQ" x="3742"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MoQgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MoRAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8MoRQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gAWIcAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIcgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIcwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIdAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAWIdQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAWIdgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVC7AfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAWIcQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gAWIdwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIeQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIegMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIewMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAWIfAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAWIfQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVC7AvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAWIeAMtEeuCbfdqQWBQPQ" x="160"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gAWIfgMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIgAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIgQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAWIggMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAWIgwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAWIhAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVDiEPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAWIfwMtEeuCbfdqQWBQPQ" x="291"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVCT8_kLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MoQwMtEeuCbfdqQWBQPQ" x="4814"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8MoRgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPUAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPUQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gAlZAAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAEAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAEQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAEgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAmAEwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAmAFAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVGlYPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAlZAQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gAmAFQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAFwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAGAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAGQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAmAGgMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAmAGwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVGlYfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAmAFgMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gAmAHAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAHgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAHwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gAmAIAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gAmAIQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gAmAIgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVHMcPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gAmAHQMtEeuCbfdqQWBQPQ" x="242"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8MoRwMtEeuCbfdqQWBQPQ" x="5239"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8NPUgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_1DXnkAMzEeuCbfdqQWBQPQ" source="defaultAction">
+      <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_1DXnkQMzEeuCbfdqQWBQPQ" key="value" value="preserve*"/>
+    </eAnnotations>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPVAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPVQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_1DgKcAMzEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_1DgKcgMzEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_1DgKcwMzEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_1DgKdAMzEeuCbfdqQWBQPQ" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_xdhs0AM0EeuCbfdqQWBQPQ" type="3002">
+            <element xmi:type="henshin:Attribute" href="unitTests.henshin#_xdhFwAM0EeuCbfdqQWBQPQ"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_xdhs0QM0EeuCbfdqQWBQPQ"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_1DgKdQMzEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_1DgKdgMzEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_1DXAgAMzEeuCbfdqQWBQPQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1DgKcQMzEeuCbfdqQWBQPQ" x="36" y="63"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_9sahAAMzEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_9sahAgMzEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_9sahAwMzEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_9sahBAMzEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_9sahBQMzEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_9sahBgMzEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_9sR-IAMzEeuCbfdqQWBQPQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9sahAQMzEeuCbfdqQWBQPQ" x="251" y="171"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_cKWDEAM0EeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_cKWDEgM0EeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_cKWDEwM0EeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_cKWDFAM0EeuCbfdqQWBQPQ" type="7002">
+          <children xmi:type="notation:Node" xmi:id="_nPUzcAM0EeuCbfdqQWBQPQ" type="3002">
+            <element xmi:type="henshin:Attribute" href="unitTests.henshin#_nPMQkAM0EeuCbfdqQWBQPQ"/>
+            <layoutConstraint xmi:type="notation:Location" xmi:id="_nPUzcQM0EeuCbfdqQWBQPQ"/>
+          </children>
+          <styles xmi:type="notation:SortingStyle" xmi:id="_cKWDFQM0EeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_cKWDFgM0EeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_cKM5IAM0EeuCbfdqQWBQPQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cKWDEQM0EeuCbfdqQWBQPQ" x="212" y="56" width="124"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVKPwPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8NPUwMtEeuCbfdqQWBQPQ" x="5387" y="258" width="410" height="353"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8NPVgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPWAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPWQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gBD6IAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhMAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhMQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhMgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gBEhMwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gBEhNAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVVO4fkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gBD6IQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gBEhNQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhNwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhOAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBEhOQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gBEhOgMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gBEhOwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVVO4vkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gBEhNgMtEeuCbfdqQWBQPQ" x="160"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVUn0vkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8NPVwMtEeuCbfdqQWBQPQ" x="6334"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8NPWgMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPXAMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8NPXQMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gBO5QAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgUAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgUQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgUgMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gBPgUwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gBPgVAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVXEFPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gBO5QQMtEeuCbfdqQWBQPQ" x="20" y="24"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gBPgVQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgVwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgWAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgWQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gBPgWgMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gBPgWwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVXrIPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gBPgVgMtEeuCbfdqQWBQPQ" x="218"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gBPgXAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgXgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgXwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gBPgYAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gBPgYQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gBPgYgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_sVXrIfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gBPgXQMtEeuCbfdqQWBQPQ" x="348"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVXEEPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8NPWwMtEeuCbfdqQWBQPQ" x="6751"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8N2YAMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8N2YgMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8N2YwMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8PEgAMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8PEhAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8PrkAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8PEgQMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8PEggMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8PrkQMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8PrkgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8PrlgMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8PrlwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8PrkwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8PrlAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8PrmAMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gB8q8AMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gB8q8gMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVCT8_kLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gB8q8QMtEeuCbfdqQWBQPQ"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8N2YQMtEeuCbfdqQWBQPQ" x="7479"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8T9AAMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8UkEAMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8UkEQMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8UkEgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8UkFgMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8UkFwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8UkEwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8UkFAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8UkGAMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8UkGQMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8UkHQMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8UkHgMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8UkGgMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8UkGwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8UkHwMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCNJoAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCNJogMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUjLwfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCNJoQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCNwtAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCNwtgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCNwtQMtEeuCbfdqQWBQPQ" x="27" y="87"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCOXwAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCOXwgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCOXwQMtEeuCbfdqQWBQPQ" x="22" y="174"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8T9AQMtEeuCbfdqQWBQPQ" x="7789"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8VyMAMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8VyMgMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8VyMwMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8VyNAMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8VyOAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8VyOQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8VyNQMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8VyNgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8VyOgMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8VyOwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8WZQAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8WZQQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8VyPAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8VyPQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8WZQgMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCcaMAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCcaMgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCcaMQMtEeuCbfdqQWBQPQ" x="27"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCdBRAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCdBRgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUjLwfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCdBRQMtEeuCbfdqQWBQPQ" y="87"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCdBSwMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCdBTQMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCdBTAMtEeuCbfdqQWBQPQ" x="18" y="174"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8VyMQMtEeuCbfdqQWBQPQ" x="8099"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8WZQwMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8WZRQMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8WZRgMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8WZRwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8WZSwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8WZTAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8WZSAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8WZSQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8WZTQMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8WZTgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8XAUAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8XAUQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8WZTwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8WZUAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8XAUgMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCkWAAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCkWAgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCkWAQMtEeuCbfdqQWBQPQ"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8WZRAMtEeuCbfdqQWBQPQ" x="8409"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8XAUwMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8XAVQMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8XAVgMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8XAVwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8XAWwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8XAXAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8XAWAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8XAWQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8XAXQMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8XAXgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8XAYgMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8XAYwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8XAXwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8XAYAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8XAZAMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8XAZQMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8XnYAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8XnYQMtEeuCbfdqQWBQPQ" key="type" value="INDEPENDENT_CHOICE"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8XAZgMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8XAZwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8XnYgMtEeuCbfdqQWBQPQ" x="50" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gConcAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gConcgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUjLwfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gConcQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCpOgAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCpOggMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCpOgQMtEeuCbfdqQWBQPQ" x="181"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gCpOiwMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gCpOjQMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gCpOjAMtEeuCbfdqQWBQPQ" x="308"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8XAVAMtEeuCbfdqQWBQPQ" x="8719"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8YOgAMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8YOggMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8YOgwMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8Y1gAMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8Y1hAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8Y1hQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8Y1gQMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8Y1ggMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVfm9PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8Y1hgMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8Y1hwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8Y1iwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8Y1jAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8Y1iAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8Y1iQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVfm9PkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8Y1jQMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVfm9PkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8YOgQMtEeuCbfdqQWBQPQ" x="9508"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8Y1kgMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8ZckQMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8ZckgMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8ZckwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8ZclwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8ZcmAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8ZclAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8ZclQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVgOAPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8ZcmQMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8ZcmgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8ZcngMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8ZcnwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8ZcmwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8ZcnAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVgOAPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8ZcoAMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVgOAPkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8ZckAMtEeuCbfdqQWBQPQ" x="9818"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8aDoAMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8aDogMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8aDowMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8aDpAMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8aDqAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8aDqQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8aDpQMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8aDpgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVgOAfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8aDqgMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8aDqwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8aDrwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8aDsAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8aDrAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8aDrQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVgOAfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8aDsQMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVgOAfkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8aDoQMtEeuCbfdqQWBQPQ" x="10128"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8aDtgMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8aDuAMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8aDuQMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8aqsAMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8aqtAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8aqtQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8aqsQMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8aqsgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVgOAvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8aqtgMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8aqtwMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8aquwMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8aqvAMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8aquAMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8aquQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVgOAvkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8aqvQMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gC8wgAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gC9XkAMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sUvZAPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gC8wgQMtEeuCbfdqQWBQPQ"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVgOAvkLEeG8L_O0_HQfRg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8aDtwMtEeuCbfdqQWBQPQ" x="10438"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8aqvgMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8bRwAMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8bRwQMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8bRwgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8bRxgMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8bRxwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8bRwwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8bRxAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8bRyAMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8bRyQMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8bRzQMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8bRzgMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8bRygMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8bRywMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8bRzwMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDBB8AMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDBB8gMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDBB8QMtEeuCbfdqQWBQPQ"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8aqvwMtEeuCbfdqQWBQPQ" x="10794"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8bR1AMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8b40AMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8b40QMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gDEFQAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFQgMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFQwMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFRAMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gDEFRQMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gDEFRgMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_cK3JUJMAEeedrNTWThGyHA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDEFQQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDEFRwMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFSQMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFSgMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDEFSwMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gDEFTAMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gDEFTQMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_cYDQwJMAEeedrNTWThGyHA"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDEFSAMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8bR1QMtEeuCbfdqQWBQPQ" x="11118"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8b40gMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8b41AMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8b41QMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8b41gMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8b42gMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8b42wMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8b41wMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8b42AMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8b43AMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8b43QMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8b44QMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8b44gMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8b43gMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8b43wMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8b44wMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDNPMAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDNPMgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDNPMQMtEeuCbfdqQWBQPQ" x="14"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDNPNwMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDNPOQMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDNPOAMtEeuCbfdqQWBQPQ" x="19" y="87"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDN2QAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDN2QgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_N5LiQCYSEeiTHaGclUiVMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDN2QQMtEeuCbfdqQWBQPQ" y="174"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8b40wMtEeuCbfdqQWBQPQ" x="11428"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8b45AMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8cf4QMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8cf4gMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8cf4wMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8cf5wMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8cf6AMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8cf5AMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8cf5QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8cf6QMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8cf6gMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8cf7gMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8cf7wMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8cf6wMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8cf7AMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8cf8AMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDXAMAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDXnQAMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDXAMQMtEeuCbfdqQWBQPQ" x="5"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDXnRQMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDXnRwMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDXnRgMtEeuCbfdqQWBQPQ" y="87"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8cf4AMtEeuCbfdqQWBQPQ" x="11804"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8cf8QMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8cf8wMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8cf9AMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8dG8AMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8dG9AMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8dG9QMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8dG8QMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8dG8gMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8dG9gMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8dG9wMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8dG-wMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8dG_AMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8dG-AMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8dG-QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8dG_QMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDdt4AMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDeU8AMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDdt4QMtEeuCbfdqQWBQPQ" x="71"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDeU9QMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDeU9wMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDeU9gMtEeuCbfdqQWBQPQ" y="87"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8cf8gMtEeuCbfdqQWBQPQ" x="12117"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8dG_gMtEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8dHAAMtEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8dHAQMtEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_f8dHAgMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8dHBgMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8dHBwMtEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8dHAwMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8dHBAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8dHCAMtEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_f8dHCQMtEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_f8duAAMtEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_f8duAQMtEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_f8dHCgMtEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_f8dHCwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_f8duAgMtEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDlpsAMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDlpsgMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVF-UfkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDlpsQMtEeuCbfdqQWBQPQ" x="66"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDmQyQMtEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDmQywMtEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_n4J7EJL5EeelVqCQguqkhw"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDmQygMtEeuCbfdqQWBQPQ" x="127" y="87"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8dG_wMtEeuCbfdqQWBQPQ" x="12427"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_f8duAwMtEeuCbfdqQWBQPQ" type="2001" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8duBQMtEeuCbfdqQWBQPQ" type="5001"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f8duBgMtEeuCbfdqQWBQPQ" type="7001">
+      <children xmi:type="notation:Shape" xmi:id="_gDs-cAMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtlgAMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtlgQMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtlggMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gDtlgwMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gDtlhAMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_N5LiQiYSEeiTHaGclUiVMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDs-cQMtEeuCbfdqQWBQPQ"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_gDtlhQMtEeuCbfdqQWBQPQ" type="3001" fontName="Segoe UI">
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtlhwMtEeuCbfdqQWBQPQ" type="5002"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtliAMtEeuCbfdqQWBQPQ" type="5003"/>
+        <children xmi:type="notation:DecorationNode" xmi:id="_gDtliQMtEeuCbfdqQWBQPQ" type="7002">
+          <styles xmi:type="notation:SortingStyle" xmi:id="_gDtligMtEeuCbfdqQWBQPQ"/>
+          <styles xmi:type="notation:FilteringStyle" xmi:id="_gDtliwMtEeuCbfdqQWBQPQ"/>
+        </children>
+        <element xmi:type="henshin:Node" href="unitTests.henshin#_N5LiQyYSEeiTHaGclUiVMQ"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gDtlhgMtEeuCbfdqQWBQPQ" x="121"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:Rule" href="unitTests.henshin#_N5LiQCYSEeiTHaGclUiVMQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_f8duBAMtEeuCbfdqQWBQPQ" x="12737"/>
+  </children>
+  <children xmi:type="notation:Shape" xmi:id="_qmec0AMxEeuCbfdqQWBQPQ" type="2002" fontName="Segoe UI" italic="true" lineColor="0">
+    <children xmi:type="notation:DecorationNode" xmi:id="_qmec0gMxEeuCbfdqQWBQPQ" type="5004"/>
+    <children xmi:type="notation:DecorationNode" xmi:id="_qmec0wMxEeuCbfdqQWBQPQ" type="7003">
+      <children xmi:type="notation:Node" xmi:id="_qmec1AMxEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qmec2AMxEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmec2QMxEeuCbfdqQWBQPQ" key="type" value="UNIT_BEGIN"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_qmec1QMxEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_qmec1gMxEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_qmec2gMxEeuCbfdqQWBQPQ" x="15" y="15"/>
+      </children>
+      <children xmi:type="notation:Node" xmi:id="_qmec2wMxEeuCbfdqQWBQPQ" type="3004">
+        <eAnnotations xmi:type="ecore:EAnnotation" xmi:id="_qmec3wMxEeuCbfdqQWBQPQ" source="symbol">
+          <details xmi:type="ecore:EStringToStringMapEntry" xmi:id="_qmec4AMxEeuCbfdqQWBQPQ" key="type" value="UNIT_END"/>
+        </eAnnotations>
+        <styles xmi:type="notation:DescriptionStyle" xmi:id="_qmec3AMxEeuCbfdqQWBQPQ"/>
+        <styles xmi:type="notation:FontStyle" xmi:id="_qmec3QMxEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+        <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+        <layoutConstraint xmi:type="notation:Location" xmi:id="_qmec4QMxEeuCbfdqQWBQPQ" x="205" y="15"/>
+      </children>
+      <children xmi:type="notation:Shape" xmi:id="_9tX1MAMxEeuCbfdqQWBQPQ" type="3003" fontName="Segoe UI" italic="true" lineColor="0">
+        <children xmi:type="notation:DecorationNode" xmi:id="_9tX1MgMxEeuCbfdqQWBQPQ" type="5005"/>
+        <element xmi:type="henshin:Rule" href="unitTests.henshin#_sVKPwPkLEeG8L_O0_HQfRg"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_9tX1MQMxEeuCbfdqQWBQPQ" x="49" y="82"/>
+      </children>
+    </children>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+    <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qmec0QMxEeuCbfdqQWBQPQ" x="4956" y="345"/>
+  </children>
+  <styles xmi:type="notation:DiagramStyle" xmi:id="_T7HcAQMtEeuKm91C-HHeDg"/>
+  <element xmi:type="henshin:Module" href="unitTests.henshin#_sUjLwPkLEeG8L_O0_HQfRg"/>
+  <edges xmi:type="notation:Edge" xmi:id="_f8XnYwMtEeuCbfdqQWBQPQ" type="4002" source="_f8XAVwMtEeuCbfdqQWBQPQ" target="_f8XAZQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_f8XnZAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f8XnZQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8XnZgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_f8Y1jgMtEeuCbfdqQWBQPQ" type="4002" source="_f8Y1gAMtEeuCbfdqQWBQPQ" target="_f8Y1hwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_f8Y1jwMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f8Y1kAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVfm9PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8Y1kQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_f8ZcoQMtEeuCbfdqQWBQPQ" type="4002" source="_f8ZckwMtEeuCbfdqQWBQPQ" target="_f8ZcmgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_f8ZcogMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f8ZcowMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVgOAPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8ZcpAMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_f8aDsgMtEeuCbfdqQWBQPQ" type="4002" source="_f8aDpAMtEeuCbfdqQWBQPQ" target="_f8aDqwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_f8aDswMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f8aDtAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVgOAfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f8aDtQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-Ih8AMtEeuCbfdqQWBQPQ" type="4001" source="_f9FZEAMtEeuCbfdqQWBQPQ" target="_f9FZFwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-JJAAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-JJAQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-JJAgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-JJAwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-Ih8QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUkZ4vkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-Ih8gMtEeuCbfdqQWBQPQ" points="[9, 21, 0, 11]$[0, -11, -9, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-JwEAMtEeuCbfdqQWBQPQ" type="4001" source="_f9Dj4AMtEeuCbfdqQWBQPQ" target="_f9EyAwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-JwEwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-JwFAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-JwFQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-JwFgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-JwEQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUlA8PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-JwEgMtEeuCbfdqQWBQPQ" points="[23, 21, 12, 11]$[-12, -11, -23, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-KXIAMtEeuCbfdqQWBQPQ" type="4001" source="_f9Dj4AMtEeuCbfdqQWBQPQ" target="_f9FZEAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-K-MAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-K-MQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-K-MgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-K-MwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-KXIQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUlA8fkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-KXIgMtEeuCbfdqQWBQPQ" points="[16, 21, 1, 1]$[-1, -1, -16, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-LlQAMtEeuCbfdqQWBQPQ" type="4001" source="_f9Dj4AMtEeuCbfdqQWBQPQ" target="_f9FZFwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-LlQwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-LlRAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-LlRQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-LlRgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-LlQQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUlA8vkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-LlQgMtEeuCbfdqQWBQPQ" points="[17, 21, -7, -9]$[7, 9, -17, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-MMUAMtEeuCbfdqQWBQPQ" type="4001" source="_f9FZEAMtEeuCbfdqQWBQPQ" target="_f9EyAwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-MMUwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-MMVAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-MMVQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-MMVgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-MMUQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUlA8_kLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-MMUgMtEeuCbfdqQWBQPQ" points="[-4, -21, 0, -11]$[0, 11, 4, 21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-MzYAMtEeuCbfdqQWBQPQ" type="4001" source="_f9EyAwMtEeuCbfdqQWBQPQ" target="_f9FZEAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-MzYwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-MzZAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-MzZQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-MzZgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-MzYQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUloAPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-MzYgMtEeuCbfdqQWBQPQ" points="[4, 21, 0, 11]$[0, -11, -4, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-qGYAMtEeuCbfdqQWBQPQ" type="4001" source="_f-dSEAMtEeuCbfdqQWBQPQ" target="_f-dSFwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qGYwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qGZAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qGZQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qGZgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-qGYQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUpSYvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-qGYgMtEeuCbfdqQWBQPQ" points="[21, 21, 11, 11]$[-11, -11, -21, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-qGZwMtEeuCbfdqQWBQPQ" type="4001" source="_f-dSEAMtEeuCbfdqQWBQPQ" target="_f-dSHgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qGagMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qGawMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qtcAMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qtcQMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-qGaAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUp5cPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-qGaQMtEeuCbfdqQWBQPQ" points="[15, 21, 1, 1]$[-1, -1, -15, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-qtcgMtEeuCbfdqQWBQPQ" type="4001" source="_f-dSFwMtEeuCbfdqQWBQPQ" target="_f-dSHgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qtdQMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qtdgMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-qtdwMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-qteAMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-qtcwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUp5cfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-qtdAMtEeuCbfdqQWBQPQ" points="[4, 21, 0, 11]$[0, -11, -4, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f-26sAMtEeuCbfdqQWBQPQ" type="4001" source="_f-r7kAMtEeuCbfdqQWBQPQ" target="_f-sipQMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-3hwAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-3hwQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f-3hwgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f-3hwwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f-26sQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUruovkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f-26sgMtEeuCbfdqQWBQPQ" points="[31, 10, -8, -3]$[-20, -8, -59, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_E9IAMtEeuCbfdqQWBQPQ" type="4001" source="_f-4v4AMtEeuCbfdqQWBQPQ" target="_f-4v5wMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_FkMAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_FkMQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_FkMgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_FkMwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_E9IQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUux8PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_E9IgMtEeuCbfdqQWBQPQ" points="[31, 16, -10, -5]$[-20, -11, -61, -32]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_Vb0AMtEeuCbfdqQWBQPQ" type="4001" source="_f_GyUAMtEeuCbfdqQWBQPQ" target="_f_GyVwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_WC4AMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_WC4QMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_WC4gMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_WC4wMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_Vb0QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUxOMvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_Vb0gMtEeuCbfdqQWBQPQ" points="[31, 8, -17, -5]$[-20, -6, -68, -19]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_Wp8AMtEeuCbfdqQWBQPQ" type="4001" source="_f_GyUAMtEeuCbfdqQWBQPQ" target="_f_GyXgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_Wp8wMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_Wp9AMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_Wp9QMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_Wp9gMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_Wp8QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUwnIPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_Wp8gMtEeuCbfdqQWBQPQ" points="[31, 12, -27, -11]$[-2, -1, -60, -24]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_lTcAMtEeuCbfdqQWBQPQ" type="4001" source="_f_X4EAMtEeuCbfdqQWBQPQ" target="_f_YfJQMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_l6ggMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_l6gwMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_l6hAMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_l6hQMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_l6gAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU0RgPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_l6gQMtEeuCbfdqQWBQPQ" points="[31, 8, -17, -5]$[-20, -6, -68, -19]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_l6hgMtEeuCbfdqQWBQPQ" type="4001" source="_f_X4EAMtEeuCbfdqQWBQPQ" target="_f_YfLAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_mhkAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_mhkQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_mhkgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_mhkwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_l6hwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sUzDYfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_l6iAMtEeuCbfdqQWBQPQ" points="[31, 12, -27, -11]$[-2, -1, -60, -24]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_yu0AMtEeuCbfdqQWBQPQ" type="4001" source="_f_oWxQMtEeuCbfdqQWBQPQ" target="_f_oWzAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_yu0wMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_yu1AMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_yu1QMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_yu1gMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_yu0QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU04k_kLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_yu0gMtEeuCbfdqQWBQPQ" points="[5, 21, 0, 11]$[0, -11, -5, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_f_yu1wMtEeuCbfdqQWBQPQ" type="4001" source="_f_nvsAMtEeuCbfdqQWBQPQ" target="_f_oWzAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_zV4AMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_zV4QMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_f_zV4gMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_f_zV4wMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_f_yu2AMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU2GsvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_f_yu2QMtEeuCbfdqQWBQPQ" points="[9, 21, 0, 1]$[0, -1, -9, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAAxQAMtEeuCbfdqQWBQPQ" type="4001" source="_f_0kAAMtEeuCbfdqQWBQPQ" target="_f_0kBwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAAxQwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAAxRAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAAxRQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAAxRgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAAxQQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU374fkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAAxQgMtEeuCbfdqQWBQPQ" points="[21, 21, 11, 11]$[-11, -11, -21, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gABYUAMtEeuCbfdqQWBQPQ" type="4001" source="_f_0kAAMtEeuCbfdqQWBQPQ" target="_f_0kDgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gABYUwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gABYVAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gABYVQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gABYVgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gABYUQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU374vkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gABYUgMtEeuCbfdqQWBQPQ" points="[31, 11, -33, -12]$[-3, -1, -67, -24]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gABYVwMtEeuCbfdqQWBQPQ" type="4001" source="_f_0kBwMtEeuCbfdqQWBQPQ" target="_f_0kDgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAB_YAMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAB_YQMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAB_YgMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAB_YwMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gABYWAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU4i8PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gABYWQMtEeuCbfdqQWBQPQ" points="[31, 7, -23, -6]$[-20, -6, -74, -19]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gATFIAMtEeuCbfdqQWBQPQ" type="4001" source="_gADNgAMtEeuCbfdqQWBQPQ" target="_gADNhwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATFIwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATFJAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATFJQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATFJgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gATFIQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU6YI_kLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gATFIgMtEeuCbfdqQWBQPQ" points="[50, 12, -3, -1]$[-40, -11, -93, -24]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gATsMAMtEeuCbfdqQWBQPQ" type="4001" source="_gADNgAMtEeuCbfdqQWBQPQ" target="_gADNjgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATsMwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATsNAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATsNQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATsNgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gATsMQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU9bcPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gATsMgMtEeuCbfdqQWBQPQ" points="[50, 10, -57, -12]$[-5, -1, -112, -23]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gATsNwMtEeuCbfdqQWBQPQ" type="4001" source="_gADNhwMtEeuCbfdqQWBQPQ" target="_gADNjgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATsOgMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATsOwMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gATsPAMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gATsPQMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gATsOAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU9bcfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gATsOQMtEeuCbfdqQWBQPQ" points="[93, 9, 39, 0]$[-83, 0, -137, -9]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAUTQAMtEeuCbfdqQWBQPQ" type="4001" source="_gADNjgMtEeuCbfdqQWBQPQ" target="_gADNhwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAUTQwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAUTRAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAUTRQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAUTRgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAUTQQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sU9bcvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAUTQgMtEeuCbfdqQWBQPQ" points="[-137, -9, -83, 0]$[39, 0, 93, 9]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAUTRwMtEeuCbfdqQWBQPQ" type="4001" source="_gADNgAMtEeuCbfdqQWBQPQ" target="_gAD0kwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAUTSgMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAUTSwMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAU6UAMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAU6UQMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAUTSAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVAewfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAUTSQMtEeuCbfdqQWBQPQ" points="[50, 14, -60, -18]$[30, 9, -80, -23]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAU6UgMtEeuCbfdqQWBQPQ" type="4001" source="_gADNhwMtEeuCbfdqQWBQPQ" target="_gAD0kwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAU6VQMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAU6VgMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAU6VwMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAU6WAMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAU6UwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVAewvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAU6VAMtEeuCbfdqQWBQPQ" points="[74, 25, 17, 6]$[-14, -4, -71, -23]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAi8wAMtEeuCbfdqQWBQPQ" type="4001" source="_gAWIcAMtEeuCbfdqQWBQPQ" target="_gAWIdwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAjj0AMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAjj0QMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAjj0gMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAjj0wMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAi8wQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVDiEfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAi8wgMtEeuCbfdqQWBQPQ" points="[-5, 21, 0, 11]$[0, -11, 5, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAjj1AMtEeuCbfdqQWBQPQ" type="4001" source="_gAWIcAMtEeuCbfdqQWBQPQ" target="_gAWIfgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAjj1wMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAjj2AMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAjj2QMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAjj2gMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAjj1QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVEJIPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAjj1gMtEeuCbfdqQWBQPQ" points="[1, 21, 0, 1]$[0, -1, -1, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAkK4AMtEeuCbfdqQWBQPQ" type="4001" source="_gAWIdwMtEeuCbfdqQWBQPQ" target="_gAWIfgMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAkK4wMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAkK5AMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAkK5QMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAkK5gMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAkK4QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVEJIfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAkK4gMtEeuCbfdqQWBQPQ" points="[6, 21, 0, 11]$[0, -11, -6, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAkK5wMtEeuCbfdqQWBQPQ" type="4001" source="_gAWIfgMtEeuCbfdqQWBQPQ" target="_gAWIdwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAkx8AMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAkx8QMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAkx8gMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAkx8wMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAkK6AMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVEwMPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAkK6QMtEeuCbfdqQWBQPQ" points="[-6, -21, 0, -11]$[0, 11, 6, 21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAw_MAMtEeuCbfdqQWBQPQ" type="4001" source="_gAlZAAMtEeuCbfdqQWBQPQ" target="_gAmAFQMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAw_MwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAw_NAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAw_NQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAw_NgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAw_MQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVHMcfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAw_MgMtEeuCbfdqQWBQPQ" points="[21, 21, 11, 11]$[-11, -11, -21, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAxmQAMtEeuCbfdqQWBQPQ" type="4001" source="_gAlZAAMtEeuCbfdqQWBQPQ" target="_gAmAHAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAxmQwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAxmRAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAxmRQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAxmRgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAxmQQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVHzgPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAxmQgMtEeuCbfdqQWBQPQ" points="[15, 21, 1, 1]$[-1, -1, -15, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gAyNUAMtEeuCbfdqQWBQPQ" type="4001" source="_gAmAFQMtEeuCbfdqQWBQPQ" target="_gAmAHAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAyNUwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAyNVAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gAyNVQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gAyNVgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gAyNUQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVHzgfkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gAyNUgMtEeuCbfdqQWBQPQ" points="[4, 21, 0, 11]$[0, -11, -4, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gBNrIAMtEeuCbfdqQWBQPQ" type="4001" source="_gBD6IAMtEeuCbfdqQWBQPQ" target="_gBEhNQMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gBNrIwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gBNrJAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gBNrJQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gBNrJgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gBNrIQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVV18PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gBNrIgMtEeuCbfdqQWBQPQ" points="[50, 12, -3, -1]$[-40, -11, -93, -24]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gBf_AAMtEeuCbfdqQWBQPQ" type="4001" source="_gBPgVQMtEeuCbfdqQWBQPQ" target="_gBPgXAMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gBf_AwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gBf_BAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gBf_BQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gBf_BgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gBf_AQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_sVXrIvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gBf_AgMtEeuCbfdqQWBQPQ" points="[35, 5, -94, -16]$[-25, -5, -154, -26]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gB8q8wMtEeuCbfdqQWBQPQ" type="4002" source="_f8PEgAMtEeuCbfdqQWBQPQ" target="_gB8q8AMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gB8q9AMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gB8q9QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gB8q9gMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gB9SAAMtEeuCbfdqQWBQPQ" type="4002" source="_gB8q8AMtEeuCbfdqQWBQPQ" target="_f8PrkgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gB9SAQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gB9SAgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gB9SAwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gB9SBAMtEeuCbfdqQWBQPQ" type="4002" source="_gB8q8AMtEeuCbfdqQWBQPQ" target="_gB8q8AMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gB9SBQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gB9SBgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:LoopUnit" href="unitTests.henshin#_sVaucvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gB9SBwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCNwsAMtEeuCbfdqQWBQPQ" type="4002" source="_f8UkEgMtEeuCbfdqQWBQPQ" target="_gCNJoAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCNwsQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCNwsgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCNwswMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCNwtwMtEeuCbfdqQWBQPQ" type="4002" source="_gCNJoAMtEeuCbfdqQWBQPQ" target="_gCNwtAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCNwuAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCNwuQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCNwugMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCZW4AMtEeuCbfdqQWBQPQ" id="(0.49586776859504134,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCZW4QMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCOXwwMtEeuCbfdqQWBQPQ" type="4002" source="_gCOXwAMtEeuCbfdqQWBQPQ" target="_f8UkGQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCOXxAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCOXxQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCOXxgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCOXxwMtEeuCbfdqQWBQPQ" type="4002" source="_gCNwtAMtEeuCbfdqQWBQPQ" target="_gCOXwAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCOXyAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCOXyQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:PriorityUnit" href="unitTests.henshin#_sVb8kPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCOXygMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCYv0AMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCYv0QMtEeuCbfdqQWBQPQ" id="(0.4935064935064935,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCdBQAMtEeuCbfdqQWBQPQ" type="4002" source="_f8VyNAMtEeuCbfdqQWBQPQ" target="_gCcaMAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCdBQQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCdBQgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCdBQwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCdBRwMtEeuCbfdqQWBQPQ" type="4002" source="_gCcaMAMtEeuCbfdqQWBQPQ" target="_gCdBRAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCdBSAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCdBSQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCdBSgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCjH4AMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCjH4QMtEeuCbfdqQWBQPQ" id="(0.49586776859504134,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCdBTgMtEeuCbfdqQWBQPQ" type="4002" source="_gCdBSwMtEeuCbfdqQWBQPQ" target="_f8VyOwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCdBTwMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCdBUAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCdBUQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCdoUAMtEeuCbfdqQWBQPQ" type="4002" source="_gCdBRAMtEeuCbfdqQWBQPQ" target="_gCdBSwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCdoUQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCdoUgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVcjoPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCdoUwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCjH4gMtEeuCbfdqQWBQPQ" id="(0.49586776859504134,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gCjH4wMtEeuCbfdqQWBQPQ" id="(0.49411764705882355,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCkWAwMtEeuCbfdqQWBQPQ" type="4002" source="_f8WZRwMtEeuCbfdqQWBQPQ" target="_gCkWAAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCkWBAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCkWBQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCkWBgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCkWBwMtEeuCbfdqQWBQPQ" type="4002" source="_gCkWAAMtEeuCbfdqQWBQPQ" target="_f8WZTgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCkWCAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCkWCQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_sVdxxPkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCkWCgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gConcwMtEeuCbfdqQWBQPQ" type="4002" source="_f8XAZQMtEeuCbfdqQWBQPQ" target="_gConcAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCondAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCondQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCondgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCondwMtEeuCbfdqQWBQPQ" type="4002" source="_gConcAMtEeuCbfdqQWBQPQ" target="_f8XAXgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gConeAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gConeQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gConegMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCpOgwMtEeuCbfdqQWBQPQ" type="4002" source="_f8XAZQMtEeuCbfdqQWBQPQ" target="_gCpOgAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCpOhAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCpOhQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpOhgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCpOhwMtEeuCbfdqQWBQPQ" type="4002" source="_gCpOgAMtEeuCbfdqQWBQPQ" target="_f8XAXgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCpOiAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCpOiQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpOigMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCpOjgMtEeuCbfdqQWBQPQ" type="4002" source="_f8XAZQMtEeuCbfdqQWBQPQ" target="_gCpOiwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCpOjwMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCpOkAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpOkQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gCpOkgMtEeuCbfdqQWBQPQ" type="4002" source="_gCpOiwMtEeuCbfdqQWBQPQ" target="_f8XAXgMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gCpOkwMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gCpOlAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVe_4PkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gCpOlQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gC9XkQMtEeuCbfdqQWBQPQ" type="4002" source="_f8aqsAMtEeuCbfdqQWBQPQ" target="_gC8wgAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gC9XkgMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gC9XkwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVgOAvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gC9XlAMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gC9XlQMtEeuCbfdqQWBQPQ" type="4002" source="_gC8wgAMtEeuCbfdqQWBQPQ" target="_f8aqtwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gC9XlgMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gC9XlwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IndependentUnit" href="unitTests.henshin#_sVgOAvkLEeG8L_O0_HQfRg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gC9XmAMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDBB8wMtEeuCbfdqQWBQPQ" type="4002" source="_f8bRwgMtEeuCbfdqQWBQPQ" target="_gDBB8AMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDBB9AMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDBB9QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDBB9gMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDBB9wMtEeuCbfdqQWBQPQ" type="4002" source="_gDBB8AMtEeuCbfdqQWBQPQ" target="_f8bRyQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDBB-AMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDBB-QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDBB-gMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDBB-wMtEeuCbfdqQWBQPQ" type="4002" source="_gDBB8AMtEeuCbfdqQWBQPQ" target="_gDBB8AMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDBB_AMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDBB_QMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_RcgNYJL5EeelVqCQguqkhw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDBB_gMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gDLaAAMtEeuCbfdqQWBQPQ" type="4001" source="_gDEFQAMtEeuCbfdqQWBQPQ" target="_gDEFRwMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gDLaAwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gDLaBAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gDMBEAMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gDMBEQMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDLaAQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_c0n4AJMAEeedrNTWThGyHA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDLaAgMtEeuCbfdqQWBQPQ" points="[4, 21, 0, 11]$[0, -11, -4, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDNPMwMtEeuCbfdqQWBQPQ" type="4002" source="_f8b41gMtEeuCbfdqQWBQPQ" target="_gDNPMAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDNPNAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDNPNQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDNPNgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDNPOgMtEeuCbfdqQWBQPQ" type="4002" source="_gDNPMAMtEeuCbfdqQWBQPQ" target="_gDNPNwMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDNPOwMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDNPPAMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDNPPQMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDTV0AMtEeuCbfdqQWBQPQ" id="(0.4935064935064935,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDTV0QMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDN2QwMtEeuCbfdqQWBQPQ" type="4002" source="_gDN2QAMtEeuCbfdqQWBQPQ" target="_f8b43QMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDN2RAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDN2RQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDN2RgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDN2RwMtEeuCbfdqQWBQPQ" type="4002" source="_gDNPNwMtEeuCbfdqQWBQPQ" target="_gDN2QAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDN2SAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDN2SQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:SequentialUnit" href="unitTests.henshin#_YM-ZoJMPEeefGurO37nQTA"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDN2SgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDTV0gMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDTV0wMtEeuCbfdqQWBQPQ" id="(0.49523809523809526,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDXnQQMtEeuCbfdqQWBQPQ" type="4002" source="_f8cf4wMtEeuCbfdqQWBQPQ" target="_gDXAMAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDXnQgMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDXnQwMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDXnRAMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDXnSAMtEeuCbfdqQWBQPQ" type="4002" source="_gDXAMAMtEeuCbfdqQWBQPQ" target="_gDXnRQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDXnSQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDXnSgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDXnSwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, -60]$[0, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDdG0AMtEeuCbfdqQWBQPQ" id="(0.4925373134328358,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDdG0QMtEeuCbfdqQWBQPQ" id="(0.4935064935064935,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDXnTAMtEeuCbfdqQWBQPQ" type="4002" source="_gDXnRQMtEeuCbfdqQWBQPQ" target="_f8cf6gMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDXnTQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDXnTgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_bJ2jwCFUEei1C_mtIHo0kg"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDXnTwMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDeU8QMtEeuCbfdqQWBQPQ" type="4002" source="_f8dG8AMtEeuCbfdqQWBQPQ" target="_gDdt4AMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDeU8gMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDeU8wMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDeU9AMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDeU-AMtEeuCbfdqQWBQPQ" type="4002" source="_gDdt4AMtEeuCbfdqQWBQPQ" target="_gDeU9QMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDeU-QMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDeU-gMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDeU-wMtEeuCbfdqQWBQPQ" points="[0, 0, 55, -60]$[0, 30, 55, -30]$[-55, 30, 0, -30]$[-55, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDj0gAMtEeuCbfdqQWBQPQ" id="(0.3283582089552239,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDkbkAMtEeuCbfdqQWBQPQ" id="(0.4935064935064935,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDeU_AMtEeuCbfdqQWBQPQ" type="4002" source="_gDeU9QMtEeuCbfdqQWBQPQ" target="_f8dG9wMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDeU_QMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDeU_gMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_WyITUCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDeU_wMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDlpswMtEeuCbfdqQWBQPQ" type="4002" source="_f8dHAgMtEeuCbfdqQWBQPQ" target="_gDlpsAMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDlptAMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDlptQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDlptgMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDmQzAMtEeuCbfdqQWBQPQ" type="4002" source="_gDlpsAMtEeuCbfdqQWBQPQ" target="_gDmQyQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDmQzQMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDmQzgMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDmQzwMtEeuCbfdqQWBQPQ" points="[0, 0, -55, -60]$[0, 30, -55, -30]$[55, 30, 0, -30]$[55, 60, 0, 0]"/>
+    <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDsXYgMtEeuCbfdqQWBQPQ" id="(0.6567164179104478,1.0)"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_gDsXYwMtEeuCbfdqQWBQPQ" id="(0.4935064935064935,0.0)"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_gDm30AMtEeuCbfdqQWBQPQ" type="4002" source="_gDmQyQMtEeuCbfdqQWBQPQ" target="_f8dHCQMtEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_gDm30QMtEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gDm30gMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:ConditionalUnit" href="unitTests.henshin#_ZY9ysCIJEeiK3Yr7wzMkUw"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gDm30wMtEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_gD06QAMtEeuCbfdqQWBQPQ" type="4001" source="_gDs-cAMtEeuCbfdqQWBQPQ" target="_gDtlhQMtEeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_gD06QwMtEeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gD06RAMtEeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_gD06RQMtEeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_gD06RgMtEeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_gD06QQMtEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_N5LiRCYSEeiTHaGclUiVMQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gD06QgMtEeuCbfdqQWBQPQ" points="[4, 21, 0, 11]$[0, -11, -4, -21]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_9tYcQAMxEeuCbfdqQWBQPQ" type="4002" source="_qmec1AMxEeuCbfdqQWBQPQ" target="_9tX1MAMxEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_9tYcQQMxEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_9tYcQgMxEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9tYcQwMxEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_9tYcRAMxEeuCbfdqQWBQPQ" type="4002" source="_9tX1MAMxEeuCbfdqQWBQPQ" target="_qmec2wMxEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_9tYcRQMxEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_9tYcRgMxEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9tYcRwMxEeuCbfdqQWBQPQ" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+  </edges>
+  <edges xmi:type="notation:Edge" xmi:id="_9tYcSAMxEeuCbfdqQWBQPQ" type="4002" source="_9tX1MAMxEeuCbfdqQWBQPQ" target="_9tX1MAMxEeuCbfdqQWBQPQ">
+    <styles xmi:type="notation:RoutingStyle" xmi:id="_9tYcSQMxEeuCbfdqQWBQPQ" routing="Rectilinear"/>
+    <styles xmi:type="notation:FontStyle" xmi:id="_9tYcSgMxEeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:IteratedUnit" href="unitTests.henshin#_qmTdsAMxEeuCbfdqQWBQPQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_9tYcSwMxEeuCbfdqQWBQPQ" points="[93, 14, 93, 14]$[93, 58, 93, 58]$[58, 58, 58, 58]$[58, 14, 58, 14]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_ffZTUAM0EeuCbfdqQWBQPQ" type="4001" source="_9sahAAMzEeuCbfdqQWBQPQ" target="_cKWDEAM0EeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_ffZTUwM0EeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ffZTVAM0EeuCbfdqQWBQPQ" x="13" y="58"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_ffZTVQM0EeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_ffZTVgM0EeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_ffZTUQM0EeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_ffYFMAM0EeuCbfdqQWBQPQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ffZTUgM0EeuCbfdqQWBQPQ" points="[-7, -26, 4, 138]$[-7, -193, 4, -29]"/>
+  </edges>
+  <edges xmi:type="notation:Connector" xmi:id="_lIZjMAM0EeuCbfdqQWBQPQ" type="4001" source="_1DgKcAMzEeuCbfdqQWBQPQ" target="_cKWDEAM0EeuCbfdqQWBQPQ">
+    <children xmi:type="notation:DecorationNode" xmi:id="_lIZjMwM0EeuCbfdqQWBQPQ" type="6001">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_lIZjNAM0EeuCbfdqQWBQPQ" y="40"/>
+    </children>
+    <children xmi:type="notation:DecorationNode" xmi:id="_lIZjNQM0EeuCbfdqQWBQPQ" type="6002">
+      <layoutConstraint xmi:type="notation:Location" xmi:id="_lIZjNgM0EeuCbfdqQWBQPQ" y="60"/>
+    </children>
+    <styles xmi:type="notation:FontStyle" xmi:id="_lIZjMQM0EeuCbfdqQWBQPQ" fontName="Segoe UI"/>
+    <element xmi:type="henshin:Edge" href="unitTests.henshin#_lIY8IAM0EeuCbfdqQWBQPQ"/>
+    <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lIZjMgM0EeuCbfdqQWBQPQ" points="[40, -3, -190, 17]$[230, -35, 0, -15]"/>
+    <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lIaKQAM0EeuCbfdqQWBQPQ" id="(0.3225806451612903,0.2222222222222222)"/>
+  </edges>
+</notation:Diagram>
diff --git a/plugins/org.eclipse.emf.henshin.tests/model/testmodel.ecore b/plugins/org.eclipse.emf.henshin.tests/model/testmodel.ecore
index caf7b23..1d94cfd 100644
--- a/plugins/org.eclipse.emf.henshin.tests/model/testmodel.ecore
+++ b/plugins/org.eclipse.emf.henshin.tests/model/testmodel.ecore
@@ -23,4 +23,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="intlist" upperBound="-1"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SpecialVal" eSuperTypes="#//Val">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="derivedvl" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        transient="true" derived="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsetablevl" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        defaultValueLiteral="42" unsettable="true"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unchangeablevl" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
+        changeable="false" defaultValueLiteral="42"/>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsetableunchangeablevl"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" changeable="false"
+        defaultValueLiteral="42" unsettable="true"/>
+  </eClassifiers>
 </ecore:EPackage>
diff --git a/plugins/org.eclipse.emf.henshin.tests/model/testmodel.genmodel b/plugins/org.eclipse.emf.henshin.tests/model/testmodel.genmodel
index 6639059..eda4bdb 100644
--- a/plugins/org.eclipse.emf.henshin.tests/model/testmodel.genmodel
+++ b/plugins/org.eclipse.emf.henshin.tests/model/testmodel.genmodel
@@ -21,5 +21,11 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//Val/valname"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//Val/intlist"/>
     </genClasses>
+    <genClasses ecoreClass="testmodel.ecore#//SpecialVal">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//SpecialVal/derivedvl"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//SpecialVal/unsetablevl"/>
+      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//SpecialVal/unchangeablevl"/>
+      <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute testmodel.ecore#//SpecialVal/unsetableunchangeablevl"/>
+    </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/AttributeRestrictionsTest.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/AttributeRestrictionsTest.java
new file mode 100644
index 0000000..4f94c71
--- /dev/null
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/AttributeRestrictionsTest.java
@@ -0,0 +1,64 @@
+package org.eclipse.emf.henshin.tests.basic;
+
+import static org.junit.Assert.assertEquals;
+
+import org.eclipse.emf.henshin.tests.framework.HenshinTest;
+import org.eclipse.emf.henshin.tests.testmodel.SpecialVal;
+import org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage;
+import org.eclipse.emf.henshin.tests.testmodel.Val;
+import org.eclipse.emf.henshin.tests.testmodel.cont;
+import org.junit.Before;
+import org.junit.Test;
+
+public class AttributeRestrictionsTest extends HenshinTest {
+
+	@Before
+	public void setUp() {
+		TestmodelPackage.eINSTANCE.eClass();
+		init("basic/rules/basicTests.henshin");
+		setEGraphPath("basic/models/attributeTestsModels/", "testmodel");
+		loadEGraph("restrictedAttributes");
+	}
+	
+	@Test
+	public void testSetStandardAttribute() {
+		loadRule("setStandardAttributeValue");
+		htRuleApp.execute(null);
+		cont root = (cont)htEGraph.getRoots().get(0);
+		Val val = root.getContainsVal().get(0);
+		assertEquals(99,val.getIntvl());		
+	}
+	
+	@Test(expected=IllegalStateException.class)
+	public void testSetDerivedAttribute() {
+		loadRule("setDerivedAttributeValue");
+		htRuleApp.execute(null);
+	}
+	
+	@Test(expected=IllegalStateException.class)
+	public void testSetUnchangeableAttribute() {
+		loadRule("setUnchangeableAttributeValue");
+		htRuleApp.execute(null);
+	}
+	
+	@Test(expected=IllegalStateException.class)
+	public void testUnsetStandardAttribute() {
+		loadRule("unsetStandardAttribute");
+		htRuleApp.execute(null);
+	}
+	
+	@Test(expected=IllegalStateException.class)
+	public void testUnsetUnsetableUnchangeableAttribute() {
+		loadRule("unsetUnsetableUnchangeableAttribute");
+		htRuleApp.execute(null);
+	}
+	
+	@Test
+	public void testUnsetUnsetableAttribute() {
+		loadRule("unsetUnsetableAttribute");
+		htRuleApp.execute(null);
+		cont root = (cont)htEGraph.getRoots().get(0);
+		SpecialVal val = (SpecialVal) root.getContainsVal().get(0);
+		assertEquals(42, val.getUnsetablevl());
+	}
+}
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/UnitTest.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/UnitTest.java
index 29d7b7f..55ad93a 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/UnitTest.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/basic/UnitTest.java
@@ -45,7 +45,7 @@
 	@Test
 	public void testAmalgamationUnitAttributeInKernelRuleNac() {
 		loadEGraph("graphBefore_amu_attributeInKernelNac");
-		loadUnit("loop_amu_attributeInKernelNac");
+		loadUnit("iter_amu_attributeInKernelNac");
 		Units.assertUnitCanBeExecuted(htUnitApp);
 	}
 
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/framework/HenshinTest.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/framework/HenshinTest.java
index f73f2ba..bc5c2db 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/framework/HenshinTest.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/framework/HenshinTest.java
@@ -17,6 +17,7 @@
 import java.util.Map.Entry;
 
 import org.eclipse.emf.common.util.URI;
+import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.emf.henshin.interpreter.EGraph;
@@ -120,18 +121,21 @@
 	 * @param henshinFile Henshin file to be loaded.
 	 */
 	protected void init(String henshinFile) {
-		if (resourceSet == null)
+		if (resourceSet == null) {
 			resourceSet = new HenshinResourceSet();
+			resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*",
+				new XMIResourceFactoryImpl());
+		}
 		htModule = (Module) HenshinLoaders.loadHenshin(henshinFile, resourceSet);
 		htEngine = InterpreterFactory.INSTANCE.createEngine();
 	}
 	
 
 
-	protected void initFactory(String extension, XMIResourceFactoryImpl xmiResourceFactoryImpl) {
+	protected void initFactory(String extension, Resource.Factory factoryImpl) {
 		if (resourceSet == null)
 			resourceSet = new HenshinResourceSet();
-		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(extension, xmiResourceFactoryImpl);
+		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(extension, factoryImpl);
 	}
 	
 	/**
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Node.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Node.java
index ddae9de..85be714 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Node.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Node.java
@@ -148,7 +148,7 @@
 	 */
 	public Node getParentNode() {
 		if (parentNode != null && parentNode.eIsProxy()) {
-			InternalEObject oldParentNode = (InternalEObject)parentNode;
+			InternalEObject oldParentNode = parentNode;
 			parentNode = (Node)eResolveProxy(oldParentNode);
 			if (parentNode != oldParentNode) {
 				if (eNotificationRequired())
@@ -186,7 +186,7 @@
 	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.Node#getParentNode <em>Parent Node</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Parent Node</em>' reference.
+	 * @param newParentNode the new value of the '<em>Parent Node</em>' reference.
 	 * @see #getParentNode()
 	 * @generated
 	 */
@@ -194,9 +194,9 @@
 		if (newParentNode != parentNode) {
 			NotificationChain msgs = null;
 			if (parentNode != null)
-				msgs = ((InternalEObject)parentNode).eInverseRemove(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
+				msgs = parentNode.eInverseRemove(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
 			if (newParentNode != null)
-				msgs = ((InternalEObject)newParentNode).eInverseAdd(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
+				msgs = newParentNode.eInverseAdd(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
 			msgs = basicSetParentNode(newParentNode, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
@@ -249,7 +249,7 @@
 	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.Node#getNodename <em>Nodename</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Nodename</em>' attribute.
+	 * @param newNodename the new value of the '<em>Nodename</em>' attribute.
 	 * @see #getNodename()
 	 * @generated
 	 */
@@ -271,7 +271,7 @@
 		switch (featureID) {
 			case TestmodelPackage.NODE__PARENT_NODE:
 				if (parentNode != null)
-					msgs = ((InternalEObject)parentNode).eInverseRemove(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
+					msgs = parentNode.eInverseRemove(this, TestmodelPackage.NODE__CHILD_NODES, Node.class, msgs);
 				return basicSetParentNode((Node)otherEnd, msgs);
 			case TestmodelPackage.NODE__CHILD_NODES:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getChildNodes()).basicAdd(otherEnd, msgs);
@@ -396,7 +396,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (nodename: ");
 		result.append(nodename);
 		result.append(')');
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/SpecialVal.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/SpecialVal.java
new file mode 100644
index 0000000..7f0eff5
--- /dev/null
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/SpecialVal.java
@@ -0,0 +1,384 @@
+/**
+ */
+package org.eclipse.emf.henshin.tests.testmodel;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Special Val</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getDerivedvl <em>Derivedvl</em>}</li>
+ *   <li>{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl <em>Unsetablevl</em>}</li>
+ *   <li>{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnchangeablevl <em>Unchangeablevl</em>}</li>
+ *   <li>{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetableunchangeablevl <em>Unsetableunchangeablevl</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal()
+ * @model kind="class"
+ * @generated
+ */
+public class SpecialVal extends Val {
+	/**
+	 * The default value of the '{@link #getDerivedvl() <em>Derivedvl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDerivedvl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int DERIVEDVL_EDEFAULT = 0;
+
+	/**
+	 * The cached value of the '{@link #getDerivedvl() <em>Derivedvl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDerivedvl()
+	 * @generated
+	 * @ordered
+	 */
+	protected int derivedvl = DERIVEDVL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getUnsetablevl() <em>Unsetablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnsetablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int UNSETABLEVL_EDEFAULT = 42;
+
+	/**
+	 * The cached value of the '{@link #getUnsetablevl() <em>Unsetablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnsetablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected int unsetablevl = UNSETABLEVL_EDEFAULT;
+
+	/**
+	 * This is true if the Unsetablevl attribute has been set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean unsetablevlESet;
+
+	/**
+	 * The default value of the '{@link #getUnchangeablevl() <em>Unchangeablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnchangeablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int UNCHANGEABLEVL_EDEFAULT = 42;
+
+	/**
+	 * The cached value of the '{@link #getUnchangeablevl() <em>Unchangeablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnchangeablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected int unchangeablevl = UNCHANGEABLEVL_EDEFAULT;
+
+	/**
+	 * The default value of the '{@link #getUnsetableunchangeablevl() <em>Unsetableunchangeablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnsetableunchangeablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final int UNSETABLEUNCHANGEABLEVL_EDEFAULT = 42;
+
+	/**
+	 * The cached value of the '{@link #getUnsetableunchangeablevl() <em>Unsetableunchangeablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getUnsetableunchangeablevl()
+	 * @generated
+	 * @ordered
+	 */
+	protected int unsetableunchangeablevl = UNSETABLEUNCHANGEABLEVL_EDEFAULT;
+
+	/**
+	 * This is true if the Unsetableunchangeablevl attribute has been set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	protected boolean unsetableunchangeablevlESet;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SpecialVal() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return TestmodelPackage.Literals.SPECIAL_VAL;
+	}
+
+	/**
+	 * Returns the value of the '<em><b>Derivedvl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Derivedvl</em>' attribute.
+	 * @see #setDerivedvl(int)
+	 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal_Derivedvl()
+	 * @model transient="true" derived="true"
+	 * @generated
+	 */
+	public int getDerivedvl() {
+		return derivedvl;
+	}
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getDerivedvl <em>Derivedvl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param newDerivedvl the new value of the '<em>Derivedvl</em>' attribute.
+	 * @see #getDerivedvl()
+	 * @generated
+	 */
+	public void setDerivedvl(int newDerivedvl) {
+		int oldDerivedvl = derivedvl;
+		derivedvl = newDerivedvl;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.SPECIAL_VAL__DERIVEDVL, oldDerivedvl, derivedvl));
+	}
+
+	/**
+	 * Returns the value of the '<em><b>Unchangeablevl</b></em>' attribute.
+	 * The default value is <code>"42"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unchangeablevl</em>' attribute.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal_Unchangeablevl()
+	 * @model default="42" changeable="false"
+	 * @generated
+	 */
+	public int getUnchangeablevl() {
+		return unchangeablevl;
+	}
+
+	/**
+	 * Returns the value of the '<em><b>Unsetableunchangeablevl</b></em>' attribute.
+	 * The default value is <code>"42"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unsetableunchangeablevl</em>' attribute.
+	 * @see #isSetUnsetableunchangeablevl()
+	 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal_Unsetableunchangeablevl()
+	 * @model default="42" unsettable="true" changeable="false"
+	 * @generated
+	 */
+	public int getUnsetableunchangeablevl() {
+		return unsetableunchangeablevl;
+	}
+
+	/**
+	 * Returns whether the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetableunchangeablevl <em>Unsetableunchangeablevl</em>}' attribute is set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return whether the value of the '<em>Unsetableunchangeablevl</em>' attribute is set.
+	 * @see #getUnsetableunchangeablevl()
+	 * @generated
+	 */
+	public boolean isSetUnsetableunchangeablevl() {
+		return unsetableunchangeablevlESet;
+	}
+
+	/**
+	 * Returns the value of the '<em><b>Unsetablevl</b></em>' attribute.
+	 * The default value is <code>"42"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Unsetablevl</em>' attribute.
+	 * @see #isSetUnsetablevl()
+	 * @see #unsetUnsetablevl()
+	 * @see #setUnsetablevl(int)
+	 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal_Unsetablevl()
+	 * @model default="42" unsettable="true"
+	 * @generated
+	 */
+	public int getUnsetablevl() {
+		return unsetablevl;
+	}
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl <em>Unsetablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param newUnsetablevl the new value of the '<em>Unsetablevl</em>' attribute.
+	 * @see #isSetUnsetablevl()
+	 * @see #unsetUnsetablevl()
+	 * @see #getUnsetablevl()
+	 * @generated
+	 */
+	public void setUnsetablevl(int newUnsetablevl) {
+		int oldUnsetablevl = unsetablevl;
+		unsetablevl = newUnsetablevl;
+		boolean oldUnsetablevlESet = unsetablevlESet;
+		unsetablevlESet = true;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, TestmodelPackage.SPECIAL_VAL__UNSETABLEVL, oldUnsetablevl, unsetablevl, !oldUnsetablevlESet));
+	}
+
+	/**
+	 * Unsets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl <em>Unsetablevl</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #isSetUnsetablevl()
+	 * @see #getUnsetablevl()
+	 * @see #setUnsetablevl(int)
+	 * @generated
+	 */
+	public void unsetUnsetablevl() {
+		int oldUnsetablevl = unsetablevl;
+		boolean oldUnsetablevlESet = unsetablevlESet;
+		unsetablevl = UNSETABLEVL_EDEFAULT;
+		unsetablevlESet = false;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.UNSET, TestmodelPackage.SPECIAL_VAL__UNSETABLEVL, oldUnsetablevl, UNSETABLEVL_EDEFAULT, oldUnsetablevlESet));
+	}
+
+	/**
+	 * Returns whether the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl <em>Unsetablevl</em>}' attribute is set.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return whether the value of the '<em>Unsetablevl</em>' attribute is set.
+	 * @see #unsetUnsetablevl()
+	 * @see #getUnsetablevl()
+	 * @see #setUnsetablevl(int)
+	 * @generated
+	 */
+	public boolean isSetUnsetablevl() {
+		return unsetablevlESet;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case TestmodelPackage.SPECIAL_VAL__DERIVEDVL:
+				return getDerivedvl();
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEVL:
+				return getUnsetablevl();
+			case TestmodelPackage.SPECIAL_VAL__UNCHANGEABLEVL:
+				return getUnchangeablevl();
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEUNCHANGEABLEVL:
+				return getUnsetableunchangeablevl();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case TestmodelPackage.SPECIAL_VAL__DERIVEDVL:
+				setDerivedvl((Integer)newValue);
+				return;
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEVL:
+				setUnsetablevl((Integer)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.SPECIAL_VAL__DERIVEDVL:
+				setDerivedvl(DERIVEDVL_EDEFAULT);
+				return;
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEVL:
+				unsetUnsetablevl();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case TestmodelPackage.SPECIAL_VAL__DERIVEDVL:
+				return derivedvl != DERIVEDVL_EDEFAULT;
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEVL:
+				return isSetUnsetablevl();
+			case TestmodelPackage.SPECIAL_VAL__UNCHANGEABLEVL:
+				return unchangeablevl != UNCHANGEABLEVL_EDEFAULT;
+			case TestmodelPackage.SPECIAL_VAL__UNSETABLEUNCHANGEABLEVL:
+				return isSetUnsetableunchangeablevl();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (derivedvl: ");
+		result.append(derivedvl);
+		result.append(", unsetablevl: ");
+		if (unsetablevlESet) result.append(unsetablevl); else result.append("<unset>");
+		result.append(", unchangeablevl: ");
+		result.append(unchangeablevl);
+		result.append(", unsetableunchangeablevl: ");
+		if (unsetableunchangeablevlESet) result.append(unsetableunchangeablevl); else result.append("<unset>");
+		result.append(')');
+		return result.toString();
+	}
+
+} // SpecialVal
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelAdapterFactory.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelAdapterFactory.java
index 3fa12ba..458aa1c 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelAdapterFactory.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelAdapterFactory.java
@@ -78,6 +78,10 @@
 				return createValAdapter();
 			}
 			@Override
+			public Adapter caseSpecialVal(SpecialVal object) {
+				return createSpecialValAdapter();
+			}
+			@Override
 			public Adapter defaultCase(EObject object) {
 				return createEObjectAdapter();
 			}
@@ -140,6 +144,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal <em>Special Val</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.emf.henshin.tests.testmodel.SpecialVal
+	 * @generated
+	 */
+	public Adapter createSpecialValAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for the default case.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null.
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelFactory.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelFactory.java
index aa9df2c..692124e 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelFactory.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelFactory.java
@@ -67,6 +67,7 @@
 			case TestmodelPackage.CONT: return createcont();
 			case TestmodelPackage.NODE: return createNode();
 			case TestmodelPackage.VAL: return createVal();
+			case TestmodelPackage.SPECIAL_VAL: return createSpecialVal();
 			default:
 				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
 		}
@@ -107,6 +108,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public SpecialVal createSpecialVal() {
+		SpecialVal specialVal = new SpecialVal();
+		return specialVal;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public TestmodelPackage getTestmodelPackage() {
 		return (TestmodelPackage)getEPackage();
 	}
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelPackage.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelPackage.java
index 555db5e..9bf3444 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelPackage.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelPackage.java
@@ -196,6 +196,88 @@
 	public static final int VAL_FEATURE_COUNT = 3;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal <em>Special Val</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal
+	 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal()
+	 * @generated
+	 */
+	public static final int SPECIAL_VAL = 3;
+
+	/**
+	 * The feature id for the '<em><b>Intvl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__INTVL = VAL__INTVL;
+
+	/**
+	 * The feature id for the '<em><b>Valname</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__VALNAME = VAL__VALNAME;
+
+	/**
+	 * The feature id for the '<em><b>Intlist</b></em>' attribute list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__INTLIST = VAL__INTLIST;
+
+	/**
+	 * The feature id for the '<em><b>Derivedvl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__DERIVEDVL = VAL_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Unsetablevl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__UNSETABLEVL = VAL_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Unchangeablevl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__UNCHANGEABLEVL = VAL_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Unsetableunchangeablevl</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL__UNSETABLEUNCHANGEABLEVL = VAL_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Special Val</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	public static final int SPECIAL_VAL_FEATURE_COUNT = VAL_FEATURE_COUNT + 4;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -217,6 +299,13 @@
 	private EClass valEClass = null;
 
 	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass specialValEClass = null;
+
+	/**
 	 * Creates an instance of the model <b>Package</b>, registered with
 	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
 	 * package URI value.
@@ -244,7 +333,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 TestmodelPackage#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 -->
@@ -258,7 +347,8 @@
 		if (isInited) return (TestmodelPackage)EPackage.Registry.INSTANCE.getEPackage(TestmodelPackage.eNS_URI);
 
 		// Obtain or create and register package
-		TestmodelPackage theTestmodelPackage = (TestmodelPackage)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof TestmodelPackage ? EPackage.Registry.INSTANCE.get(eNS_URI) : new TestmodelPackage());
+		Object registeredTestmodelPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+		TestmodelPackage theTestmodelPackage = registeredTestmodelPackage instanceof TestmodelPackage ? (TestmodelPackage)registeredTestmodelPackage : new TestmodelPackage();
 
 		isInited = true;
 
@@ -271,7 +361,6 @@
 		// Mark meta-data to indicate it can't be changed
 		theTestmodelPackage.freeze();
 
-  
 		// Update the registry and return the package
 		EPackage.Registry.INSTANCE.put(TestmodelPackage.eNS_URI, theTestmodelPackage);
 		return theTestmodelPackage;
@@ -432,6 +521,75 @@
 	}
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal <em>Special Val</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Special Val</em>'.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal
+	 * @generated
+	 */
+	public EClass getSpecialVal() {
+		return specialValEClass;
+	}
+
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getDerivedvl <em>Derivedvl</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Derivedvl</em>'.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getDerivedvl()
+	 * @see #getSpecialVal()
+	 * @generated
+	 */
+	public EAttribute getSpecialVal_Derivedvl() {
+		return (EAttribute)specialValEClass.getEStructuralFeatures().get(0);
+	}
+
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnchangeablevl <em>Unchangeablevl</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unchangeablevl</em>'.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnchangeablevl()
+	 * @see #getSpecialVal()
+	 * @generated
+	 */
+	public EAttribute getSpecialVal_Unchangeablevl() {
+		return (EAttribute)specialValEClass.getEStructuralFeatures().get(2);
+	}
+
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetableunchangeablevl <em>Unsetableunchangeablevl</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unsetableunchangeablevl</em>'.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetableunchangeablevl()
+	 * @see #getSpecialVal()
+	 * @generated
+	 */
+	public EAttribute getSpecialVal_Unsetableunchangeablevl() {
+		return (EAttribute)specialValEClass.getEStructuralFeatures().get(3);
+	}
+
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl <em>Unsetablevl</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Unsetablevl</em>'.
+	 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal#getUnsetablevl()
+	 * @see #getSpecialVal()
+	 * @generated
+	 */
+	public EAttribute getSpecialVal_Unsetablevl() {
+		return (EAttribute)specialValEClass.getEStructuralFeatures().get(1);
+	}
+
+
+	/**
 	 * Returns the factory that creates the instances of the model.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -475,6 +633,12 @@
 		createEAttribute(valEClass, VAL__INTVL);
 		createEAttribute(valEClass, VAL__VALNAME);
 		createEAttribute(valEClass, VAL__INTLIST);
+
+		specialValEClass = createEClass(SPECIAL_VAL);
+		createEAttribute(specialValEClass, SPECIAL_VAL__DERIVEDVL);
+		createEAttribute(specialValEClass, SPECIAL_VAL__UNSETABLEVL);
+		createEAttribute(specialValEClass, SPECIAL_VAL__UNCHANGEABLEVL);
+		createEAttribute(specialValEClass, SPECIAL_VAL__UNSETABLEUNCHANGEABLEVL);
 	}
 
 	/**
@@ -505,6 +669,7 @@
 		// Set bounds for type parameters
 
 		// Add supertypes to classes
+		specialValEClass.getESuperTypes().add(this.getVal());
 
 		// Initialize classes and features; add operations and parameters
 		initEClass(contEClass, cont.class, "cont", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -522,6 +687,12 @@
 		initEAttribute(getVal_Valname(), ecorePackage.getEString(), "valname", null, 0, 1, Val.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getVal_Intlist(), ecorePackage.getEInt(), "intlist", null, 0, -1, Val.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(specialValEClass, SpecialVal.class, "SpecialVal", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getSpecialVal_Derivedvl(), ecorePackage.getEInt(), "derivedvl", null, 0, 1, SpecialVal.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSpecialVal_Unsetablevl(), ecorePackage.getEInt(), "unsetablevl", "42", 0, 1, SpecialVal.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSpecialVal_Unchangeablevl(), ecorePackage.getEInt(), "unchangeablevl", "42", 0, 1, SpecialVal.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getSpecialVal_Unsetableunchangeablevl(), ecorePackage.getEInt(), "unsetableunchangeablevl", "42", 0, 1, SpecialVal.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		// Create resource
 		createResource(eNS_URI);
 	}
@@ -641,6 +812,48 @@
 		 */
 		public static final EAttribute VAL__INTLIST = eINSTANCE.getVal_Intlist();
 
+		/**
+		 * The meta object literal for the '{@link org.eclipse.emf.henshin.tests.testmodel.SpecialVal <em>Special Val</em>}' class.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @see org.eclipse.emf.henshin.tests.testmodel.SpecialVal
+		 * @see org.eclipse.emf.henshin.tests.testmodel.TestmodelPackage#getSpecialVal()
+		 * @generated
+		 */
+		public static final EClass SPECIAL_VAL = eINSTANCE.getSpecialVal();
+
+		/**
+		 * The meta object literal for the '<em><b>Derivedvl</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public static final EAttribute SPECIAL_VAL__DERIVEDVL = eINSTANCE.getSpecialVal_Derivedvl();
+
+		/**
+		 * The meta object literal for the '<em><b>Unchangeablevl</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public static final EAttribute SPECIAL_VAL__UNCHANGEABLEVL = eINSTANCE.getSpecialVal_Unchangeablevl();
+
+		/**
+		 * The meta object literal for the '<em><b>Unsetableunchangeablevl</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public static final EAttribute SPECIAL_VAL__UNSETABLEUNCHANGEABLEVL = eINSTANCE.getSpecialVal_Unsetableunchangeablevl();
+
+		/**
+		 * The meta object literal for the '<em><b>Unsetablevl</b></em>' attribute feature.
+		 * <!-- begin-user-doc -->
+		 * <!-- end-user-doc -->
+		 * @generated
+		 */
+		public static final EAttribute SPECIAL_VAL__UNSETABLEVL = eINSTANCE.getSpecialVal_Unsetablevl();
+
 	}
 
 } //TestmodelPackage
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelSwitch.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelSwitch.java
index 481aa67..e0ae7e9 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelSwitch.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/TestmodelSwitch.java
@@ -99,6 +99,13 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case TestmodelPackage.SPECIAL_VAL: {
+				SpecialVal specialVal = (SpecialVal)theEObject;
+				T result = caseSpecialVal(specialVal);
+				if (result == null) result = caseVal(specialVal);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			default: return defaultCase(theEObject);
 		}
 	}
@@ -149,6 +156,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Special Val</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>Special Val</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSpecialVal(SpecialVal object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Val.java b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Val.java
index caca445..8ba7c87 100644
--- a/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Val.java
+++ b/plugins/org.eclipse.emf.henshin.tests/src/org/eclipse/emf/henshin/tests/testmodel/Val.java
@@ -126,7 +126,7 @@
 	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.Val#getIntvl <em>Intvl</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Intvl</em>' attribute.
+	 * @param newIntvl the new value of the '<em>Intvl</em>' attribute.
 	 * @see #getIntvl()
 	 * @generated
 	 */
@@ -159,7 +159,7 @@
 	 * Sets the value of the '{@link org.eclipse.emf.henshin.tests.testmodel.Val#getValname <em>Valname</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Valname</em>' attribute.
+	 * @param newValname the new value of the '<em>Valname</em>' attribute.
 	 * @see #getValname()
 	 * @generated
 	 */
@@ -280,7 +280,7 @@
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
-		StringBuffer result = new StringBuffer(super.toString());
+		StringBuilder result = new StringBuilder(super.toString());
 		result.append(" (intvl: ");
 		result.append(intvl);
 		result.append(", valname: ");
diff --git a/pom.xml b/pom.xml
index 0c19881..0602213 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,26 +52,6 @@
 		<tycho-extras-version>1.0.0</tycho-extras-version>
 	</properties>
 
-<!-- 	<repositories>
-		<repository>
-			<id>luna</id>
-			<layout>p2</layout>
-			<url>http://download.eclipse.org/releases/luna</url>
-		</repository>
-		<repository>
-			<id>eclipse-orbit</id>
-			<name>eclipse orbit for AGG</name>
-			<layout>p2</layout>
-			<url>http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository/</url>
-		</repository>
-		<repository>
-			<id>xtext</id>
-			<name>xtext for textual syntax</name>
-			<layout>p2</layout>
-			<url>http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/</url>
-		</repository>
-	</repositories> -->
-
 	<build>
 		<plugins>
 			<plugin>
@@ -89,26 +69,6 @@
 
 					<environments>
 						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>linux</os>
-							<ws>gtk</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86</arch>
-						</environment>
-						<environment>
-							<os>win32</os>
-							<ws>win32</ws>
-							<arch>x86_64</arch>
-						</environment>
-						<environment>
 							<os>macosx</os>
 							<ws>cocoa</ws>
 							<arch>x86_64</arch>
@@ -137,7 +97,28 @@
 					</execution>
 				</executions>
 			</plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>3.8.1</version>
+        <configuration>
+          <compilerVersion>1.14</compilerVersion>
+        </configuration>
+      </plugin>
 		</plugins>
 	</build>
 
+    <distributionManagement>
+    <repository>
+      <id>repo.eclipse.org</id>
+      <name>Project Repository - Releases</name>
+      <url>https://repo.eclipse.org/content/repositories/henshin-releases/</url>
+    </repository>
+    <snapshotRepository>
+      <id>repo.eclipse.org</id>
+      <name>Project Repository - Snapshots</name>
+      <url>https://repo.eclipse.org/content/repositories/henshin-snapshots/</url>
+    </snapshotRepository>
+  </distributionManagement>
+
 </project>