Extended use of local mode labels: container is IExecutable (Task, ISR, Runnable) instead of Runnable only
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/container/LocalLabelsContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/container/LocalLabelsContainerIP.java
index 8b589c1..d83a4ca 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/container/LocalLabelsContainerIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/container/LocalLabelsContainerIP.java
@@ -14,21 +14,21 @@
 
 import java.util.Collection;
 
-import org.eclipse.app4mc.amalthea.model.Runnable;
+import org.eclipse.app4mc.amalthea.model.IExecutable;
 import org.eclipse.app4mc.amalthea.model.provider.TransientItemProvider;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EStructuralFeature;
 
 public class LocalLabelsContainerIP extends TransientItemProvider {
 
-	public LocalLabelsContainerIP(final AdapterFactory adapterFactory, final Runnable parent) {
+	public LocalLabelsContainerIP(final AdapterFactory adapterFactory, final IExecutable parent) {
 		super(adapterFactory);
 		parent.eAdapters().add(this);
 	}
 
 	@Override
 	public EStructuralFeature myFeature() {
-		return myPackage().getRunnable_LocalLabels();
+		return myPackage().getIExecutable_LocalLabels();
 	}
 
 	/**
@@ -36,7 +36,7 @@
 	 */
 	@Override
 	public String getText(final Object object) {
-		return getString("_UI_Runnable_localLabels_feature"); //$NON-NLS-1$
+		return getString("_UI_IExecutable_localLabels_feature"); //$NON-NLS-1$
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedLocalModeLabelIP.java b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedLocalModeLabelIP.java
index ccf46f8..2aed11b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedLocalModeLabelIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedLocalModeLabelIP.java
@@ -28,10 +28,13 @@
 	 */
 	@Override
 	public Object getParent(final Object object) {
-		final Object runnable = super.getParent(object);
-		final ExtendedRunnableIP runnableIP = (ExtendedRunnableIP) this.adapterFactory
-				.adapt(runnable, ITreeItemContentProvider.class);
-		return runnableIP != null ? runnableIP.getLocalLabelsContainerIP((Runnable) runnable) : null;
+		final Object executable = super.getParent(object);
+		if (executable instanceof Runnable) {
+			final ExtendedRunnableIP runnableIP = (ExtendedRunnableIP) this.adapterFactory
+					.adapt(executable, ITreeItemContentProvider.class);
+			return runnableIP != null ? runnableIP.getLocalLabelsContainerIP((Runnable) executable) : null;
+		}
+		return executable;
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedRunnableIP.java b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedRunnableIP.java
index 388462c..b02854d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedRunnableIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit.extended/src/org/eclipse/app4mc/amalthea/model/edit/sw/extended/ExtendedRunnableIP.java
@@ -40,7 +40,7 @@
 	protected LocalLabelsContainerIP localLabelsCIP;
 
 	private final EStructuralFeature featurePARAMETERS = AmaltheaPackage.eINSTANCE.getRunnable_Parameters();
-	private final EStructuralFeature featureLOCALLABELS = AmaltheaPackage.eINSTANCE.getRunnable_LocalLabels();
+	private final EStructuralFeature featureLOCALLABELS = AmaltheaPackage.eINSTANCE.getIExecutable_LocalLabels();
 
 	public ExtendedRunnableIP(final AdapterFactory adapterFactory) {
 		super(adapterFactory);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
index 72e0e2b..699f184 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
@@ -1594,3 +1594,5 @@
 _UI_ModeLabelAssignment_type = Mode Label Assignment
 _UI_ModeLabelAssignment_globalLabel_feature = Global Label
 _UI_ModeLabelAssignment_localLabel_feature = Local Label
+_UI_IExecutable_localLabels_feature = Local Labels
+_UI_LocalModeLabel_containingExecutable_feature = Containing Executable
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LocalModeLabelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LocalModeLabelItemProvider.java
index ca9dd5b..ce6b3a0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LocalModeLabelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LocalModeLabelItemProvider.java
@@ -57,7 +57,7 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addContainingRunnablePropertyDescriptor(object);
+			addContainingExecutablePropertyDescriptor(object);
 			addModePropertyDescriptor(object);
 			addDefaultValuePropertyDescriptor(object);
 		}
@@ -65,19 +65,19 @@
 	}
 
 	/**
-	 * This adds a property descriptor for the Containing Runnable feature.
+	 * This adds a property descriptor for the Containing Executable feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addContainingRunnablePropertyDescriptor(Object object) {
+	protected void addContainingExecutablePropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_LocalModeLabel_containingRunnable_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_LocalModeLabel_containingRunnable_feature", "_UI_LocalModeLabel_type"),
-				 AmaltheaPackage.eINSTANCE.getLocalModeLabel_ContainingRunnable(),
+				 getString("_UI_LocalModeLabel_containingExecutable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_LocalModeLabel_containingExecutable_feature", "_UI_LocalModeLabel_type"),
+				 AmaltheaPackage.eINSTANCE.getLocalModeLabel_ContainingExecutable(),
 				 false,
 				 false,
 				 false,
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
index 5235c4e..85c9508 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
@@ -97,6 +97,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIExecutable_LocalLabels());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIExecutable_ActivityGraph());
 		}
 		return childrenFeatures;
@@ -152,6 +153,7 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(org.eclipse.app4mc.amalthea.model.Process.class)) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
@@ -172,6 +174,11 @@
 
 		newChildDescriptors.add
 			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getIExecutable_LocalLabels(),
+				 AmaltheaFactory.eINSTANCE.createLocalModeLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getIExecutable_ActivityGraph(),
 				 AmaltheaFactory.eINSTANCE.createActivityGraph()));
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
index 568bcee..8b29b4e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
@@ -263,10 +263,10 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIExecutable_LocalLabels());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIExecutable_ActivityGraph());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_ExecutionCondition());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_Parameters());
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_LocalLabels());
 		}
 		return childrenFeatures;
 	}
@@ -338,10 +338,10 @@
 			case AmaltheaPackage.RUNNABLE__ASIL_LEVEL:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -361,6 +361,11 @@
 
 		newChildDescriptors.add
 			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getIExecutable_LocalLabels(),
+				 AmaltheaFactory.eINSTANCE.createLocalModeLabel()));
+
+		newChildDescriptors.add
+			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getIExecutable_ActivityGraph(),
 				 AmaltheaFactory.eINSTANCE.createActivityGraph()));
 
@@ -373,11 +378,6 @@
 			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getRunnable_Parameters(),
 				 AmaltheaFactory.eINSTANCE.createRunnableParameter()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getRunnable_LocalLabels(),
-				 AmaltheaFactory.eINSTANCE.createLocalModeLabel()));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
index b110166..37b6651 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
@@ -37,6 +37,7 @@
 import org.eclipse.app4mc.amalthea.model.HwAccessPath;
 import org.eclipse.app4mc.amalthea.model.HwFeatureCategory;
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
+import org.eclipse.app4mc.amalthea.model.IExecutable;
 import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.ISystem;
 import org.eclipse.app4mc.amalthea.model.InterfaceKind;
@@ -269,10 +270,10 @@
 	//				private helper methods for local mode labels
 	// *****************************************************************************
 
-	private static Collection<LocalModeLabel> getLocalLabelsOfRunnable(final Runnable runnable) {
-		if (runnable != null) {
+	private static Collection<LocalModeLabel> getLocalLabelsOfExecutable(final IExecutable executable) {
+		if (executable != null) {
 			List<LocalModeLabel> choices = new BasicEList<>();
-			choices.addAll(runnable.getLocalLabels());
+			choices.addAll(executable.getLocalLabels());
 			return choices;
 		}
 		return Collections.emptyList();
@@ -289,11 +290,11 @@
 			if (localModeValue.eContainer() instanceof RunnableCall) {
 				// context of a runnable call -> get local labels of called runnable
 				Runnable runnable = ((RunnableCall) localModeValue.eContainer()).getRunnable();
-				return getLocalLabelsOfRunnable(runnable);
+				return getLocalLabelsOfExecutable(runnable);
 			} else {
-				// local runnable context
-				Runnable runnable = AmaltheaServices.getContainerOfType(localModeValue, Runnable.class);
-				return getLocalLabelsOfRunnable(runnable);
+				// local executable context
+				IExecutable executable = AmaltheaServices.getContainerOfType(localModeValue, IExecutable.class);
+				return getLocalLabelsOfExecutable(executable);
 			}
 		}
 		return Collections.emptyList();
@@ -305,8 +306,8 @@
 
 	public static Collection<LocalModeLabel> getValuesForLocalModeLabelRef(final Object object) {
 		if (object instanceof LocalModeLabelRef) {
-			Runnable runnable = AmaltheaServices.getContainerOfType((LocalModeLabelRef) object, Runnable.class);
-			return getLocalLabelsOfRunnable(runnable);
+			IExecutable executable = AmaltheaServices.getContainerOfType((LocalModeLabelRef) object, IExecutable.class);
+			return getLocalLabelsOfExecutable(executable);
 		}
 		return Collections.emptyList();
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
index aefb3fc..c97909f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
@@ -3249,6 +3249,7 @@
  */
 interface IExecutable
 {
+	contains LocalModeLabel[] localLabels opposite containingExecutable
 	contains ActivityGraph activityGraph
 }
 
@@ -3664,7 +3665,6 @@
 {
 	contains ConditionDisjunction executionCondition
 	contains RunnableParameter[] parameters opposite containingRunnable
-	contains LocalModeLabel[] localLabels opposite containingRunnable
 	refers Activation[] activations
 	
 	op ActivityGraphItem[] getRunnableItems() {
@@ -4318,12 +4318,15 @@
 class LocalModeLabel extends ReferableBaseObject {
 
 	@GenModel(propertyCategory="Read only")
-	container readonly Runnable containingRunnable opposite localLabels
+	container readonly IExecutable containingExecutable opposite localLabels
 
 	refers Mode[1] mode
 	String defaultValue
 
-	op String[] getNamePrefixSegments() { (containingRunnable?.qualifiedNameSegments) ?: newBasicEList }
+	op String[] getNamePrefixSegments() {
+		val exe = containingExecutable
+		if (exe instanceof INamed) exe.qualifiedNameSegments else newBasicEList
+	}
 }
 
 abstract class LocalModeValue {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
index 7240115..d3289f7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
@@ -29394,6 +29394,16 @@
 	int IEXECUTABLE = 279;
 
 	/**
+	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 * @ordered
+	 */
+	int IEXECUTABLE__LOCAL_LABELS = 0;
+
+	/**
 	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -29401,7 +29411,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int IEXECUTABLE__ACTIVITY_GRAPH = 0;
+	int IEXECUTABLE__ACTIVITY_GRAPH = 1;
 
 	/**
 	 * The number of structural features of the '<em>IExecutable</em>' class.
@@ -29411,7 +29421,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int IEXECUTABLE_FEATURE_COUNT = 1;
+	int IEXECUTABLE_FEATURE_COUNT = 2;
 
 	/**
 	 * The number of operations of the '<em>IExecutable</em>' class.
@@ -29506,6 +29516,16 @@
 	int PROCESS__REFERRING_COMPONENTS = ABSTRACT_PROCESS__REFERRING_COMPONENTS;
 
 	/**
+	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS__LOCAL_LABELS = ABSTRACT_PROCESS_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -29513,7 +29533,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS__ACTIVITY_GRAPH = ABSTRACT_PROCESS_FEATURE_COUNT + 0;
+	int PROCESS__ACTIVITY_GRAPH = ABSTRACT_PROCESS_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Stimuli</b></em>' reference list.
@@ -29522,7 +29542,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS__STIMULI = ABSTRACT_PROCESS_FEATURE_COUNT + 1;
+	int PROCESS__STIMULI = ABSTRACT_PROCESS_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Process</em>' class.
@@ -29531,7 +29551,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_FEATURE_COUNT = ABSTRACT_PROCESS_FEATURE_COUNT + 2;
+	int PROCESS_FEATURE_COUNT = ABSTRACT_PROCESS_FEATURE_COUNT + 3;
 
 	/**
 	 * The operation id for the '<em>Get Named Container</em>' operation.
@@ -31580,6 +31600,16 @@
 	int TASK__REFERRING_COMPONENTS = PROCESS__REFERRING_COMPONENTS;
 
 	/**
+	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 * @ordered
+	 */
+	int TASK__LOCAL_LABELS = PROCESS__LOCAL_LABELS;
+
+	/**
 	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -31789,6 +31819,16 @@
 	int ISR__REFERRING_COMPONENTS = PROCESS__REFERRING_COMPONENTS;
 
 	/**
+	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 * @ordered
+	 */
+	int ISR__LOCAL_LABELS = PROCESS__LOCAL_LABELS;
+
+	/**
 	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32771,6 +32811,16 @@
 	int RUNNABLE__MAPPINGS = ABSTRACT_MEMORY_ELEMENT__MAPPINGS;
 
 	/**
+	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE__LOCAL_LABELS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32778,7 +32828,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__ACTIVITY_GRAPH = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
+	int RUNNABLE__ACTIVITY_GRAPH = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Namespace</b></em>' reference.
@@ -32787,7 +32837,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__NAMESPACE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+	int RUNNABLE__NAMESPACE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Execution Condition</b></em>' containment reference.
@@ -32796,7 +32846,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__EXECUTION_CONDITION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
+	int RUNNABLE__EXECUTION_CONDITION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
@@ -32805,16 +32855,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__PARAMETERS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
-
-	/**
-	 * The feature id for the '<em><b>Local Labels</b></em>' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RUNNABLE__LOCAL_LABELS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
+	int RUNNABLE__PARAMETERS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Activations</b></em>' reference list.
@@ -38423,13 +38464,13 @@
 	int LOCAL_MODE_LABEL__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
 
 	/**
-	 * The feature id for the '<em><b>Containing Runnable</b></em>' container reference.
+	 * The feature id for the '<em><b>Containing Executable</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LOCAL_MODE_LABEL__CONTAINING_RUNNABLE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+	int LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Mode</b></em>' reference.
@@ -49387,6 +49428,18 @@
 	EClass getIExecutable();
 
 	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.IExecutable#getLocalLabels <em>Local Labels</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Local Labels</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IExecutable#getLocalLabels()
+	 * @see #getIExecutable()
+	 * @since 1.2
+	 * @generated
+	 */
+	EReference getIExecutable_LocalLabels();
+
+	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.IExecutable#getActivityGraph <em>Activity Graph</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -50457,17 +50510,6 @@
 	EReference getRunnable_Parameters();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.Runnable#getLocalLabels <em>Local Labels</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Local Labels</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Runnable#getLocalLabels()
-	 * @see #getRunnable()
-	 * @generated
-	 */
-	EReference getRunnable_LocalLabels();
-
-	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivations <em>Activations</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -52068,15 +52110,15 @@
 	EClass getLocalModeLabel();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingRunnable <em>Containing Runnable</em>}'.
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingExecutable <em>Containing Executable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the container reference '<em>Containing Runnable</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingRunnable()
+	 * @return the meta object for the container reference '<em>Containing Executable</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingExecutable()
 	 * @see #getLocalModeLabel()
 	 * @generated
 	 */
-	EReference getLocalModeLabel_ContainingRunnable();
+	EReference getLocalModeLabel_ContainingExecutable();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getMode <em>Mode</em>}'.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IExecutable.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IExecutable.java
index 26c4574..1ee6b2c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IExecutable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/IExecutable.java
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -29,6 +30,7 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IExecutable#getLocalLabels <em>Local Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.IExecutable#getActivityGraph <em>Activity Graph</em>}</li>
  * </ul>
  *
@@ -38,6 +40,20 @@
  */
 public interface IExecutable extends EObject {
 	/**
+	 * Returns the value of the '<em><b>Local Labels</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.LocalModeLabel}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingExecutable <em>Containing Executable</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Local Labels</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIExecutable_LocalLabels()
+	 * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingExecutable
+	 * @model opposite="containingExecutable" containment="true"
+	 * @generated
+	 */
+	EList<LocalModeLabel> getLocalLabels();
+
+	/**
 	 * Returns the value of the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
index 7c11406..1374eed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/LocalModeLabel.java
@@ -25,7 +25,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingRunnable <em>Containing Runnable</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingExecutable <em>Containing Executable</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getMode <em>Mode</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getDefaultValue <em>Default Value</em>}</li>
  * </ul>
@@ -36,17 +36,17 @@
  */
 public interface LocalModeLabel extends ReferableBaseObject {
 	/**
-	 * Returns the value of the '<em><b>Containing Runnable</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Runnable#getLocalLabels <em>Local Labels</em>}'.
+	 * Returns the value of the '<em><b>Containing Executable</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.IExecutable#getLocalLabels <em>Local Labels</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Containing Runnable</em>' container reference.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getLocalModeLabel_ContainingRunnable()
-	 * @see org.eclipse.app4mc.amalthea.model.Runnable#getLocalLabels
+	 * @return the value of the '<em>Containing Executable</em>' container reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getLocalModeLabel_ContainingExecutable()
+	 * @see org.eclipse.app4mc.amalthea.model.IExecutable#getLocalLabels
 	 * @model opposite="localLabels" transient="false" changeable="false"
 	 * @generated
 	 */
-	org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable();
+	IExecutable getContainingExecutable();
 
 	/**
 	 * Returns the value of the '<em><b>Mode</b></em>' reference.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/Runnable.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
index eecf933..14279a1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
@@ -31,7 +31,6 @@
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getExecutionCondition <em>Execution Condition</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getParameters <em>Parameters</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getLocalLabels <em>Local Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivations <em>Activations</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#isCallback <em>Callback</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#isService <em>Service</em>}</li>
@@ -83,20 +82,6 @@
 	EList<RunnableParameter> getParameters();
 
 	/**
-	 * Returns the value of the '<em><b>Local Labels</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.LocalModeLabel}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingRunnable <em>Containing Runnable</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Local Labels</em>' containment reference list.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getRunnable_LocalLabels()
-	 * @see org.eclipse.app4mc.amalthea.model.LocalModeLabel#getContainingRunnable
-	 * @model opposite="containingRunnable" containment="true"
-	 * @generated
-	 */
-	EList<LocalModeLabel> getLocalLabels();
-
-	/**
 	 * Returns the value of the '<em><b>Activations</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Activation}.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
index 20df2cd..bbecd2f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
@@ -12263,13 +12263,24 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getIExecutable_ActivityGraph() {
+	public EReference getIExecutable_LocalLabels() {
 		return (EReference)iExecutableEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
+	 * @since 1.2
+	 * @generated
+	 */
+	@Override
+	public EReference getIExecutable_ActivityGraph() {
+		return (EReference)iExecutableEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
@@ -13269,7 +13280,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRunnable_LocalLabels() {
+	public EReference getRunnable_Activations() {
 		return (EReference)runnableEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -13279,18 +13290,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRunnable_Activations() {
-		return (EReference)runnableEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EAttribute getRunnable_Callback() {
-		return (EAttribute)runnableEClass.getEStructuralFeatures().get(4);
+		return (EAttribute)runnableEClass.getEStructuralFeatures().get(3);
 	}
 
 	/**
@@ -13300,7 +13301,7 @@
 	 */
 	@Override
 	public EAttribute getRunnable_Service() {
-		return (EAttribute)runnableEClass.getEStructuralFeatures().get(5);
+		return (EAttribute)runnableEClass.getEStructuralFeatures().get(4);
 	}
 
 	/**
@@ -13310,7 +13311,7 @@
 	 */
 	@Override
 	public EAttribute getRunnable_AsilLevel() {
-		return (EAttribute)runnableEClass.getEStructuralFeatures().get(6);
+		return (EAttribute)runnableEClass.getEStructuralFeatures().get(5);
 	}
 
 	/**
@@ -13320,7 +13321,7 @@
 	 */
 	@Override
 	public EReference getRunnable_Section() {
-		return (EReference)runnableEClass.getEStructuralFeatures().get(7);
+		return (EReference)runnableEClass.getEStructuralFeatures().get(6);
 	}
 
 	/**
@@ -13330,7 +13331,7 @@
 	 */
 	@Override
 	public EReference getRunnable_RunnableCalls() {
-		return (EReference)runnableEClass.getEStructuralFeatures().get(8);
+		return (EReference)runnableEClass.getEStructuralFeatures().get(7);
 	}
 
 	/**
@@ -13340,7 +13341,7 @@
 	 */
 	@Override
 	public EReference getRunnable_ReferringComponents() {
-		return (EReference)runnableEClass.getEStructuralFeatures().get(9);
+		return (EReference)runnableEClass.getEStructuralFeatures().get(8);
 	}
 
 	/**
@@ -14780,7 +14781,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getLocalModeLabel_ContainingRunnable() {
+	public EReference getLocalModeLabel_ContainingExecutable() {
 		return (EReference)localModeLabelEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -16967,6 +16968,7 @@
 		createEReference(processChainEClass, PROCESS_CHAIN__PROCESSES);
 
 		iExecutableEClass = createEClass(IEXECUTABLE);
+		createEReference(iExecutableEClass, IEXECUTABLE__LOCAL_LABELS);
 		createEReference(iExecutableEClass, IEXECUTABLE__ACTIVITY_GRAPH);
 
 		processEClass = createEClass(PROCESS);
@@ -17100,7 +17102,6 @@
 		runnableEClass = createEClass(RUNNABLE);
 		createEReference(runnableEClass, RUNNABLE__EXECUTION_CONDITION);
 		createEReference(runnableEClass, RUNNABLE__PARAMETERS);
-		createEReference(runnableEClass, RUNNABLE__LOCAL_LABELS);
 		createEReference(runnableEClass, RUNNABLE__ACTIVATIONS);
 		createEAttribute(runnableEClass, RUNNABLE__CALLBACK);
 		createEAttribute(runnableEClass, RUNNABLE__SERVICE);
@@ -17298,7 +17299,7 @@
 		createEReference(runEntityCallStatisticEClass, RUN_ENTITY_CALL_STATISTIC__STATISTIC);
 
 		localModeLabelEClass = createEClass(LOCAL_MODE_LABEL);
-		createEReference(localModeLabelEClass, LOCAL_MODE_LABEL__CONTAINING_RUNNABLE);
+		createEReference(localModeLabelEClass, LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE);
 		createEReference(localModeLabelEClass, LOCAL_MODE_LABEL__MODE);
 		createEAttribute(localModeLabelEClass, LOCAL_MODE_LABEL__DEFAULT_VALUE);
 		createEOperation(localModeLabelEClass, LOCAL_MODE_LABEL___GET_NAME_PREFIX_SEGMENTS);
@@ -19245,6 +19246,7 @@
 		initEReference(getProcessChain_Processes(), this.getProcess(), null, "processes", null, 0, -1, ProcessChain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(iExecutableEClass, IExecutable.class, "IExecutable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIExecutable_LocalLabels(), this.getLocalModeLabel(), this.getLocalModeLabel_ContainingExecutable(), "localLabels", null, 0, -1, IExecutable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getIExecutable_ActivityGraph(), this.getActivityGraph(), null, "activityGraph", null, 0, 1, IExecutable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(processEClass, org.eclipse.app4mc.amalthea.model.Process.class, "Process", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -19380,7 +19382,6 @@
 		initEClass(runnableEClass, org.eclipse.app4mc.amalthea.model.Runnable.class, "Runnable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getRunnable_ExecutionCondition(), this.getConditionDisjunction(), null, "executionCondition", null, 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnable_Parameters(), this.getRunnableParameter(), this.getRunnableParameter_ContainingRunnable(), "parameters", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRunnable_LocalLabels(), this.getLocalModeLabel(), this.getLocalModeLabel_ContainingRunnable(), "localLabels", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnable_Activations(), this.getActivation(), null, "activations", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getRunnable_Callback(), theEcorePackage.getEBoolean(), "callback", "false", 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getRunnable_Service(), theEcorePackage.getEBoolean(), "service", "false", 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -19600,7 +19601,7 @@
 		initEReference(getRunEntityCallStatistic_Statistic(), this.getNumericStatistic(), null, "statistic", null, 0, 1, RunEntityCallStatistic.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(localModeLabelEClass, LocalModeLabel.class, "LocalModeLabel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getLocalModeLabel_ContainingRunnable(), this.getRunnable(), this.getRunnable_LocalLabels(), "containingRunnable", null, 0, 1, LocalModeLabel.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getLocalModeLabel_ContainingExecutable(), this.getIExecutable(), this.getIExecutable_LocalLabels(), "containingExecutable", null, 0, 1, LocalModeLabel.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getLocalModeLabel_Mode(), this.getMode(), null, "mode", null, 1, 1, LocalModeLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLocalModeLabel_DefaultValue(), theEcorePackage.getEString(), "defaultValue", null, 0, 1, LocalModeLabel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
index 1e753a4..cea4c6b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/LocalModeLabelImpl.java
@@ -17,6 +17,7 @@
 import java.lang.reflect.InvocationTargetException;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.IExecutable;
 import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
@@ -25,7 +26,6 @@
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
@@ -42,7 +42,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelImpl#getContainingRunnable <em>Containing Runnable</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelImpl#getContainingExecutable <em>Containing Executable</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelImpl#getMode <em>Mode</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LocalModeLabelImpl#getDefaultValue <em>Default Value</em>}</li>
  * </ul>
@@ -105,9 +105,9 @@
 	 * @generated
 	 */
 	@Override
-	public org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable() {
-		if (eContainerFeatureID() != AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE) return null;
-		return (org.eclipse.app4mc.amalthea.model.Runnable)eContainer();
+	public IExecutable getContainingExecutable() {
+		if (eContainerFeatureID() != AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE) return null;
+		return (IExecutable)eContainer();
 	}
 
 	/**
@@ -115,9 +115,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.eclipse.app4mc.amalthea.model.Runnable basicGetContainingRunnable() {
-		if (eContainerFeatureID() != AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE) return null;
-		return (org.eclipse.app4mc.amalthea.model.Runnable)eInternalContainer();
+	public IExecutable basicGetContainingExecutable() {
+		if (eContainerFeatureID() != AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE) return null;
+		return (IExecutable)eInternalContainer();
 	}
 
 	/**
@@ -190,19 +190,18 @@
 	 */
 	@Override
 	public EList<String> getNamePrefixSegments() {
-		EList<String> _elvis = null;
-		org.eclipse.app4mc.amalthea.model.Runnable _containingRunnable = this.getContainingRunnable();
-		EList<String> _qualifiedNameSegments = null;
-		if (_containingRunnable!=null) {
-			_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();
+		EList<String> _xblockexpression = null; {
+			final IExecutable exe = this.getContainingExecutable();
+			EList<String> _xifexpression = null;
+			if ((exe instanceof INamed)) {
+				_xifexpression = ((INamed)exe).getQualifiedNameSegments();
+			}
+			else {
+				_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+			}
+			_xblockexpression = _xifexpression;
 		}
-		if (_qualifiedNameSegments != null) {
-			_elvis = _qualifiedNameSegments;
-		} else {
-			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
-			_elvis = _newBasicEList;
-		}
-		return _elvis;
+		return _xblockexpression;
 	}
 
 	/**
@@ -213,10 +212,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE:
+			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
 				if (eInternalContainer() != null)
 					msgs = eBasicRemoveFromContainer(msgs);
-				return eBasicSetContainer(otherEnd, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE, msgs);
+				return eBasicSetContainer(otherEnd, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -229,8 +228,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE:
-				return eBasicSetContainer(null, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE, msgs);
+			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
+				return eBasicSetContainer(null, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -243,8 +242,8 @@
 	@Override
 	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
 		switch (eContainerFeatureID()) {
-			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE:
-				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.RUNNABLE__LOCAL_LABELS, org.eclipse.app4mc.amalthea.model.Runnable.class, msgs);
+			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.IEXECUTABLE__LOCAL_LABELS, IExecutable.class, msgs);
 		}
 		return super.eBasicRemoveFromContainerFeature(msgs);
 	}
@@ -257,9 +256,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE:
-				if (resolve) return getContainingRunnable();
-				return basicGetContainingRunnable();
+			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
+				if (resolve) return getContainingExecutable();
+				return basicGetContainingExecutable();
 			case AmaltheaPackage.LOCAL_MODE_LABEL__MODE:
 				if (resolve) return getMode();
 				return basicGetMode();
@@ -313,8 +312,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE:
-				return basicGetContainingRunnable() != null;
+			case AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE:
+				return basicGetContainingExecutable() != null;
 			case AmaltheaPackage.LOCAL_MODE_LABEL__MODE:
 				return mode != null;
 			case AmaltheaPackage.LOCAL_MODE_LABEL__DEFAULT_VALUE:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
index 64fe41a..b2edd39 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
@@ -19,6 +19,7 @@
 import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.IExecutable;
+import org.eclipse.app4mc.amalthea.model.LocalModeLabel;
 import org.eclipse.app4mc.amalthea.model.Stimulus;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -31,7 +32,9 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
  * <!-- begin-user-doc -->
@@ -41,6 +44,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getLocalLabels <em>Local Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getStimuli <em>Stimuli</em>}</li>
  * </ul>
@@ -49,6 +53,16 @@
  */
 public abstract class ProcessImpl extends AbstractProcessImpl implements org.eclipse.app4mc.amalthea.model.Process {
 	/**
+	 * The cached value of the '{@link #getLocalLabels() <em>Local Labels</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalLabels()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<LocalModeLabel> localLabels;
+
+	/**
 	 * The cached value of the '{@link #getActivityGraph() <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -93,6 +107,19 @@
 	 * @generated
 	 */
 	@Override
+	public EList<LocalModeLabel> getLocalLabels() {
+		if (localLabels == null) {
+			localLabels = new EObjectContainmentWithInverseEList<LocalModeLabel>(LocalModeLabel.class, this, AmaltheaPackage.PROCESS__LOCAL_LABELS, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE);
+		}
+		return localLabels;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public ActivityGraph getActivityGraph() {
 		return activityGraph;
 	}
@@ -150,9 +177,26 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getLocalLabels()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				return ((InternalEList<?>)getLocalLabels()).basicRemove(otherEnd, msgs);
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				return basicSetActivityGraph(null, msgs);
 		}
@@ -167,6 +211,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				return getLocalLabels();
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				return getActivityGraph();
 			case AmaltheaPackage.PROCESS__STIMULI:
@@ -184,6 +230,10 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				getLocalLabels().clear();
+				getLocalLabels().addAll((Collection<? extends LocalModeLabel>)newValue);
+				return;
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				setActivityGraph((ActivityGraph)newValue);
 				return;
@@ -203,6 +253,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				getLocalLabels().clear();
+				return;
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				setActivityGraph((ActivityGraph)null);
 				return;
@@ -221,6 +274,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.PROCESS__LOCAL_LABELS:
+				return localLabels != null && !localLabels.isEmpty();
 			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				return activityGraph != null;
 			case AmaltheaPackage.PROCESS__STIMULI:
@@ -238,6 +293,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == IExecutable.class) {
 			switch (derivedFeatureID) {
+				case AmaltheaPackage.PROCESS__LOCAL_LABELS: return AmaltheaPackage.IEXECUTABLE__LOCAL_LABELS;
 				case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH: return AmaltheaPackage.IEXECUTABLE__ACTIVITY_GRAPH;
 				default: return -1;
 			}
@@ -254,6 +310,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == IExecutable.class) {
 			switch (baseFeatureID) {
+				case AmaltheaPackage.IEXECUTABLE__LOCAL_LABELS: return AmaltheaPackage.PROCESS__LOCAL_LABELS;
 				case AmaltheaPackage.IEXECUTABLE__ACTIVITY_GRAPH: return AmaltheaPackage.PROCESS__ACTIVITY_GRAPH;
 				default: return -1;
 			}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
index 7afcd4b..99fe4e6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xcore-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
@@ -60,11 +60,11 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getLocalLabels <em>Local Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getExecutionCondition <em>Execution Condition</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getParameters <em>Parameters</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getLocalLabels <em>Local Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getActivations <em>Activations</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#isCallback <em>Callback</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#isService <em>Service</em>}</li>
@@ -78,6 +78,16 @@
  */
 public class RunnableImpl extends AbstractMemoryElementImpl implements org.eclipse.app4mc.amalthea.model.Runnable {
 	/**
+	 * The cached value of the '{@link #getLocalLabels() <em>Local Labels</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getLocalLabels()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<LocalModeLabel> localLabels;
+
+	/**
 	 * The cached value of the '{@link #getActivityGraph() <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -118,16 +128,6 @@
 	protected EList<RunnableParameter> parameters;
 
 	/**
-	 * The cached value of the '{@link #getLocalLabels() <em>Local Labels</em>}' containment reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getLocalLabels()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<LocalModeLabel> localLabels;
-
-	/**
 	 * The cached value of the '{@link #getActivations() <em>Activations</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -377,7 +377,7 @@
 	@Override
 	public EList<LocalModeLabel> getLocalLabels() {
 		if (localLabels == null) {
-			localLabels = new EObjectContainmentWithInverseEList<LocalModeLabel>(LocalModeLabel.class, this, AmaltheaPackage.RUNNABLE__LOCAL_LABELS, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_RUNNABLE);
+			localLabels = new EObjectContainmentWithInverseEList<LocalModeLabel>(LocalModeLabel.class, this, AmaltheaPackage.RUNNABLE__LOCAL_LABELS, AmaltheaPackage.LOCAL_MODE_LABEL__CONTAINING_EXECUTABLE);
 		}
 		return localLabels;
 	}
@@ -565,10 +565,10 @@
 	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.RUNNABLE__PARAMETERS:
-				return ((InternalEList<InternalEObject>)(InternalEList<?>)getParameters()).basicAdd(otherEnd, msgs);
 			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
 				return ((InternalEList<InternalEObject>)(InternalEList<?>)getLocalLabels()).basicAdd(otherEnd, msgs);
+			case AmaltheaPackage.RUNNABLE__PARAMETERS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getParameters()).basicAdd(otherEnd, msgs);
 		}
 		return super.eInverseAdd(otherEnd, featureID, msgs);
 	}
@@ -581,14 +581,14 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
+				return ((InternalEList<?>)getLocalLabels()).basicRemove(otherEnd, msgs);
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				return basicSetActivityGraph(null, msgs);
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 				return basicSetExecutionCondition(null, msgs);
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
-				return ((InternalEList<?>)getLocalLabels()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -601,6 +601,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
+				return getLocalLabels();
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				return getActivityGraph();
 			case AmaltheaPackage.RUNNABLE__NAMESPACE:
@@ -610,8 +612,6 @@
 				return getExecutionCondition();
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return getParameters();
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
-				return getLocalLabels();
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				return getActivations();
 			case AmaltheaPackage.RUNNABLE__CALLBACK:
@@ -640,6 +640,10 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
+				getLocalLabels().clear();
+				getLocalLabels().addAll((Collection<? extends LocalModeLabel>)newValue);
+				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				setActivityGraph((ActivityGraph)newValue);
 				return;
@@ -653,10 +657,6 @@
 				getParameters().clear();
 				getParameters().addAll((Collection<? extends RunnableParameter>)newValue);
 				return;
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
-				getLocalLabels().clear();
-				getLocalLabels().addAll((Collection<? extends LocalModeLabel>)newValue);
-				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				getActivations().clear();
 				getActivations().addAll((Collection<? extends Activation>)newValue);
@@ -685,6 +685,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
+				getLocalLabels().clear();
+				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				setActivityGraph((ActivityGraph)null);
 				return;
@@ -697,9 +700,6 @@
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				getParameters().clear();
 				return;
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
-				getLocalLabels().clear();
-				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				getActivations().clear();
 				return;
@@ -727,6 +727,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
+				return localLabels != null && !localLabels.isEmpty();
 			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				return activityGraph != null;
 			case AmaltheaPackage.RUNNABLE__NAMESPACE:
@@ -735,8 +737,6 @@
 				return executionCondition != null;
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return parameters != null && !parameters.isEmpty();
-			case AmaltheaPackage.RUNNABLE__LOCAL_LABELS:
-				return localLabels != null && !localLabels.isEmpty();
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				return activations != null && !activations.isEmpty();
 			case AmaltheaPackage.RUNNABLE__CALLBACK:
@@ -764,6 +764,7 @@
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
 		if (baseClass == IExecutable.class) {
 			switch (derivedFeatureID) {
+				case AmaltheaPackage.RUNNABLE__LOCAL_LABELS: return AmaltheaPackage.IEXECUTABLE__LOCAL_LABELS;
 				case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH: return AmaltheaPackage.IEXECUTABLE__ACTIVITY_GRAPH;
 				default: return -1;
 			}
@@ -786,6 +787,7 @@
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
 		if (baseClass == IExecutable.class) {
 			switch (baseFeatureID) {
+				case AmaltheaPackage.IEXECUTABLE__LOCAL_LABELS: return AmaltheaPackage.RUNNABLE__LOCAL_LABELS;
 				case AmaltheaPackage.IEXECUTABLE__ACTIVITY_GRAPH: return AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH;
 				default: return -1;
 			}