diff --git a/codegen/org.eclipse.efm.formalml.concretesyntax.m2t/src/org/eclipse/efm/formalml/concretesyntax/m2t/factory/ClassCodeGenerator.java b/codegen/org.eclipse.efm.formalml.concretesyntax.m2t/src/org/eclipse/efm/formalml/concretesyntax/m2t/factory/ClassCodeGenerator.java
index ba8c4c9..ddea1ef 100644
--- a/codegen/org.eclipse.efm.formalml.concretesyntax.m2t/src/org/eclipse/efm/formalml/concretesyntax/m2t/factory/ClassCodeGenerator.java
+++ b/codegen/org.eclipse.efm.formalml.concretesyntax.m2t/src/org/eclipse/efm/formalml/concretesyntax/m2t/factory/ClassCodeGenerator.java
@@ -97,7 +97,7 @@
 		return( false );
 	}
 
-	public boolean isBlockFormalContextDefinition(Class element) {
+	public boolean isBlockConfigurationDefinition(Class element) {
 		if( (StereotypeUtil.getConfiguration(element) != null) ) {
 			return( true );
 		}
@@ -126,7 +126,7 @@
 	public void collectElement(Package packageElement,
 			List<NamedElement> properties, List<Class> machinesAsBlock,
 			List<Property> blockInstances,
-			ArrayList<Class> machinesAsFormalContext) {
+			ArrayList<Class> machinesAsConfiguration) {
 		for( PackageableElement itPE : packageElement.getPackagedElements() ) {
 			if( itPE instanceof Property ) {
 				Property itProperty = (Property)itPE;
@@ -148,13 +148,13 @@
 			else if( itPE instanceof Class ) {
 				Class itClass = (Class) itPE;
 
-				if( isBlockFormalContextDefinition(itClass) ) {
-					if( machinesAsFormalContext != null ) {
-						machinesAsFormalContext.add( itClass );
+				if( isBlockConfigurationDefinition(itClass) ) {
+					if( machinesAsConfiguration != null ) {
+						machinesAsConfiguration.add( itClass );
 					}
 					else {
 						System.out.println(
-								"Unexpected a null< machinesAsFormalContext > !");
+								"Unexpected a null< machinesAsConfiguration > !");
 					}
 				}
 				else if( isBlock(itClass) ) {
@@ -165,7 +165,7 @@
 			}
 			else if( itPE instanceof Package ) {
 				collectElement((Package)itPE, properties, machinesAsBlock,
-						blockInstances, machinesAsFormalContext);
+						blockInstances, machinesAsConfiguration);
 			}
 			else {
 			}
@@ -177,7 +177,7 @@
 			List<NamedElement> properties, List<Class> machinesAsBlock,
 			List<Property> blockInstances,
 			List<Behavior> blockBehaviors,
-			ArrayList<Class> machinesAsFormalContext) {
+			ArrayList<Class> machinesAsConfiguration) {
 		for( Property itAttribute : pack.getOwnedAttributes() ) {
 			if( isPart(itAttribute) ) {
 				blockInstances.add( itAttribute );
@@ -192,7 +192,7 @@
 				blockBehaviors.add(itBehavior);
 
 				collectElement(itBehavior, properties, machinesAsBlock,
-						blockInstances, machinesAsFormalContext);
+						blockInstances, machinesAsConfiguration);
 			}
 		}
 	}
@@ -201,10 +201,10 @@
 	public void collectElement(PackageableElement pack,
 			List<NamedElement> properties, List<Class> machinesAsBlock,
 			List<Property> blockInstances,
-			ArrayList<Class> machinesAsFormalContext) {
+			ArrayList<Class> machinesAsConfiguration) {
 		if( pack instanceof Package ) {
 			collectElement(pack, properties, machinesAsBlock,
-					blockInstances, machinesAsFormalContext);
+					blockInstances, machinesAsConfiguration);
 		}
 		else if( pack instanceof Property ) {
 			Property itProperty = (Property) pack;
@@ -226,13 +226,13 @@
 		else if( pack instanceof Class ) {
 			Class itClass = (Class) pack;
 
-			if( isBlockFormalContextDefinition(itClass) ) {
-				if( machinesAsFormalContext != null ) {
-					machinesAsFormalContext.add( itClass );
+			if( isBlockConfigurationDefinition(itClass) ) {
+				if( machinesAsConfiguration != null ) {
+					machinesAsConfiguration.add( itClass );
 				}
 				else {
 					System.out.println(
-							"Unexpected a null< machinesAsFormalContext > !");
+							"Unexpected a null< machinesAsConfiguration > !");
 				}
 			}
 			else if( isBlock(itClass) ) {
@@ -263,10 +263,10 @@
 		ArrayList<Class> machinesAsBlock = new ArrayList<Class>();
 		ArrayList<Property> blockInstances = new ArrayList<Property>();
 
-		ArrayList<Class> machinesAsFormalContext = new ArrayList<Class>();
+		ArrayList<Class> machinesAsConfiguration = new ArrayList<Class>();
 
 		collectElement(element, properties, machinesAsBlock,
-				blockInstances, machinesAsFormalContext);
+				blockInstances, machinesAsConfiguration);
 
 		writer.appendTabEol2("@xlia< system , 1.0 >:");
 
@@ -296,8 +296,8 @@
 				transformClassDefinition(clazz, writer2);
 			}
 
-			for( Class clazz : machinesAsFormalContext ) {
-				transformClassFormalContext(clazz, writer2);
+			for( Class clazz : machinesAsConfiguration ) {
+				transformClassConfiguration(clazz, writer2);
 			}
 		}
 		// Section instance statemachine
@@ -310,8 +310,8 @@
 		}
 
 
-		int instancesFormalContextCount = machinesAsFormalContext.size();
-		if( instancesFormalContextCount > 0 ) {
+		int instancesConfigurationCount = machinesAsConfiguration.size();
+		if( instancesConfigurationCount > 0 ) {
 			// Section moe
 			//
 			writer.appendEolTab_Eol("@moe:");
@@ -319,8 +319,8 @@
 			// Section init
 			//
 			writer.appendTab2Eol("@init{" +
-					((instancesFormalContextCount > 1) ? " |and|" : "") );
-			for( Class ctxClass : machinesAsFormalContext ) {
+					((instancesConfigurationCount > 1) ? " |and|" : "") );
+			for( Class ctxClass : machinesAsConfiguration ) {
 				writer.appendTab3("init ")
 					.append(ctxClass.getName())
 					.appendEol(";");
@@ -330,8 +330,8 @@
 			// Section schedule
 			//
 			writer.appendTab2Eol("@schedule{" +
-					((instancesFormalContextCount > 1) ? " |i|" : "") );
-			for( Class ctxClass : machinesAsFormalContext ) {
+					((instancesConfigurationCount > 1) ? " |i|" : "") );
+			for( Class ctxClass : machinesAsConfiguration ) {
 				writer.appendTab3("run ")
 					.append(ctxClass.getName())
 					.appendEol(";");
@@ -370,14 +370,14 @@
 
 		writer.appendTabEol2("@xlia< system , 1.0 >:");
 
-		Configuration elementFormalContext =
+		Configuration elementConfiguration =
 				StereotypeUtil.getConfiguration(element);
 
 		writer.appendTab();
-		if( elementFormalContext.isTimed() ) {
+		if( elementConfiguration.isTimed() ) {
 			writer.append("timed ");
 		}
-		if( elementFormalContext.isInput_enabled() ) {
+		if( elementConfiguration.isInputEnabled() ) {
 			writer.append("input_enabled ");
 		}
 		writer.append("system< and > ")
@@ -504,7 +504,7 @@
 	 * @param element
 	 * @param writer
 	 */
-	public void transformClassFormalContext(
+	public void transformClassConfiguration(
 			Class element, PrettyPrintWriter writer) {
 		ArrayList<NamedElement> properties = new ArrayList<NamedElement>();
 		ArrayList<Class> machinesAsBlock = new ArrayList<Class>();
@@ -514,16 +514,16 @@
 		collectElement(element, properties,
 				machinesAsBlock, blockInstances, behaviors, null);
 
-		Configuration elementFormalContext =
+		Configuration elementConfiguration =
 				StereotypeUtil.getConfiguration(element);
 
 		writer.appendTabEol("//!!FML:gen< Configuration >");
 
 		writer.appendTab();
-		if( elementFormalContext.isTimed() ) {
+		if( elementConfiguration.isTimed() ) {
 			writer.append("timed ");
 		}
-		if( elementFormalContext.isInput_enabled() ) {
+		if( elementConfiguration.isInputEnabled() ) {
 			writer.append("input_enabled ");
 		}
 		writer.append("machine< and > ")
@@ -549,7 +549,7 @@
 		writer.appendEolTab_Eol("@moe:");
 
 		transformClassMoeDefinition(
-				elementFormalContext, behaviors, blockInstances, writer2);
+				elementConfiguration, behaviors, blockInstances, writer2);
 
 		writer.appendTab("} // end machine ")
 			.appendEol2(element.getName());
@@ -640,10 +640,10 @@
 		Part formalPart;
 
 		if( behaviorCount > 0 ) {
-			if( block.getBase_Class().getClassifierBehavior() == null ) {
+			if( block.getBaseClass().getClassifierBehavior() == null ) {
 				LOGGER.error( ( new StringBuffer(this.getClass().getSimpleName()) )
 					.append( ":> unexpected Block Class " )
-					.append( block.getBase_Class().getQualifiedName() )
+					.append( block.getBaseClass().getQualifiedName() )
 					.append( " with ownedBehavior, without classifierBehavior" )
 					.toString() );
 			}
@@ -710,7 +710,7 @@
 		//
 		writer.appendTab("@schedule{");
 
-		Class block_base_Class = block.getBase_Class();
+		Class block_base_Class = block.getBaseClass();
 		if (block_base_Class !=null){
 			Behavior scheduleBehavior = block_base_Class.getClassifierBehavior();
 
@@ -928,7 +928,7 @@
 			}
 
 			String comment_on_part = "";
-			if (environmental_properties.contains(formalPart.getBase_Property())) {
+			if (environmental_properties.contains(formalPart.getBaseProperty())) {
 				comment_on_part = " /* in formal context 'environment' */";
 			}
 
diff --git a/core/org.eclipse.efm.formalml/resources/profile/FormalML.profile.genmodel b/core/org.eclipse.efm.formalml/resources/profile/FormalML.profile.genmodel
index 5a465b6..3a14620 100644
--- a/core/org.eclipse.efm.formalml/resources/profile/FormalML.profile.genmodel
+++ b/core/org.eclipse.efm.formalml/resources/profile/FormalML.profile.genmodel
@@ -5,117 +5,99 @@
     modelDirectory="/org.eclipse.efm.formalml/src-gen" editDirectory="/org.eclipse.efm.formalml.edit/src-gen"
     editorDirectory="/org.eclipse.efm.formalml.editor/src-gen" modelPluginID="org.eclipse.efm.formalml"
     modelName="FormalML" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="8.0" copyrightFields="false"
+    importerID="org.eclipse.uml2.uml.ecore.importer" complianceLevel="8.0" copyrightFields="false"
     usedGenPackages="../../../org.eclipse.emf.ecore/model/Ecore.genmodel#//ecore ../../../org.eclipse.uml2.types/model/Types.genmodel#//types ../../../org.eclipse.uml2.uml/model/UML.genmodel#//uml"
     operationReflection="true" importOrganizing="true">
   <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
-    <details key="OPPOSITE_ROLE_NAMES" value="IGNORE"/>
-    <details key="DUPLICATE_FEATURES" value="DISCARD"/>
+    <details key="OPPOSITE_ROLE_NAMES" value="PROCESS"/>
+    <details key="DUPLICATE_FEATURES" value="PROCESS"/>
     <details key="ANNOTATION_DETAILS" value="PROCESS"/>
-    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="IGNORE"/>
-    <details key="DUPLICATE_FEATURE_INHERITANCE" value="DISCARD"/>
+    <details key="PROPERTY_DEFAULT_EXPRESSIONS" value="PROCESS"/>
+    <details key="DUPLICATE_FEATURE_INHERITANCE" value="PROCESS"/>
     <details key="COMMENTS" value="PROCESS"/>
     <details key="DERIVED_FEATURES" value="PROCESS"/>
     <details key="SUPER_CLASS_ORDER" value="PROCESS"/>
-    <details key="DUPLICATE_OPERATION_INHERITANCE" value="DISCARD"/>
-    <details key="REDEFINING_OPERATIONS" value="REPORT"/>
+    <details key="DUPLICATE_OPERATION_INHERITANCE" value="PROCESS"/>
+    <details key="REDEFINING_OPERATIONS" value="PROCESS"/>
     <details key="INVARIANT_CONSTRAINTS" value="PROCESS"/>
-    <details key="UNION_PROPERTIES" value="REPORT"/>
-    <details key="DUPLICATE_OPERATIONS" value="DISCARD"/>
-    <details key="NON_API_INVARIANTS" value="IGNORE"/>
-    <details key="CAMEL_CASE_NAMES" value="IGNORE"/>
-    <details key="SUBSETTING_PROPERTIES" value="REPORT"/>
-    <details key="OPERATION_BODIES" value="IGNORE"/>
+    <details key="UNION_PROPERTIES" value="PROCESS"/>
+    <details key="DUPLICATE_OPERATIONS" value="PROCESS"/>
+    <details key="NON_API_INVARIANTS" value="PROCESS"/>
+    <details key="CAMEL_CASE_NAMES" value="PROCESS"/>
+    <details key="SUBSETTING_PROPERTIES" value="PROCESS"/>
+    <details key="OPERATION_BODIES" value="PROCESS"/>
     <details key="ECORE_TAGGED_VALUES" value="PROCESS"/>
-    <details key="UNTYPED_PROPERTIES" value="REPORT"/>
-    <details key="REDEFINING_PROPERTIES" value="REPORT"/>
-    <details key="INVOCATION_DELEGATES" value="IGNORE"/>
-    <details key="VALIDATION_DELEGATES" value="IGNORE"/>
+    <details key="UNTYPED_PROPERTIES" value="PROCESS"/>
+    <details key="REDEFINING_PROPERTIES" value="PROCESS"/>
+    <details key="INVOCATION_DELEGATES" value="PROCESS"/>
+    <details key="VALIDATION_DELEGATES" value="PROCESS"/>
   </genAnnotations>
-  <foreignModel>formalml.ecore</foreignModel>
+  <foreignModel>FormalML.profile.uml</foreignModel>
   <genPackages xsi:type="genmodel:GenPackage" prefix="formalml" basePackage="org.eclipse.efm"
       disposableProviderFactory="true" ecorePackage="formalml.ecore#/">
-    <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="formalml.ecore#//VariableDirectionKind">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//VariableDirectionKind/inout"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//VariableDirectionKind/in"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//VariableDirectionKind/out"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//VariableDirectionKind/intern"/>
-    </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="formalml.ecore#//PortDirectionKind">
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//PortDirectionKind/inout"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//PortDirectionKind/in"/>
       <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//PortDirectionKind/out"/>
     </genEnums>
     <genEnums xsi:type="genmodel:GenEnum" typeSafeEnumCompatible="false" ecoreEnum="formalml.ecore#//BufferKind">
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/FIFO"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/LIFO"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/MULTISET"/>
-      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/RAM"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/fifo"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/lifo"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/multiset"/>
+      <genEnumLiterals xsi:type="genmodel:GenEnumLiteral" ecoreEnumLiteral="formalml.ecore#//BufferKind/ram"/>
     </genEnums>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//ClockVar">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//Clock">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ClockVar/base_Property"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//Clock/baseProperty"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FormalContext">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//Configuration">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalContext/env"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//FormalContext/timed"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//FormalContext/input_enabled"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//Configuration/env"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//Configuration/timed"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//Configuration/inputEnabled"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="formalml.ecore#//AbstractBlock">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FormalBlock">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//AbstractBlock/base_Class"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalBlock/baseClass"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//AbstractBlock/routingBehavior"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalBlock/routingBehavior"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//TimedTransition">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//TimedTransition/tguard"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//TimedTransition/base_Transition"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//TimedTransition/baseTransition"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FormalPart">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//Part">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalPart/base_Property"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//Part/baseProperty"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalPart/instance"/>
-    </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FlowVariable">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FlowVariable/base_Property"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//FlowVariable/DirectionKind"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//Part/instance"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//ReceiveAnyEvent">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveAnyEvent/base_AnyReceiveEvent"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveAnyEvent/baseAnyReceiveEvent"/>
     </genClasses>
     <genClasses xsi:type="genmodel:GenClass" image="false" ecoreClass="formalml.ecore#//ReceiveEvent">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
           propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveEvent/parameters"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FormalModel">
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalModel/base_Model"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//FormalModel/xversion"/>
-      <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FormalModel/mainContext"/>
-    </genClasses>
     <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//ReceiveSignalEvent">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveSignalEvent/base_AnyReceiveEvent"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveSignalEvent/baseAnyReceiveEvent"/>
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveSignalEvent/base_SignalEvent"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//ReceiveSignalEvent/baseSignalEvent"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FlowPort">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//DirectedPort">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//FlowPort/base_Port"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//FlowPort/direction"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//DirectedPort/basePort"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//DirectedPort/direction"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//BufferVar">
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//Buffer">
       <genFeatures xsi:type="genmodel:GenFeature" notify="false" createChild="false"
-          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//BufferVar/base_Property"/>
-      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//BufferVar/kind"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference formalml.ecore#//Buffer/baseProperty"/>
+      <genFeatures xsi:type="genmodel:GenFeature" createChild="false" ecoreFeature="ecore:EAttribute formalml.ecore#//Buffer/kind"/>
     </genClasses>
-    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//FormalBlock"/>
+    <genClasses xsi:type="genmodel:GenClass" ecoreClass="formalml.ecore#//Block"/>
   </genPackages>
 </genmodel:GenModel>
diff --git a/core/org.eclipse.efm.formalml/resources/profile/formalml.ecore b/core/org.eclipse.efm.formalml/resources/profile/formalml.ecore
index 6ed9514..62cddd0 100644
--- a/core/org.eclipse.efm.formalml/resources/profile/formalml.ecore
+++ b/core/org.eclipse.efm.formalml/resources/profile/formalml.ecore
@@ -4,79 +4,115 @@
   <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
     <details key="originalName" value="fml"/>
   </eAnnotations>
-  <eClassifiers xsi:type="ecore:EClass" name="ClockVar">
+  <eClassifiers xsi:type="ecore:EClass" name="Clock">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Properties in clocks shall have a type stereotype by [to define:TimedType]&#xD;&#xA;Reset is the only allowed action on properties in clock&#xD;&#xA;"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseProperty" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Property"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_ClockVar"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FormalContext" eSuperTypes="#//AbstractBlock">
+  <eClassifiers xsi:type="ecore:EClass" name="Configuration" eSuperTypes="#//FormalBlock">
     <eStructuralFeatures xsi:type="ecore:EReference" name="env" ordered="false" upperBound="-1"
         eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="timed" ordered="false"
         lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
         defaultValueLiteral="false"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="input_enabled" ordered="false"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inputEnabled" ordered="false"
         lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//Boolean"
-        defaultValueLiteral="false"/>
+        defaultValueLiteral="false">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="input_enabled"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="AbstractBlock" abstract="true">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Class" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
+  <eClassifiers xsi:type="ecore:EClass" name="FormalBlock" abstract="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseClass" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Class">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Class"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_FormalBlock"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="routingBehavior" ordered="false"
         eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//OpaqueBehavior"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TimedTransition">
     <eStructuralFeatures xsi:type="ecore:EReference" name="tguard" ordered="false"
         eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Constraint"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Transition" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Transition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseTransition" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Transition">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Transition"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_Transition"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FormalPart">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Part">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseProperty" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Property"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_BlockPart"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="instance" ordered="false"
         upperBound="-1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//InstanceSpecification"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FlowVariable">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="DirectionKind" ordered="false"
-        lowerBound="1" eType="#//VariableDirectionKind"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="VariableDirectionKind">
-    <eLiterals name="inout"/>
-    <eLiterals name="in" value="1"/>
-    <eLiterals name="out" value="2"/>
-    <eLiterals name="intern" value="3"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReceiveAnyEvent" eSuperTypes="#//ReceiveEvent">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_AnyReceiveEvent" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//AnyReceiveEvent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseAnyReceiveEvent" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//AnyReceiveEvent">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_AnyReceiveEvent"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_ReceiveAnyEvent"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReceiveEvent" abstract="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" ordered="false"
         lowerBound="1" upperBound="-1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FormalModel">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Model" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Model"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="xversion" ordered="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.uml2.types/model/Types.ecore#//String"
-        defaultValueLiteral="1.0"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="mainContext" ordered="false"
-        eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Class"/>
-  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReceiveSignalEvent" eSuperTypes="#//ReceiveEvent">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_AnyReceiveEvent" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//AnyReceiveEvent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_SignalEvent" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//SignalEvent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseAnyReceiveEvent" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//AnyReceiveEvent">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_AnyReceiveEvent"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseSignalEvent" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//SignalEvent">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_SignalEvent"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_ReceiveSignalEvent"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FlowPort">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Port" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Port"/>
+  <eClassifiers xsi:type="ecore:EClass" name="DirectedPort">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="basePort" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Port">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Port"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_FlowPort"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
         lowerBound="1" eType="#//PortDirectionKind"/>
   </eClassifiers>
@@ -85,17 +121,40 @@
     <eLiterals name="in" value="1"/>
     <eLiterals name="out" value="2"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="BufferVar">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="base_Property" ordered="false"
-        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Buffer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="baseProperty" ordered="false"
+        lowerBound="1" eType="ecore:EClass ../../../org.eclipse.uml2.uml/model/UML.ecore#//Property">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="base_Property"/>
+      </eAnnotations>
+      <eAnnotations source="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName">
+        <details key="body" value="extension_BufferVar"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" ordered="false" lowerBound="1"
         eType="#//BufferKind"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="BufferKind">
-    <eLiterals name="FIFO"/>
-    <eLiterals name="LIFO" value="1"/>
-    <eLiterals name="MULTISET" value="2"/>
-    <eLiterals name="RAM" value="3"/>
+    <eLiterals name="fifo">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="FIFO"/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="lifo" value="1">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="LIFO"/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="multiset" value="2">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="MULTISET"/>
+      </eAnnotations>
+    </eLiterals>
+    <eLiterals name="ram" value="3">
+      <eAnnotations source="http://www.eclipse.org/uml2/2.0.0/UML">
+        <details key="originalName" value="RAM"/>
+      </eAnnotations>
+    </eLiterals>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FormalBlock" eSuperTypes="#//AbstractBlock"/>
+  <eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//FormalBlock"/>
 </ecore:EPackage>
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Buffer.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Buffer.java
index 0184ae7..ba3b921 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Buffer.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Buffer.java
@@ -22,7 +22,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.Buffer#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.Buffer#getBaseProperty <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.Buffer#getKind <em>Kind</em>}</li>
  * </ul>
  *
@@ -40,22 +40,24 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getBuffer_Base_Property()
+	 * @see #setBaseProperty(Property)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getBuffer_BaseProperty()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Property'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_BufferVar'"
 	 * @generated
 	 */
-	Property getBase_Property();
+	Property getBaseProperty();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.Buffer#getBase_Property <em>Base Property</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.Buffer#getBaseProperty <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 */
-	void setBase_Property(Property value);
+	void setBaseProperty(Property value);
 
 	/**
 	 * Returns the value of the '<em><b>Kind</b></em>' attribute.
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/BufferKind.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/BufferKind.java
index 60ece25..1994dae 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/BufferKind.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/BufferKind.java
@@ -26,47 +26,47 @@
  */
 public enum BufferKind implements Enumerator {
 	/**
-	 * The '<em><b>FIFO</b></em>' literal object.
+	 * The '<em><b>Fifo</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #FIFO_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	FIFO(0, "FIFO", "FIFO"),
+	FIFO(0, "fifo", "fifo"),
 
 	/**
-	 * The '<em><b>LIFO</b></em>' literal object.
+	 * The '<em><b>Lifo</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #LIFO_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	LIFO(1, "LIFO", "LIFO"),
+	LIFO(1, "lifo", "lifo"),
 
 	/**
-	 * The '<em><b>MULTISET</b></em>' literal object.
+	 * The '<em><b>Multiset</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #MULTISET_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	MULTISET(2, "MULTISET", "MULTISET"),
+	MULTISET(2, "multiset", "multiset"),
 
 	/**
-	 * The '<em><b>RAM</b></em>' literal object.
+	 * The '<em><b>Ram</b></em>' literal object.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @see #RAM_VALUE
 	 * @generated
 	 * @ordered
 	 */
-	RAM(3, "RAM", "RAM");
+	RAM(3, "ram", "ram");
 
 	/**
-	 * The '<em><b>FIFO</b></em>' literal value.
+	 * The '<em><b>Fifo</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of '<em><b>FIFO</b></em>' literal object isn't clear,
@@ -74,14 +74,15 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #FIFO
-	 * @model
+	 * @model name="fifo"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='FIFO'"
 	 * @generated
 	 * @ordered
 	 */
 	public static final int FIFO_VALUE = 0;
 
 	/**
-	 * The '<em><b>LIFO</b></em>' literal value.
+	 * The '<em><b>Lifo</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of '<em><b>LIFO</b></em>' literal object isn't clear,
@@ -89,14 +90,15 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #LIFO
-	 * @model
+	 * @model name="lifo"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='LIFO'"
 	 * @generated
 	 * @ordered
 	 */
 	public static final int LIFO_VALUE = 1;
 
 	/**
-	 * The '<em><b>MULTISET</b></em>' literal value.
+	 * The '<em><b>Multiset</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of '<em><b>MULTISET</b></em>' literal object isn't clear,
@@ -104,14 +106,15 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #MULTISET
-	 * @model
+	 * @model name="multiset"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='MULTISET'"
 	 * @generated
 	 * @ordered
 	 */
 	public static final int MULTISET_VALUE = 2;
 
 	/**
-	 * The '<em><b>RAM</b></em>' literal value.
+	 * The '<em><b>Ram</b></em>' literal value.
 	 * <!-- begin-user-doc -->
 	 * <p>
 	 * If the meaning of '<em><b>RAM</b></em>' literal object isn't clear,
@@ -119,7 +122,8 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @see #RAM
-	 * @model
+	 * @model name="ram"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='RAM'"
 	 * @generated
 	 * @ordered
 	 */
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Clock.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Clock.java
index 4369ab9..eb599ec 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Clock.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Clock.java
@@ -28,7 +28,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.Clock#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.Clock#getBaseProperty <em>Base Property</em>}</li>
  * </ul>
  *
  * @see org.eclipse.efm.formalml.formalmlPackage#getClock()
@@ -45,21 +45,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getClock_Base_Property()
+	 * @see #setBaseProperty(Property)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getClock_BaseProperty()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Property'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_ClockVar'"
 	 * @generated
 	 */
-	Property getBase_Property();
+	Property getBaseProperty();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.Clock#getBase_Property <em>Base Property</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.Clock#getBaseProperty <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 */
-	void setBase_Property(Property value);
+	void setBaseProperty(Property value);
 
 } // Clock
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Configuration.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Configuration.java
index 343ba43..b232740 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Configuration.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Configuration.java
@@ -27,7 +27,7 @@
  * <ul>
  *   <li>{@link org.eclipse.efm.formalml.Configuration#getEnv <em>Env</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.Configuration#isTimed <em>Timed</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.Configuration#isInput_enabled <em>Input enabled</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.Configuration#isInputEnabled <em>Input Enabled</em>}</li>
  * </ul>
  *
  * @see org.eclipse.efm.formalml.formalmlPackage#getConfiguration()
@@ -105,30 +105,31 @@
 	void setTimed(boolean value);
 
 	/**
-	 * Returns the value of the '<em><b>Input enabled</b></em>' attribute.
+	 * Returns the value of the '<em><b>Input Enabled</b></em>' attribute.
 	 * The default value is <code>"false"</code>.
 	 * <!-- begin-user-doc -->
 	 * <p>
-	 * If the meaning of the '<em>Input enabled</em>' attribute isn't clear,
+	 * If the meaning of the '<em>Input Enabled</em>' attribute isn't clear,
 	 * there really should be more of a description here...
 	 * </p>
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Input enabled</em>' attribute.
-	 * @see #setInput_enabled(boolean)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getConfiguration_Input_enabled()
+	 * @return the value of the '<em>Input Enabled</em>' attribute.
+	 * @see #setInputEnabled(boolean)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getConfiguration_InputEnabled()
 	 * @model default="false" dataType="org.eclipse.uml2.types.Boolean" required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='input_enabled'"
 	 * @generated
 	 */
-	boolean isInput_enabled();
+	boolean isInputEnabled();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.Configuration#isInput_enabled <em>Input enabled</em>}' attribute.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.Configuration#isInputEnabled <em>Input Enabled</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Input enabled</em>' attribute.
-	 * @see #isInput_enabled()
+	 * @param value the new value of the '<em>Input Enabled</em>' attribute.
+	 * @see #isInputEnabled()
 	 * @generated
 	 */
-	void setInput_enabled(boolean value);
+	void setInputEnabled(boolean value);
 
 } // Configuration
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/DirectedPort.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/DirectedPort.java
index c3b1964..774baf0 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/DirectedPort.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/DirectedPort.java
@@ -22,7 +22,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.DirectedPort#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.DirectedPort#getBasePort <em>Base Port</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.DirectedPort#getDirection <em>Direction</em>}</li>
  * </ul>
  *
@@ -40,22 +40,24 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Port</em>' reference.
-	 * @see #setBase_Port(Port)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getDirectedPort_Base_Port()
+	 * @see #setBasePort(Port)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getDirectedPort_BasePort()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Port'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_FlowPort'"
 	 * @generated
 	 */
-	Port getBase_Port();
+	Port getBasePort();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.DirectedPort#getBase_Port <em>Base Port</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.DirectedPort#getBasePort <em>Base Port</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Port</em>' reference.
-	 * @see #getBase_Port()
+	 * @see #getBasePort()
 	 * @generated
 	 */
-	void setBase_Port(Port value);
+	void setBasePort(Port value);
 
 	/**
 	 * Returns the value of the '<em><b>Direction</b></em>' attribute.
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/FormalBlock.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/FormalBlock.java
index adcbb08..c38efe0 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/FormalBlock.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/FormalBlock.java
@@ -22,7 +22,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.FormalBlock#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.FormalBlock#getBaseClass <em>Base Class</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.FormalBlock#getRoutingBehavior <em>Routing Behavior</em>}</li>
  * </ul>
  *
@@ -40,22 +40,24 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Class</em>' reference.
-	 * @see #setBase_Class(org.eclipse.uml2.uml.Class)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getFormalBlock_Base_Class()
+	 * @see #setBaseClass(org.eclipse.uml2.uml.Class)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getFormalBlock_BaseClass()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Class'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_FormalBlock'"
 	 * @generated
 	 */
-	org.eclipse.uml2.uml.Class getBase_Class();
+	org.eclipse.uml2.uml.Class getBaseClass();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.FormalBlock#getBase_Class <em>Base Class</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.FormalBlock#getBaseClass <em>Base Class</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Class</em>' reference.
-	 * @see #getBase_Class()
+	 * @see #getBaseClass()
 	 * @generated
 	 */
-	void setBase_Class(org.eclipse.uml2.uml.Class value);
+	void setBaseClass(org.eclipse.uml2.uml.Class value);
 
 	/**
 	 * Returns the value of the '<em><b>Routing Behavior</b></em>' reference.
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Part.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Part.java
index 5464d9f..9d1a479 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Part.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/Part.java
@@ -26,7 +26,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.Part#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.Part#getBaseProperty <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.Part#getInstance <em>Instance</em>}</li>
  * </ul>
  *
@@ -44,22 +44,24 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Property</em>' reference.
-	 * @see #setBase_Property(Property)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getPart_Base_Property()
+	 * @see #setBaseProperty(Property)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getPart_BaseProperty()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Property'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_BlockPart'"
 	 * @generated
 	 */
-	Property getBase_Property();
+	Property getBaseProperty();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.Part#getBase_Property <em>Base Property</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.Part#getBaseProperty <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Property</em>' reference.
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 */
-	void setBase_Property(Property value);
+	void setBaseProperty(Property value);
 
 	/**
 	 * Returns the value of the '<em><b>Instance</b></em>' reference list.
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveAnyEvent.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveAnyEvent.java
index 3db2a62..4cb303e 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveAnyEvent.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveAnyEvent.java
@@ -20,7 +20,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}</li>
  * </ul>
  *
  * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveAnyEvent()
@@ -37,21 +37,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Any Receive Event</em>' reference.
-	 * @see #setBase_AnyReceiveEvent(AnyReceiveEvent)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveAnyEvent_Base_AnyReceiveEvent()
+	 * @see #setBaseAnyReceiveEvent(AnyReceiveEvent)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveAnyEvent_BaseAnyReceiveEvent()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_AnyReceiveEvent'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_ReceiveAnyEvent'"
 	 * @generated
 	 */
-	AnyReceiveEvent getBase_AnyReceiveEvent();
+	AnyReceiveEvent getBaseAnyReceiveEvent();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Any Receive Event</em>' reference.
-	 * @see #getBase_AnyReceiveEvent()
+	 * @see #getBaseAnyReceiveEvent()
 	 * @generated
 	 */
-	void setBase_AnyReceiveEvent(AnyReceiveEvent value);
+	void setBaseAnyReceiveEvent(AnyReceiveEvent value);
 
 } // ReceiveAnyEvent
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveSignalEvent.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveSignalEvent.java
index 818674b..11b7c67 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveSignalEvent.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/ReceiveSignalEvent.java
@@ -21,8 +21,8 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_SignalEvent <em>Base Signal Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseSignalEvent <em>Base Signal Event</em>}</li>
  * </ul>
  *
  * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveSignalEvent()
@@ -39,22 +39,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Any Receive Event</em>' reference.
-	 * @see #setBase_AnyReceiveEvent(AnyReceiveEvent)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveSignalEvent_Base_AnyReceiveEvent()
+	 * @see #setBaseAnyReceiveEvent(AnyReceiveEvent)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveSignalEvent_BaseAnyReceiveEvent()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_AnyReceiveEvent'"
 	 * @generated
 	 */
-	AnyReceiveEvent getBase_AnyReceiveEvent();
+	AnyReceiveEvent getBaseAnyReceiveEvent();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Any Receive Event</em>' reference.
-	 * @see #getBase_AnyReceiveEvent()
+	 * @see #getBaseAnyReceiveEvent()
 	 * @generated
 	 */
-	void setBase_AnyReceiveEvent(AnyReceiveEvent value);
+	void setBaseAnyReceiveEvent(AnyReceiveEvent value);
 
 	/**
 	 * Returns the value of the '<em><b>Base Signal Event</b></em>' reference.
@@ -65,21 +66,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Signal Event</em>' reference.
-	 * @see #setBase_SignalEvent(SignalEvent)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveSignalEvent_Base_SignalEvent()
+	 * @see #setBaseSignalEvent(SignalEvent)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getReceiveSignalEvent_BaseSignalEvent()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_SignalEvent'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_ReceiveSignalEvent'"
 	 * @generated
 	 */
-	SignalEvent getBase_SignalEvent();
+	SignalEvent getBaseSignalEvent();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_SignalEvent <em>Base Signal Event</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseSignalEvent <em>Base Signal Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Signal Event</em>' reference.
-	 * @see #getBase_SignalEvent()
+	 * @see #getBaseSignalEvent()
 	 * @generated
 	 */
-	void setBase_SignalEvent(SignalEvent value);
+	void setBaseSignalEvent(SignalEvent value);
 
 } // ReceiveSignalEvent
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/TimedTransition.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/TimedTransition.java
index 573a5cd..833d0b5 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/TimedTransition.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/TimedTransition.java
@@ -24,7 +24,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.efm.formalml.TimedTransition#getTguard <em>Tguard</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.TimedTransition#getBase_Transition <em>Base Transition</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.TimedTransition#getBaseTransition <em>Base Transition</em>}</li>
  * </ul>
  *
  * @see org.eclipse.efm.formalml.formalmlPackage#getTimedTransition()
@@ -67,21 +67,23 @@
 	 * </p>
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Base Transition</em>' reference.
-	 * @see #setBase_Transition(Transition)
-	 * @see org.eclipse.efm.formalml.formalmlPackage#getTimedTransition_Base_Transition()
+	 * @see #setBaseTransition(Transition)
+	 * @see org.eclipse.efm.formalml.formalmlPackage#getTimedTransition_BaseTransition()
 	 * @model required="true" ordered="false"
+	 *        annotation="http://www.eclipse.org/uml2/2.0.0/UML originalName='base_Transition'"
+	 *        annotation="http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName body='extension_Transition'"
 	 * @generated
 	 */
-	Transition getBase_Transition();
+	Transition getBaseTransition();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.efm.formalml.TimedTransition#getBase_Transition <em>Base Transition</em>}' reference.
+	 * Sets the value of the '{@link org.eclipse.efm.formalml.TimedTransition#getBaseTransition <em>Base Transition</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @param value the new value of the '<em>Base Transition</em>' reference.
-	 * @see #getBase_Transition()
+	 * @see #getBaseTransition()
 	 * @generated
 	 */
-	void setBase_Transition(Transition value);
+	void setBaseTransition(Transition value);
 
 } // TimedTransition
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/formalmlPackage.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/formalmlPackage.java
index a6a29c5..99cabba 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/formalmlPackage.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/formalmlPackage.java
@@ -195,7 +195,7 @@
 	int CONFIGURATION__TIMED = FORMAL_BLOCK_FEATURE_COUNT + 1;
 
 	/**
-	 * The feature id for the '<em><b>Input enabled</b></em>' attribute.
+	 * The feature id for the '<em><b>Input Enabled</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -621,15 +621,15 @@
 	EClass getClock();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Clock#getBase_Property <em>Base Property</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Clock#getBaseProperty <em>Base Property</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.efm.formalml.Clock#getBase_Property()
+	 * @see org.eclipse.efm.formalml.Clock#getBaseProperty()
 	 * @see #getClock()
 	 * @generated
 	 */
-	EReference getClock_Base_Property();
+	EReference getClock_BaseProperty();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.efm.formalml.Configuration <em>Configuration</em>}'.
@@ -664,15 +664,15 @@
 	EAttribute getConfiguration_Timed();
 
 	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.efm.formalml.Configuration#isInput_enabled <em>Input enabled</em>}'.
+	 * Returns the meta object for the attribute '{@link org.eclipse.efm.formalml.Configuration#isInputEnabled <em>Input Enabled</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Input enabled</em>'.
-	 * @see org.eclipse.efm.formalml.Configuration#isInput_enabled()
+	 * @return the meta object for the attribute '<em>Input Enabled</em>'.
+	 * @see org.eclipse.efm.formalml.Configuration#isInputEnabled()
 	 * @see #getConfiguration()
 	 * @generated
 	 */
-	EAttribute getConfiguration_Input_enabled();
+	EAttribute getConfiguration_InputEnabled();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.efm.formalml.FormalBlock <em>Formal Block</em>}'.
@@ -685,15 +685,15 @@
 	EClass getFormalBlock();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.FormalBlock#getBase_Class <em>Base Class</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.FormalBlock#getBaseClass <em>Base Class</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Class</em>'.
-	 * @see org.eclipse.efm.formalml.FormalBlock#getBase_Class()
+	 * @see org.eclipse.efm.formalml.FormalBlock#getBaseClass()
 	 * @see #getFormalBlock()
 	 * @generated
 	 */
-	EReference getFormalBlock_Base_Class();
+	EReference getFormalBlock_BaseClass();
 
 	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.FormalBlock#getRoutingBehavior <em>Routing Behavior</em>}'.
@@ -728,15 +728,15 @@
 	EReference getTimedTransition_Tguard();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.TimedTransition#getBase_Transition <em>Base Transition</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.TimedTransition#getBaseTransition <em>Base Transition</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Transition</em>'.
-	 * @see org.eclipse.efm.formalml.TimedTransition#getBase_Transition()
+	 * @see org.eclipse.efm.formalml.TimedTransition#getBaseTransition()
 	 * @see #getTimedTransition()
 	 * @generated
 	 */
-	EReference getTimedTransition_Base_Transition();
+	EReference getTimedTransition_BaseTransition();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.efm.formalml.Part <em>Part</em>}'.
@@ -749,15 +749,15 @@
 	EClass getPart();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Part#getBase_Property <em>Base Property</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Part#getBaseProperty <em>Base Property</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.efm.formalml.Part#getBase_Property()
+	 * @see org.eclipse.efm.formalml.Part#getBaseProperty()
 	 * @see #getPart()
 	 * @generated
 	 */
-	EReference getPart_Base_Property();
+	EReference getPart_BaseProperty();
 
 	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.efm.formalml.Part#getInstance <em>Instance</em>}'.
@@ -781,15 +781,15 @@
 	EClass getReceiveAnyEvent();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveAnyEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Any Receive Event</em>'.
-	 * @see org.eclipse.efm.formalml.ReceiveAnyEvent#getBase_AnyReceiveEvent()
+	 * @see org.eclipse.efm.formalml.ReceiveAnyEvent#getBaseAnyReceiveEvent()
 	 * @see #getReceiveAnyEvent()
 	 * @generated
 	 */
-	EReference getReceiveAnyEvent_Base_AnyReceiveEvent();
+	EReference getReceiveAnyEvent_BaseAnyReceiveEvent();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.efm.formalml.ReceiveEvent <em>Receive Event</em>}'.
@@ -823,26 +823,26 @@
 	EClass getReceiveSignalEvent();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Any Receive Event</em>'.
-	 * @see org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_AnyReceiveEvent()
+	 * @see org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseAnyReceiveEvent()
 	 * @see #getReceiveSignalEvent()
 	 * @generated
 	 */
-	EReference getReceiveSignalEvent_Base_AnyReceiveEvent();
+	EReference getReceiveSignalEvent_BaseAnyReceiveEvent();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_SignalEvent <em>Base Signal Event</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseSignalEvent <em>Base Signal Event</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Signal Event</em>'.
-	 * @see org.eclipse.efm.formalml.ReceiveSignalEvent#getBase_SignalEvent()
+	 * @see org.eclipse.efm.formalml.ReceiveSignalEvent#getBaseSignalEvent()
 	 * @see #getReceiveSignalEvent()
 	 * @generated
 	 */
-	EReference getReceiveSignalEvent_Base_SignalEvent();
+	EReference getReceiveSignalEvent_BaseSignalEvent();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.efm.formalml.DirectedPort <em>Directed Port</em>}'.
@@ -855,15 +855,15 @@
 	EClass getDirectedPort();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.DirectedPort#getBase_Port <em>Base Port</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.DirectedPort#getBasePort <em>Base Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Port</em>'.
-	 * @see org.eclipse.efm.formalml.DirectedPort#getBase_Port()
+	 * @see org.eclipse.efm.formalml.DirectedPort#getBasePort()
 	 * @see #getDirectedPort()
 	 * @generated
 	 */
-	EReference getDirectedPort_Base_Port();
+	EReference getDirectedPort_BasePort();
 
 	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.efm.formalml.DirectedPort#getDirection <em>Direction</em>}'.
@@ -887,15 +887,15 @@
 	EClass getBuffer();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Buffer#getBase_Property <em>Base Property</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.efm.formalml.Buffer#getBaseProperty <em>Base Property</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Base Property</em>'.
-	 * @see org.eclipse.efm.formalml.Buffer#getBase_Property()
+	 * @see org.eclipse.efm.formalml.Buffer#getBaseProperty()
 	 * @see #getBuffer()
 	 * @generated
 	 */
-	EReference getBuffer_Base_Property();
+	EReference getBuffer_BaseProperty();
 
 	/**
 	 * Returns the meta object for the attribute '{@link org.eclipse.efm.formalml.Buffer#getKind <em>Kind</em>}'.
@@ -977,7 +977,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference CLOCK__BASE_PROPERTY = eINSTANCE.getClock_Base_Property();
+		EReference CLOCK__BASE_PROPERTY = eINSTANCE.getClock_BaseProperty();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.efm.formalml.impl.ConfigurationImpl <em>Configuration</em>}' class.
@@ -1006,12 +1006,12 @@
 		EAttribute CONFIGURATION__TIMED = eINSTANCE.getConfiguration_Timed();
 
 		/**
-		 * The meta object literal for the '<em><b>Input enabled</b></em>' attribute feature.
+		 * The meta object literal for the '<em><b>Input Enabled</b></em>' attribute feature.
 		 * <!-- begin-user-doc -->
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EAttribute CONFIGURATION__INPUT_ENABLED = eINSTANCE.getConfiguration_Input_enabled();
+		EAttribute CONFIGURATION__INPUT_ENABLED = eINSTANCE.getConfiguration_InputEnabled();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.efm.formalml.impl.FormalBlockImpl <em>Formal Block</em>}' class.
@@ -1029,7 +1029,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference FORMAL_BLOCK__BASE_CLASS = eINSTANCE.getFormalBlock_Base_Class();
+		EReference FORMAL_BLOCK__BASE_CLASS = eINSTANCE.getFormalBlock_BaseClass();
 
 		/**
 		 * The meta object literal for the '<em><b>Routing Behavior</b></em>' reference feature.
@@ -1063,7 +1063,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference TIMED_TRANSITION__BASE_TRANSITION = eINSTANCE.getTimedTransition_Base_Transition();
+		EReference TIMED_TRANSITION__BASE_TRANSITION = eINSTANCE.getTimedTransition_BaseTransition();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.efm.formalml.impl.PartImpl <em>Part</em>}' class.
@@ -1081,7 +1081,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference PART__BASE_PROPERTY = eINSTANCE.getPart_Base_Property();
+		EReference PART__BASE_PROPERTY = eINSTANCE.getPart_BaseProperty();
 
 		/**
 		 * The meta object literal for the '<em><b>Instance</b></em>' reference list feature.
@@ -1107,7 +1107,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT = eINSTANCE.getReceiveAnyEvent_Base_AnyReceiveEvent();
+		EReference RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT = eINSTANCE.getReceiveAnyEvent_BaseAnyReceiveEvent();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.efm.formalml.impl.ReceiveEventImpl <em>Receive Event</em>}' class.
@@ -1143,7 +1143,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT = eINSTANCE.getReceiveSignalEvent_Base_AnyReceiveEvent();
+		EReference RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT = eINSTANCE.getReceiveSignalEvent_BaseAnyReceiveEvent();
 
 		/**
 		 * The meta object literal for the '<em><b>Base Signal Event</b></em>' reference feature.
@@ -1151,7 +1151,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT = eINSTANCE.getReceiveSignalEvent_Base_SignalEvent();
+		EReference RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT = eINSTANCE.getReceiveSignalEvent_BaseSignalEvent();
 
 		/**
 		 * The meta object literal for the '{@link org.eclipse.efm.formalml.impl.DirectedPortImpl <em>Directed Port</em>}' class.
@@ -1169,7 +1169,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference DIRECTED_PORT__BASE_PORT = eINSTANCE.getDirectedPort_Base_Port();
+		EReference DIRECTED_PORT__BASE_PORT = eINSTANCE.getDirectedPort_BasePort();
 
 		/**
 		 * The meta object literal for the '<em><b>Direction</b></em>' attribute feature.
@@ -1195,7 +1195,7 @@
 		 * <!-- end-user-doc -->
 		 * @generated
 		 */
-		EReference BUFFER__BASE_PROPERTY = eINSTANCE.getBuffer_Base_Property();
+		EReference BUFFER__BASE_PROPERTY = eINSTANCE.getBuffer_BaseProperty();
 
 		/**
 		 * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/BufferImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/BufferImpl.java
index 09ca356..3a453c4 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/BufferImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/BufferImpl.java
@@ -31,7 +31,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.BufferImpl#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.BufferImpl#getBaseProperty <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.impl.BufferImpl#getKind <em>Kind</em>}</li>
  * </ul>
  *
@@ -39,14 +39,14 @@
  */
 public class BufferImpl extends MinimalEObjectImpl.Container implements Buffer {
 	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * The cached value of the '{@link #getBaseProperty() <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected Property base_Property;
+	protected Property baseProperty;
 
 	/**
 	 * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
@@ -92,16 +92,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
+	public Property getBaseProperty() {
+		if (baseProperty != null && baseProperty.eIsProxy()) {
+			InternalEObject oldBaseProperty = (InternalEObject)baseProperty;
+			baseProperty = (Property)eResolveProxy(oldBaseProperty);
+			if (baseProperty != oldBaseProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.BUFFER__BASE_PROPERTY, oldBase_Property, base_Property));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.BUFFER__BASE_PROPERTY, oldBaseProperty, baseProperty));
 			}
 		}
-		return base_Property;
+		return baseProperty;
 	}
 
 	/**
@@ -109,8 +109,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
+	public Property basicGetBaseProperty() {
+		return baseProperty;
 	}
 
 	/**
@@ -118,11 +118,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
+	public void setBaseProperty(Property newBaseProperty) {
+		Property oldBaseProperty = baseProperty;
+		baseProperty = newBaseProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.BUFFER__BASE_PROPERTY, oldBase_Property, base_Property));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.BUFFER__BASE_PROPERTY, oldBaseProperty, baseProperty));
 	}
 
 	/**
@@ -155,8 +155,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.BUFFER__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
+				if (resolve) return getBaseProperty();
+				return basicGetBaseProperty();
 			case formalmlPackage.BUFFER__KIND:
 				return getKind();
 		}
@@ -172,7 +172,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.BUFFER__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
+				setBaseProperty((Property)newValue);
 				return;
 			case formalmlPackage.BUFFER__KIND:
 				setKind((BufferKind)newValue);
@@ -190,7 +190,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.BUFFER__BASE_PROPERTY:
-				setBase_Property((Property)null);
+				setBaseProperty((Property)null);
 				return;
 			case formalmlPackage.BUFFER__KIND:
 				setKind(KIND_EDEFAULT);
@@ -208,7 +208,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.BUFFER__BASE_PROPERTY:
-				return base_Property != null;
+				return baseProperty != null;
 			case formalmlPackage.BUFFER__KIND:
 				return kind != KIND_EDEFAULT;
 		}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ClockImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ClockImpl.java
index 088fee3..6bb4e5e 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ClockImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ClockImpl.java
@@ -30,22 +30,21 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.ClockImpl#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.ClockImpl#getBaseProperty <em>Base Property</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class ClockImpl extends MinimalEObjectImpl.Container implements Clock {
 	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * The cached value of the '{@link #getBaseProperty() <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected Property base_Property;
-
+	protected Property baseProperty;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -70,16 +69,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
+	public Property getBaseProperty() {
+		if (baseProperty != null && baseProperty.eIsProxy()) {
+			InternalEObject oldBaseProperty = (InternalEObject)baseProperty;
+			baseProperty = (Property)eResolveProxy(oldBaseProperty);
+			if (baseProperty != oldBaseProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.CLOCK__BASE_PROPERTY, oldBase_Property, base_Property));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.CLOCK__BASE_PROPERTY, oldBaseProperty, baseProperty));
 			}
 		}
-		return base_Property;
+		return baseProperty;
 	}
 
 	/**
@@ -87,8 +86,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
+	public Property basicGetBaseProperty() {
+		return baseProperty;
 	}
 
 	/**
@@ -96,11 +95,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
+	public void setBaseProperty(Property newBaseProperty) {
+		Property oldBaseProperty = baseProperty;
+		baseProperty = newBaseProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.CLOCK__BASE_PROPERTY, oldBase_Property, base_Property));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.CLOCK__BASE_PROPERTY, oldBaseProperty, baseProperty));
 	}
 
 	/**
@@ -112,8 +111,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.CLOCK__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
+				if (resolve) return getBaseProperty();
+				return basicGetBaseProperty();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -127,7 +126,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.CLOCK__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
+				setBaseProperty((Property)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -142,7 +141,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.CLOCK__BASE_PROPERTY:
-				setBase_Property((Property)null);
+				setBaseProperty((Property)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -157,7 +156,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.CLOCK__BASE_PROPERTY:
-				return base_Property != null;
+				return baseProperty != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ConfigurationImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ConfigurationImpl.java
index 35d7c4f..6122f7d 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ConfigurationImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ConfigurationImpl.java
@@ -37,7 +37,7 @@
  * <ul>
  *   <li>{@link org.eclipse.efm.formalml.impl.ConfigurationImpl#getEnv <em>Env</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.impl.ConfigurationImpl#isTimed <em>Timed</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.impl.ConfigurationImpl#isInput_enabled <em>Input enabled</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.ConfigurationImpl#isInputEnabled <em>Input Enabled</em>}</li>
  * </ul>
  *
  * @generated
@@ -74,24 +74,24 @@
 	protected boolean timed = TIMED_EDEFAULT;
 
 	/**
-	 * The default value of the '{@link #isInput_enabled() <em>Input enabled</em>}' attribute.
+	 * The default value of the '{@link #isInputEnabled() <em>Input Enabled</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #isInput_enabled()
+	 * @see #isInputEnabled()
 	 * @generated
 	 * @ordered
 	 */
 	protected static final boolean INPUT_ENABLED_EDEFAULT = false;
 
 	/**
-	 * The cached value of the '{@link #isInput_enabled() <em>Input enabled</em>}' attribute.
+	 * The cached value of the '{@link #isInputEnabled() <em>Input Enabled</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #isInput_enabled()
+	 * @see #isInputEnabled()
 	 * @generated
 	 * @ordered
 	 */
-	protected boolean input_enabled = INPUT_ENABLED_EDEFAULT;
+	protected boolean inputEnabled = INPUT_ENABLED_EDEFAULT;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -177,8 +177,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean isInput_enabled() {
-		return input_enabled;
+	public boolean isInputEnabled() {
+		return inputEnabled;
 	}
 
 	/**
@@ -186,11 +186,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setInput_enabled(boolean newInput_enabled) {
-		boolean oldInput_enabled = input_enabled;
-		input_enabled = newInput_enabled;
+	public void setInputEnabled(boolean newInputEnabled) {
+		boolean oldInputEnabled = inputEnabled;
+		inputEnabled = newInputEnabled;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.CONFIGURATION__INPUT_ENABLED, oldInput_enabled, input_enabled));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.CONFIGURATION__INPUT_ENABLED, oldInputEnabled, inputEnabled));
 	}
 
 	/**
@@ -206,7 +206,7 @@
 			case formalmlPackage.CONFIGURATION__TIMED:
 				return isTimed();
 			case formalmlPackage.CONFIGURATION__INPUT_ENABLED:
-				return isInput_enabled();
+				return isInputEnabled();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -228,7 +228,7 @@
 				setTimed((Boolean)newValue);
 				return;
 			case formalmlPackage.CONFIGURATION__INPUT_ENABLED:
-				setInput_enabled((Boolean)newValue);
+				setInputEnabled((Boolean)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -249,7 +249,7 @@
 				setTimed(TIMED_EDEFAULT);
 				return;
 			case formalmlPackage.CONFIGURATION__INPUT_ENABLED:
-				setInput_enabled(INPUT_ENABLED_EDEFAULT);
+				setInputEnabled(INPUT_ENABLED_EDEFAULT);
 				return;
 		}
 		super.eUnset(featureID);
@@ -268,7 +268,7 @@
 			case formalmlPackage.CONFIGURATION__TIMED:
 				return timed != TIMED_EDEFAULT;
 			case formalmlPackage.CONFIGURATION__INPUT_ENABLED:
-				return input_enabled != INPUT_ENABLED_EDEFAULT;
+				return inputEnabled != INPUT_ENABLED_EDEFAULT;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -285,8 +285,8 @@
 		StringBuffer result = new StringBuffer(super.toString());
 		result.append(" (timed: ");
 		result.append(timed);
-		result.append(", input_enabled: ");
-		result.append(input_enabled);
+		result.append(", inputEnabled: ");
+		result.append(inputEnabled);
 		result.append(')');
 		return result.toString();
 	}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/DirectedPortImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/DirectedPortImpl.java
index 51009a4..02881c9 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/DirectedPortImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/DirectedPortImpl.java
@@ -31,7 +31,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.DirectedPortImpl#getBase_Port <em>Base Port</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.DirectedPortImpl#getBasePort <em>Base Port</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.impl.DirectedPortImpl#getDirection <em>Direction</em>}</li>
  * </ul>
  *
@@ -39,14 +39,14 @@
  */
 public class DirectedPortImpl extends MinimalEObjectImpl.Container implements DirectedPort {
 	/**
-	 * The cached value of the '{@link #getBase_Port() <em>Base Port</em>}' reference.
+	 * The cached value of the '{@link #getBasePort() <em>Base Port</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Port()
+	 * @see #getBasePort()
 	 * @generated
 	 * @ordered
 	 */
-	protected Port base_Port;
+	protected Port basePort;
 
 	/**
 	 * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
@@ -92,16 +92,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port getBase_Port() {
-		if (base_Port != null && base_Port.eIsProxy()) {
-			InternalEObject oldBase_Port = (InternalEObject)base_Port;
-			base_Port = (Port)eResolveProxy(oldBase_Port);
-			if (base_Port != oldBase_Port) {
+	public Port getBasePort() {
+		if (basePort != null && basePort.eIsProxy()) {
+			InternalEObject oldBasePort = (InternalEObject)basePort;
+			basePort = (Port)eResolveProxy(oldBasePort);
+			if (basePort != oldBasePort) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.DIRECTED_PORT__BASE_PORT, oldBase_Port, base_Port));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.DIRECTED_PORT__BASE_PORT, oldBasePort, basePort));
 			}
 		}
-		return base_Port;
+		return basePort;
 	}
 
 	/**
@@ -109,8 +109,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port basicGetBase_Port() {
-		return base_Port;
+	public Port basicGetBasePort() {
+		return basePort;
 	}
 
 	/**
@@ -118,11 +118,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Port(Port newBase_Port) {
-		Port oldBase_Port = base_Port;
-		base_Port = newBase_Port;
+	public void setBasePort(Port newBasePort) {
+		Port oldBasePort = basePort;
+		basePort = newBasePort;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.DIRECTED_PORT__BASE_PORT, oldBase_Port, base_Port));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.DIRECTED_PORT__BASE_PORT, oldBasePort, basePort));
 	}
 
 	/**
@@ -155,8 +155,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.DIRECTED_PORT__BASE_PORT:
-				if (resolve) return getBase_Port();
-				return basicGetBase_Port();
+				if (resolve) return getBasePort();
+				return basicGetBasePort();
 			case formalmlPackage.DIRECTED_PORT__DIRECTION:
 				return getDirection();
 		}
@@ -172,7 +172,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.DIRECTED_PORT__BASE_PORT:
-				setBase_Port((Port)newValue);
+				setBasePort((Port)newValue);
 				return;
 			case formalmlPackage.DIRECTED_PORT__DIRECTION:
 				setDirection((PortDirectionKind)newValue);
@@ -190,7 +190,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.DIRECTED_PORT__BASE_PORT:
-				setBase_Port((Port)null);
+				setBasePort((Port)null);
 				return;
 			case formalmlPackage.DIRECTED_PORT__DIRECTION:
 				setDirection(DIRECTION_EDEFAULT);
@@ -208,7 +208,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.DIRECTED_PORT__BASE_PORT:
-				return base_Port != null;
+				return basePort != null;
 			case formalmlPackage.DIRECTED_PORT__DIRECTION:
 				return direction != DIRECTION_EDEFAULT;
 		}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/FormalBlockImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/FormalBlockImpl.java
index dd341ce..96a215c 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/FormalBlockImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/FormalBlockImpl.java
@@ -30,7 +30,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.FormalBlockImpl#getBase_Class <em>Base Class</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.FormalBlockImpl#getBaseClass <em>Base Class</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.impl.FormalBlockImpl#getRoutingBehavior <em>Routing Behavior</em>}</li>
  * </ul>
  *
@@ -38,14 +38,14 @@
  */
 public abstract class FormalBlockImpl extends MinimalEObjectImpl.Container implements FormalBlock {
 	/**
-	 * The cached value of the '{@link #getBase_Class() <em>Base Class</em>}' reference.
+	 * The cached value of the '{@link #getBaseClass() <em>Base Class</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Class()
+	 * @see #getBaseClass()
 	 * @generated
 	 * @ordered
 	 */
-	protected org.eclipse.uml2.uml.Class base_Class;
+	protected org.eclipse.uml2.uml.Class baseClass;
 
 	/**
 	 * The cached value of the '{@link #getRoutingBehavior() <em>Routing Behavior</em>}' reference.
@@ -81,16 +81,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.eclipse.uml2.uml.Class getBase_Class() {
-		if (base_Class != null && base_Class.eIsProxy()) {
-			InternalEObject oldBase_Class = (InternalEObject)base_Class;
-			base_Class = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBase_Class);
-			if (base_Class != oldBase_Class) {
+	public org.eclipse.uml2.uml.Class getBaseClass() {
+		if (baseClass != null && baseClass.eIsProxy()) {
+			InternalEObject oldBaseClass = (InternalEObject)baseClass;
+			baseClass = (org.eclipse.uml2.uml.Class)eResolveProxy(oldBaseClass);
+			if (baseClass != oldBaseClass) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.FORMAL_BLOCK__BASE_CLASS, oldBase_Class, base_Class));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.FORMAL_BLOCK__BASE_CLASS, oldBaseClass, baseClass));
 			}
 		}
-		return base_Class;
+		return baseClass;
 	}
 
 	/**
@@ -98,8 +98,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public org.eclipse.uml2.uml.Class basicGetBase_Class() {
-		return base_Class;
+	public org.eclipse.uml2.uml.Class basicGetBaseClass() {
+		return baseClass;
 	}
 
 	/**
@@ -107,11 +107,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Class(org.eclipse.uml2.uml.Class newBase_Class) {
-		org.eclipse.uml2.uml.Class oldBase_Class = base_Class;
-		base_Class = newBase_Class;
+	public void setBaseClass(org.eclipse.uml2.uml.Class newBaseClass) {
+		org.eclipse.uml2.uml.Class oldBaseClass = baseClass;
+		baseClass = newBaseClass;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.FORMAL_BLOCK__BASE_CLASS, oldBase_Class, base_Class));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.FORMAL_BLOCK__BASE_CLASS, oldBaseClass, baseClass));
 	}
 
 	/**
@@ -161,8 +161,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.FORMAL_BLOCK__BASE_CLASS:
-				if (resolve) return getBase_Class();
-				return basicGetBase_Class();
+				if (resolve) return getBaseClass();
+				return basicGetBaseClass();
 			case formalmlPackage.FORMAL_BLOCK__ROUTING_BEHAVIOR:
 				if (resolve) return getRoutingBehavior();
 				return basicGetRoutingBehavior();
@@ -179,7 +179,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.FORMAL_BLOCK__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)newValue);
+				setBaseClass((org.eclipse.uml2.uml.Class)newValue);
 				return;
 			case formalmlPackage.FORMAL_BLOCK__ROUTING_BEHAVIOR:
 				setRoutingBehavior((OpaqueBehavior)newValue);
@@ -197,7 +197,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.FORMAL_BLOCK__BASE_CLASS:
-				setBase_Class((org.eclipse.uml2.uml.Class)null);
+				setBaseClass((org.eclipse.uml2.uml.Class)null);
 				return;
 			case formalmlPackage.FORMAL_BLOCK__ROUTING_BEHAVIOR:
 				setRoutingBehavior((OpaqueBehavior)null);
@@ -215,7 +215,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.FORMAL_BLOCK__BASE_CLASS:
-				return base_Class != null;
+				return baseClass != null;
 			case formalmlPackage.FORMAL_BLOCK__ROUTING_BEHAVIOR:
 				return routingBehavior != null;
 		}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/PartImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/PartImpl.java
index c9e95d5..13059ef 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/PartImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/PartImpl.java
@@ -37,7 +37,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.PartImpl#getBase_Property <em>Base Property</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.PartImpl#getBaseProperty <em>Base Property</em>}</li>
  *   <li>{@link org.eclipse.efm.formalml.impl.PartImpl#getInstance <em>Instance</em>}</li>
  * </ul>
  *
@@ -45,14 +45,14 @@
  */
 public class PartImpl extends MinimalEObjectImpl.Container implements Part {
 	/**
-	 * The cached value of the '{@link #getBase_Property() <em>Base Property</em>}' reference.
+	 * The cached value of the '{@link #getBaseProperty() <em>Base Property</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Property()
+	 * @see #getBaseProperty()
 	 * @generated
 	 * @ordered
 	 */
-	protected Property base_Property;
+	protected Property baseProperty;
 
 	/**
 	 * The cached value of the '{@link #getInstance() <em>Instance</em>}' reference list.
@@ -88,16 +88,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property getBase_Property() {
-		if (base_Property != null && base_Property.eIsProxy()) {
-			InternalEObject oldBase_Property = (InternalEObject)base_Property;
-			base_Property = (Property)eResolveProxy(oldBase_Property);
-			if (base_Property != oldBase_Property) {
+	public Property getBaseProperty() {
+		if (baseProperty != null && baseProperty.eIsProxy()) {
+			InternalEObject oldBaseProperty = (InternalEObject)baseProperty;
+			baseProperty = (Property)eResolveProxy(oldBaseProperty);
+			if (baseProperty != oldBaseProperty) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.PART__BASE_PROPERTY, oldBase_Property, base_Property));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.PART__BASE_PROPERTY, oldBaseProperty, baseProperty));
 			}
 		}
-		return base_Property;
+		return baseProperty;
 	}
 
 	/**
@@ -105,8 +105,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Property basicGetBase_Property() {
-		return base_Property;
+	public Property basicGetBaseProperty() {
+		return baseProperty;
 	}
 
 	/**
@@ -114,11 +114,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Property(Property newBase_Property) {
-		Property oldBase_Property = base_Property;
-		base_Property = newBase_Property;
+	public void setBaseProperty(Property newBaseProperty) {
+		Property oldBaseProperty = baseProperty;
+		baseProperty = newBaseProperty;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.PART__BASE_PROPERTY, oldBase_Property, base_Property));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.PART__BASE_PROPERTY, oldBaseProperty, baseProperty));
 	}
 
 	/**
@@ -167,8 +167,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.PART__BASE_PROPERTY:
-				if (resolve) return getBase_Property();
-				return basicGetBase_Property();
+				if (resolve) return getBaseProperty();
+				return basicGetBaseProperty();
 			case formalmlPackage.PART__INSTANCE:
 				return getInstance();
 		}
@@ -185,7 +185,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.PART__BASE_PROPERTY:
-				setBase_Property((Property)newValue);
+				setBaseProperty((Property)newValue);
 				return;
 			case formalmlPackage.PART__INSTANCE:
 				getInstance().clear();
@@ -204,7 +204,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.PART__BASE_PROPERTY:
-				setBase_Property((Property)null);
+				setBaseProperty((Property)null);
 				return;
 			case formalmlPackage.PART__INSTANCE:
 				getInstance().clear();
@@ -222,7 +222,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.PART__BASE_PROPERTY:
-				return base_Property != null;
+				return baseProperty != null;
 			case formalmlPackage.PART__INSTANCE:
 				return instance != null && !instance.isEmpty();
 		}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveAnyEventImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveAnyEventImpl.java
index d815c1a..c9671b5 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveAnyEventImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveAnyEventImpl.java
@@ -29,22 +29,21 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveAnyEventImpl#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveAnyEventImpl#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class ReceiveAnyEventImpl extends ReceiveEventImpl implements ReceiveAnyEvent {
 	/**
-	 * The cached value of the '{@link #getBase_AnyReceiveEvent() <em>Base Any Receive Event</em>}' reference.
+	 * The cached value of the '{@link #getBaseAnyReceiveEvent() <em>Base Any Receive Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_AnyReceiveEvent()
+	 * @see #getBaseAnyReceiveEvent()
 	 * @generated
 	 * @ordered
 	 */
-	protected AnyReceiveEvent base_AnyReceiveEvent;
-
+	protected AnyReceiveEvent baseAnyReceiveEvent;
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -69,16 +68,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnyReceiveEvent getBase_AnyReceiveEvent() {
-		if (base_AnyReceiveEvent != null && base_AnyReceiveEvent.eIsProxy()) {
-			InternalEObject oldBase_AnyReceiveEvent = (InternalEObject)base_AnyReceiveEvent;
-			base_AnyReceiveEvent = (AnyReceiveEvent)eResolveProxy(oldBase_AnyReceiveEvent);
-			if (base_AnyReceiveEvent != oldBase_AnyReceiveEvent) {
+	public AnyReceiveEvent getBaseAnyReceiveEvent() {
+		if (baseAnyReceiveEvent != null && baseAnyReceiveEvent.eIsProxy()) {
+			InternalEObject oldBaseAnyReceiveEvent = (InternalEObject)baseAnyReceiveEvent;
+			baseAnyReceiveEvent = (AnyReceiveEvent)eResolveProxy(oldBaseAnyReceiveEvent);
+			if (baseAnyReceiveEvent != oldBaseAnyReceiveEvent) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT, oldBaseAnyReceiveEvent, baseAnyReceiveEvent));
 			}
 		}
-		return base_AnyReceiveEvent;
+		return baseAnyReceiveEvent;
 	}
 
 	/**
@@ -86,8 +85,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnyReceiveEvent basicGetBase_AnyReceiveEvent() {
-		return base_AnyReceiveEvent;
+	public AnyReceiveEvent basicGetBaseAnyReceiveEvent() {
+		return baseAnyReceiveEvent;
 	}
 
 	/**
@@ -95,11 +94,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_AnyReceiveEvent(AnyReceiveEvent newBase_AnyReceiveEvent) {
-		AnyReceiveEvent oldBase_AnyReceiveEvent = base_AnyReceiveEvent;
-		base_AnyReceiveEvent = newBase_AnyReceiveEvent;
+	public void setBaseAnyReceiveEvent(AnyReceiveEvent newBaseAnyReceiveEvent) {
+		AnyReceiveEvent oldBaseAnyReceiveEvent = baseAnyReceiveEvent;
+		baseAnyReceiveEvent = newBaseAnyReceiveEvent;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT, oldBaseAnyReceiveEvent, baseAnyReceiveEvent));
 	}
 
 	/**
@@ -111,8 +110,8 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT:
-				if (resolve) return getBase_AnyReceiveEvent();
-				return basicGetBase_AnyReceiveEvent();
+				if (resolve) return getBaseAnyReceiveEvent();
+				return basicGetBaseAnyReceiveEvent();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -126,7 +125,7 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT:
-				setBase_AnyReceiveEvent((AnyReceiveEvent)newValue);
+				setBaseAnyReceiveEvent((AnyReceiveEvent)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -141,7 +140,7 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT:
-				setBase_AnyReceiveEvent((AnyReceiveEvent)null);
+				setBaseAnyReceiveEvent((AnyReceiveEvent)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -156,7 +155,7 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_ANY_EVENT__BASE_ANY_RECEIVE_EVENT:
-				return base_AnyReceiveEvent != null;
+				return baseAnyReceiveEvent != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveSignalEventImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveSignalEventImpl.java
index 4ac6adb..fc3c3e8 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveSignalEventImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/ReceiveSignalEventImpl.java
@@ -30,32 +30,32 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveSignalEventImpl#getBase_AnyReceiveEvent <em>Base Any Receive Event</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveSignalEventImpl#getBase_SignalEvent <em>Base Signal Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveSignalEventImpl#getBaseAnyReceiveEvent <em>Base Any Receive Event</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.ReceiveSignalEventImpl#getBaseSignalEvent <em>Base Signal Event</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class ReceiveSignalEventImpl extends ReceiveEventImpl implements ReceiveSignalEvent {
 	/**
-	 * The cached value of the '{@link #getBase_AnyReceiveEvent() <em>Base Any Receive Event</em>}' reference.
+	 * The cached value of the '{@link #getBaseAnyReceiveEvent() <em>Base Any Receive Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_AnyReceiveEvent()
+	 * @see #getBaseAnyReceiveEvent()
 	 * @generated
 	 * @ordered
 	 */
-	protected AnyReceiveEvent base_AnyReceiveEvent;
+	protected AnyReceiveEvent baseAnyReceiveEvent;
 
 	/**
-	 * The cached value of the '{@link #getBase_SignalEvent() <em>Base Signal Event</em>}' reference.
+	 * The cached value of the '{@link #getBaseSignalEvent() <em>Base Signal Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_SignalEvent()
+	 * @see #getBaseSignalEvent()
 	 * @generated
 	 * @ordered
 	 */
-	protected SignalEvent base_SignalEvent;
+	protected SignalEvent baseSignalEvent;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -81,16 +81,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnyReceiveEvent getBase_AnyReceiveEvent() {
-		if (base_AnyReceiveEvent != null && base_AnyReceiveEvent.eIsProxy()) {
-			InternalEObject oldBase_AnyReceiveEvent = (InternalEObject)base_AnyReceiveEvent;
-			base_AnyReceiveEvent = (AnyReceiveEvent)eResolveProxy(oldBase_AnyReceiveEvent);
-			if (base_AnyReceiveEvent != oldBase_AnyReceiveEvent) {
+	public AnyReceiveEvent getBaseAnyReceiveEvent() {
+		if (baseAnyReceiveEvent != null && baseAnyReceiveEvent.eIsProxy()) {
+			InternalEObject oldBaseAnyReceiveEvent = (InternalEObject)baseAnyReceiveEvent;
+			baseAnyReceiveEvent = (AnyReceiveEvent)eResolveProxy(oldBaseAnyReceiveEvent);
+			if (baseAnyReceiveEvent != oldBaseAnyReceiveEvent) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT, oldBaseAnyReceiveEvent, baseAnyReceiveEvent));
 			}
 		}
-		return base_AnyReceiveEvent;
+		return baseAnyReceiveEvent;
 	}
 
 	/**
@@ -98,8 +98,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public AnyReceiveEvent basicGetBase_AnyReceiveEvent() {
-		return base_AnyReceiveEvent;
+	public AnyReceiveEvent basicGetBaseAnyReceiveEvent() {
+		return baseAnyReceiveEvent;
 	}
 
 	/**
@@ -107,11 +107,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_AnyReceiveEvent(AnyReceiveEvent newBase_AnyReceiveEvent) {
-		AnyReceiveEvent oldBase_AnyReceiveEvent = base_AnyReceiveEvent;
-		base_AnyReceiveEvent = newBase_AnyReceiveEvent;
+	public void setBaseAnyReceiveEvent(AnyReceiveEvent newBaseAnyReceiveEvent) {
+		AnyReceiveEvent oldBaseAnyReceiveEvent = baseAnyReceiveEvent;
+		baseAnyReceiveEvent = newBaseAnyReceiveEvent;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT, oldBase_AnyReceiveEvent, base_AnyReceiveEvent));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT, oldBaseAnyReceiveEvent, baseAnyReceiveEvent));
 	}
 
 	/**
@@ -119,16 +119,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalEvent getBase_SignalEvent() {
-		if (base_SignalEvent != null && base_SignalEvent.eIsProxy()) {
-			InternalEObject oldBase_SignalEvent = (InternalEObject)base_SignalEvent;
-			base_SignalEvent = (SignalEvent)eResolveProxy(oldBase_SignalEvent);
-			if (base_SignalEvent != oldBase_SignalEvent) {
+	public SignalEvent getBaseSignalEvent() {
+		if (baseSignalEvent != null && baseSignalEvent.eIsProxy()) {
+			InternalEObject oldBaseSignalEvent = (InternalEObject)baseSignalEvent;
+			baseSignalEvent = (SignalEvent)eResolveProxy(oldBaseSignalEvent);
+			if (baseSignalEvent != oldBaseSignalEvent) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT, oldBase_SignalEvent, base_SignalEvent));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT, oldBaseSignalEvent, baseSignalEvent));
 			}
 		}
-		return base_SignalEvent;
+		return baseSignalEvent;
 	}
 
 	/**
@@ -136,8 +136,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SignalEvent basicGetBase_SignalEvent() {
-		return base_SignalEvent;
+	public SignalEvent basicGetBaseSignalEvent() {
+		return baseSignalEvent;
 	}
 
 	/**
@@ -145,11 +145,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_SignalEvent(SignalEvent newBase_SignalEvent) {
-		SignalEvent oldBase_SignalEvent = base_SignalEvent;
-		base_SignalEvent = newBase_SignalEvent;
+	public void setBaseSignalEvent(SignalEvent newBaseSignalEvent) {
+		SignalEvent oldBaseSignalEvent = baseSignalEvent;
+		baseSignalEvent = newBaseSignalEvent;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT, oldBase_SignalEvent, base_SignalEvent));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT, oldBaseSignalEvent, baseSignalEvent));
 	}
 
 	/**
@@ -161,11 +161,11 @@
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT:
-				if (resolve) return getBase_AnyReceiveEvent();
-				return basicGetBase_AnyReceiveEvent();
+				if (resolve) return getBaseAnyReceiveEvent();
+				return basicGetBaseAnyReceiveEvent();
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT:
-				if (resolve) return getBase_SignalEvent();
-				return basicGetBase_SignalEvent();
+				if (resolve) return getBaseSignalEvent();
+				return basicGetBaseSignalEvent();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -179,10 +179,10 @@
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT:
-				setBase_AnyReceiveEvent((AnyReceiveEvent)newValue);
+				setBaseAnyReceiveEvent((AnyReceiveEvent)newValue);
 				return;
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT:
-				setBase_SignalEvent((SignalEvent)newValue);
+				setBaseSignalEvent((SignalEvent)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -197,10 +197,10 @@
 	public void eUnset(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT:
-				setBase_AnyReceiveEvent((AnyReceiveEvent)null);
+				setBaseAnyReceiveEvent((AnyReceiveEvent)null);
 				return;
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT:
-				setBase_SignalEvent((SignalEvent)null);
+				setBaseSignalEvent((SignalEvent)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -215,9 +215,9 @@
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_ANY_RECEIVE_EVENT:
-				return base_AnyReceiveEvent != null;
+				return baseAnyReceiveEvent != null;
 			case formalmlPackage.RECEIVE_SIGNAL_EVENT__BASE_SIGNAL_EVENT:
-				return base_SignalEvent != null;
+				return baseSignalEvent != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/TimedTransitionImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/TimedTransitionImpl.java
index 9e94ed4..a32aca5 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/TimedTransitionImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/TimedTransitionImpl.java
@@ -32,7 +32,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.efm.formalml.impl.TimedTransitionImpl#getTguard <em>Tguard</em>}</li>
- *   <li>{@link org.eclipse.efm.formalml.impl.TimedTransitionImpl#getBase_Transition <em>Base Transition</em>}</li>
+ *   <li>{@link org.eclipse.efm.formalml.impl.TimedTransitionImpl#getBaseTransition <em>Base Transition</em>}</li>
  * </ul>
  *
  * @generated
@@ -49,14 +49,14 @@
 	protected Constraint tguard;
 
 	/**
-	 * The cached value of the '{@link #getBase_Transition() <em>Base Transition</em>}' reference.
+	 * The cached value of the '{@link #getBaseTransition() <em>Base Transition</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getBase_Transition()
+	 * @see #getBaseTransition()
 	 * @generated
 	 * @ordered
 	 */
-	protected Transition base_Transition;
+	protected Transition baseTransition;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -120,16 +120,16 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Transition getBase_Transition() {
-		if (base_Transition != null && base_Transition.eIsProxy()) {
-			InternalEObject oldBase_Transition = (InternalEObject)base_Transition;
-			base_Transition = (Transition)eResolveProxy(oldBase_Transition);
-			if (base_Transition != oldBase_Transition) {
+	public Transition getBaseTransition() {
+		if (baseTransition != null && baseTransition.eIsProxy()) {
+			InternalEObject oldBaseTransition = (InternalEObject)baseTransition;
+			baseTransition = (Transition)eResolveProxy(oldBaseTransition);
+			if (baseTransition != oldBaseTransition) {
 				if (eNotificationRequired())
-					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION, oldBase_Transition, base_Transition));
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION, oldBaseTransition, baseTransition));
 			}
 		}
-		return base_Transition;
+		return baseTransition;
 	}
 
 	/**
@@ -137,8 +137,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Transition basicGetBase_Transition() {
-		return base_Transition;
+	public Transition basicGetBaseTransition() {
+		return baseTransition;
 	}
 
 	/**
@@ -146,11 +146,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public void setBase_Transition(Transition newBase_Transition) {
-		Transition oldBase_Transition = base_Transition;
-		base_Transition = newBase_Transition;
+	public void setBaseTransition(Transition newBaseTransition) {
+		Transition oldBaseTransition = baseTransition;
+		baseTransition = newBaseTransition;
 		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION, oldBase_Transition, base_Transition));
+			eNotify(new ENotificationImpl(this, Notification.SET, formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION, oldBaseTransition, baseTransition));
 	}
 
 	/**
@@ -165,8 +165,8 @@
 				if (resolve) return getTguard();
 				return basicGetTguard();
 			case formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION:
-				if (resolve) return getBase_Transition();
-				return basicGetBase_Transition();
+				if (resolve) return getBaseTransition();
+				return basicGetBaseTransition();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -183,7 +183,7 @@
 				setTguard((Constraint)newValue);
 				return;
 			case formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION:
-				setBase_Transition((Transition)newValue);
+				setBaseTransition((Transition)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -201,7 +201,7 @@
 				setTguard((Constraint)null);
 				return;
 			case formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION:
-				setBase_Transition((Transition)null);
+				setBaseTransition((Transition)null);
 				return;
 		}
 		super.eUnset(featureID);
@@ -218,7 +218,7 @@
 			case formalmlPackage.TIMED_TRANSITION__TGUARD:
 				return tguard != null;
 			case formalmlPackage.TIMED_TRANSITION__BASE_TRANSITION:
-				return base_Transition != null;
+				return baseTransition != null;
 		}
 		return super.eIsSet(featureID);
 	}
diff --git a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/formalmlPackageImpl.java b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/formalmlPackageImpl.java
index 6b08536..dec48f7 100644
--- a/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/formalmlPackageImpl.java
+++ b/core/org.eclipse.efm.formalml/src-gen/org/eclipse/efm/formalml/impl/formalmlPackageImpl.java
@@ -213,7 +213,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getClock_Base_Property() {
+	public EReference getClock_BaseProperty() {
 		return (EReference)clockEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -249,7 +249,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EAttribute getConfiguration_Input_enabled() {
+	public EAttribute getConfiguration_InputEnabled() {
 		return (EAttribute)configurationEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -267,7 +267,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getFormalBlock_Base_Class() {
+	public EReference getFormalBlock_BaseClass() {
 		return (EReference)formalBlockEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -303,7 +303,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getTimedTransition_Base_Transition() {
+	public EReference getTimedTransition_BaseTransition() {
 		return (EReference)timedTransitionEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -321,7 +321,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getPart_Base_Property() {
+	public EReference getPart_BaseProperty() {
 		return (EReference)partEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -348,7 +348,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getReceiveAnyEvent_Base_AnyReceiveEvent() {
+	public EReference getReceiveAnyEvent_BaseAnyReceiveEvent() {
 		return (EReference)receiveAnyEventEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -384,7 +384,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getReceiveSignalEvent_Base_AnyReceiveEvent() {
+	public EReference getReceiveSignalEvent_BaseAnyReceiveEvent() {
 		return (EReference)receiveSignalEventEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -393,7 +393,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getReceiveSignalEvent_Base_SignalEvent() {
+	public EReference getReceiveSignalEvent_BaseSignalEvent() {
 		return (EReference)receiveSignalEventEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -411,7 +411,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getDirectedPort_Base_Port() {
+	public EReference getDirectedPort_BasePort() {
 		return (EReference)directedPortEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -438,7 +438,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public EReference getBuffer_Base_Property() {
+	public EReference getBuffer_BaseProperty() {
 		return (EReference)bufferEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -590,41 +590,41 @@
 
 		// Initialize classes, features, and operations; add parameters
 		initEClass(clockEClass, Clock.class, "Clock", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getClock_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, Clock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getClock_BaseProperty(), theUMLPackage.getProperty(), null, "baseProperty", null, 1, 1, Clock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(configurationEClass, Configuration.class, "Configuration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getConfiguration_Env(), theUMLPackage.getProperty(), null, "env", null, 0, -1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getConfiguration_Timed(), theTypesPackage.getBoolean(), "timed", "false", 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEAttribute(getConfiguration_Input_enabled(), theTypesPackage.getBoolean(), "input_enabled", "false", 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEAttribute(getConfiguration_InputEnabled(), theTypesPackage.getBoolean(), "inputEnabled", "false", 1, 1, Configuration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(formalBlockEClass, FormalBlock.class, "FormalBlock", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getFormalBlock_Base_Class(), theUMLPackage.getClass_(), null, "base_Class", null, 1, 1, FormalBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getFormalBlock_BaseClass(), theUMLPackage.getClass_(), null, "baseClass", null, 1, 1, FormalBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getFormalBlock_RoutingBehavior(), theUMLPackage.getOpaqueBehavior(), null, "routingBehavior", null, 0, 1, FormalBlock.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(timedTransitionEClass, TimedTransition.class, "TimedTransition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getTimedTransition_Tguard(), theUMLPackage.getConstraint(), null, "tguard", null, 0, 1, TimedTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getTimedTransition_Base_Transition(), theUMLPackage.getTransition(), null, "base_Transition", null, 1, 1, TimedTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getTimedTransition_BaseTransition(), theUMLPackage.getTransition(), null, "baseTransition", null, 1, 1, TimedTransition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(partEClass, Part.class, "Part", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPart_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, Part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getPart_BaseProperty(), theUMLPackage.getProperty(), null, "baseProperty", null, 1, 1, Part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEReference(getPart_Instance(), theUMLPackage.getInstanceSpecification(), null, "instance", null, 0, -1, Part.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(receiveAnyEventEClass, ReceiveAnyEvent.class, "ReceiveAnyEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getReceiveAnyEvent_Base_AnyReceiveEvent(), theUMLPackage.getAnyReceiveEvent(), null, "base_AnyReceiveEvent", null, 1, 1, ReceiveAnyEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getReceiveAnyEvent_BaseAnyReceiveEvent(), theUMLPackage.getAnyReceiveEvent(), null, "baseAnyReceiveEvent", null, 1, 1, ReceiveAnyEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(receiveEventEClass, ReceiveEvent.class, "ReceiveEvent", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getReceiveEvent_Parameters(), theUMLPackage.getProperty(), null, "parameters", null, 1, -1, ReceiveEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(receiveSignalEventEClass, ReceiveSignalEvent.class, "ReceiveSignalEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getReceiveSignalEvent_Base_AnyReceiveEvent(), theUMLPackage.getAnyReceiveEvent(), null, "base_AnyReceiveEvent", null, 1, 1, ReceiveSignalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
-		initEReference(getReceiveSignalEvent_Base_SignalEvent(), theUMLPackage.getSignalEvent(), null, "base_SignalEvent", null, 1, 1, ReceiveSignalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getReceiveSignalEvent_BaseAnyReceiveEvent(), theUMLPackage.getAnyReceiveEvent(), null, "baseAnyReceiveEvent", null, 1, 1, ReceiveSignalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getReceiveSignalEvent_BaseSignalEvent(), theUMLPackage.getSignalEvent(), null, "baseSignalEvent", null, 1, 1, ReceiveSignalEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(directedPortEClass, DirectedPort.class, "DirectedPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getDirectedPort_Base_Port(), theUMLPackage.getPort(), null, "base_Port", null, 1, 1, DirectedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getDirectedPort_BasePort(), theUMLPackage.getPort(), null, "basePort", null, 1, 1, DirectedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getDirectedPort_Direction(), this.getPortDirectionKind(), "direction", null, 1, 1, DirectedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(bufferEClass, Buffer.class, "Buffer", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getBuffer_Base_Property(), theUMLPackage.getProperty(), null, "base_Property", null, 1, 1, Buffer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
+		initEReference(getBuffer_BaseProperty(), theUMLPackage.getProperty(), null, "baseProperty", null, 1, 1, Buffer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 		initEAttribute(getBuffer_Kind(), this.getBufferKind(), "kind", null, 1, 1, Buffer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED);
 
 		initEClass(blockEClass, Block.class, "Block", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -647,6 +647,8 @@
 		// Create annotations
 		// http://www.eclipse.org/uml2/2.0.0/UML
 		createUMLAnnotations();
+		// http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName
+		createEmofAnnotations();
 	}
 
 	/**
@@ -662,6 +664,148 @@
 		   source, 
 		   new String[] {
 			 "originalName", "fml"
+		   });	
+		addAnnotation
+		  (getClock_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Property"
+		   });	
+		addAnnotation
+		  (getConfiguration_InputEnabled(), 
+		   source, 
+		   new String[] {
+			 "originalName", "input_enabled"
+		   });	
+		addAnnotation
+		  (getFormalBlock_BaseClass(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Class"
+		   });	
+		addAnnotation
+		  (getTimedTransition_BaseTransition(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Transition"
+		   });	
+		addAnnotation
+		  (getPart_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Property"
+		   });	
+		addAnnotation
+		  (getReceiveAnyEvent_BaseAnyReceiveEvent(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_AnyReceiveEvent"
+		   });	
+		addAnnotation
+		  (getReceiveSignalEvent_BaseAnyReceiveEvent(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_AnyReceiveEvent"
+		   });	
+		addAnnotation
+		  (getReceiveSignalEvent_BaseSignalEvent(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_SignalEvent"
+		   });	
+		addAnnotation
+		  (getDirectedPort_BasePort(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Port"
+		   });	
+		addAnnotation
+		  (getBuffer_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "originalName", "base_Property"
+		   });	
+		addAnnotation
+		  (bufferKindEEnum.getELiterals().get(0), 
+		   source, 
+		   new String[] {
+			 "originalName", "FIFO"
+		   });	
+		addAnnotation
+		  (bufferKindEEnum.getELiterals().get(1), 
+		   source, 
+		   new String[] {
+			 "originalName", "LIFO"
+		   });	
+		addAnnotation
+		  (bufferKindEEnum.getELiterals().get(2), 
+		   source, 
+		   new String[] {
+			 "originalName", "MULTISET"
+		   });	
+		addAnnotation
+		  (bufferKindEEnum.getELiterals().get(3), 
+		   source, 
+		   new String[] {
+			 "originalName", "RAM"
+		   });
+	}
+
+	/**
+	 * Initializes the annotations for <b>http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName</b>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void createEmofAnnotations() {
+		String source = "http://schema.omg.org/spec/MOF/2.0/emof.xml#Property.oppositeRoleName";	
+		addAnnotation
+		  (getClock_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_ClockVar"
+		   });	
+		addAnnotation
+		  (getFormalBlock_BaseClass(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_FormalBlock"
+		   });	
+		addAnnotation
+		  (getTimedTransition_BaseTransition(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_Transition"
+		   });	
+		addAnnotation
+		  (getPart_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_BlockPart"
+		   });	
+		addAnnotation
+		  (getReceiveAnyEvent_BaseAnyReceiveEvent(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_ReceiveAnyEvent"
+		   });	
+		addAnnotation
+		  (getReceiveSignalEvent_BaseSignalEvent(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_ReceiveSignalEvent"
+		   });	
+		addAnnotation
+		  (getDirectedPort_BasePort(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_FlowPort"
+		   });	
+		addAnnotation
+		  (getBuffer_BaseProperty(), 
+		   source, 
+		   new String[] {
+			 "body", "extension_BufferVar"
 		   });
 	}
 
diff --git a/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalML.elementtypesconfigurations b/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalML.elementtypesconfigurations
index 577a817..0293a61 100644
--- a/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalML.elementtypesconfigurations
+++ b/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalML.elementtypesconfigurations
@@ -1,158 +1,146 @@
 <?xml version="1.0" encoding="ASCII"?>
-<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:applystereotypeadvice="http://www.eclipse.org/papyrus/uml/types/applystereotypeadvice/1.1" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" xmlns:stereotypematcher="http://www.eclipse.org/papyrus/uml/types/stereotypematcher/1.1" identifier="org.eclipse.efm.fml.elementTypes" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.ConnectorBehavior" name="ConnectorBehavior" hint="UML::OpaqueBehavior">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:applystereotypeadvice="http://www.eclipse.org/papyrus/uml/types/applystereotypeadvice/1.1" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" xmlns:stereotypematcher="http://www.eclipse.org/papyrus/uml/types/stereotypematcher/1.1" xmi:id="_uHb_cO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.elementTypes" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHb_ce90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.ConnectorBehavior" name="ConnectorBehavior" hint="UML::OpaqueBehavior">
+    <iconEntry xmi:id="_uHb_cu90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.OpaqueBehavior</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg38O90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::ConnectorBehavior</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FifoBehavior" name="FifoBehavior" hint="UML::OpaqueBehavior">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg38e90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FifoBehavior" name="FifoBehavior" hint="UML::OpaqueBehavior">
+    <iconEntry xmi:id="_uHg38u90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.OpaqueBehavior</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg38-90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FifoBehavior</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FlowPort" name="FlowPort" hint="UML::Port">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg39O90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FlowPort" name="FlowPort" hint="UML::Port">
+    <iconEntry xmi:id="_uHg39e90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Port</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg39u90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FlowPort</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FlowVariable" name="FlowVariable" hint="UML::Property">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg39-90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FlowVariable" name="FlowVariable" hint="UML::Property">
+    <iconEntry xmi:id="_uHg3-O90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg3-e90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FlowVariable</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FormalBlock" name="FormalBlock" hint="UML::Class">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg3-u90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FormalBlock" name="FormalBlock" hint="UML::Class">
+    <iconEntry xmi:id="_uHg3--90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Class</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg3_O90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FormalBlock</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FormalContext" name="FormalContext" hint="UML::Class">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg3_e90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.Configuration" name="Configuration" hint="UML::Class">
+    <iconEntry xmi:id="_uHg3_u90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Class</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
-      <stereotypesQualifiedNames>fml::FormalContext</stereotypesQualifiedNames>
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg3_-90EeaWHe1FUDLuKA">
+      <stereotypesQualifiedNames>fml::Configuration</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FormalEnvironment" name="FormalEnvironment" hint="UML::Property">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
-      <stereotypesQualifiedNames>fml::FormalEnvironment</stereotypesQualifiedNames>
-    </matcherConfiguration>
-  </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FormalModel" name="FormalModel" hint="UML::Model">
-    <iconEntry iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg4A-90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FormalModel" name="FormalModel" hint="UML::Model">
+    <iconEntry xmi:id="_uHg4BO90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Model</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg4Be90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FormalModel</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.FormalPart" name="FormalPart" hint="UML::Property">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg4Bu90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.FormalPart" name="FormalPart" hint="UML::Property">
+    <iconEntry xmi:id="_uHg4B-90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Property</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg4CO90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::FormalPart</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.RdvBehavior" name="RdvBehavior" hint="UML::OpaqueBehavior">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg4Ce90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.RdvBehavior" name="RdvBehavior" hint="UML::OpaqueBehavior">
+    <iconEntry xmi:id="_uHg4Cu90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.OpaqueBehavior</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHg4C-90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::RdvBehavior</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.ReceiveAnyEvent" name="ReceiveAnyEvent" hint="UML::AnyReceiveEvent">
-    <iconEntry iconPath="/icons/full/obj16/AnyReceiveEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHg4DO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.ReceiveAnyEvent" name="ReceiveAnyEvent" hint="UML::AnyReceiveEvent">
+    <iconEntry xmi:id="_uHhfAO90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/AnyReceiveEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.AnyReceiveEvent</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHhfAe90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::ReceiveAnyEvent</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.ReceiveSignalEvent" name="ReceiveSignalEvent" hint="UML::SignalEvent">
-    <iconEntry iconPath="/icons/full/obj16/SignalEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHhfAu90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.ReceiveSignalEvent" name="ReceiveSignalEvent" hint="UML::SignalEvent">
+    <iconEntry xmi:id="_uHhfA-90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/SignalEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.SignalEvent</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHhfBO90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::ReceiveSignalEvent</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fml.TimedTransition" name="TimedTransition" hint="UML::Transition">
-    <iconEntry iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_uHhfBe90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.TimedTransition" name="TimedTransition" hint="UML::Transition">
+    <iconEntry xmi:id="_uHhfBu90EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.uml.Transition</specializedTypesID>
-    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration">
+    <matcherConfiguration xsi:type="stereotypematcher:StereotypeApplicationMatcherConfiguration" xmi:id="_uHhfB-90EeaWHe1FUDLuKA">
       <stereotypesQualifiedNames>fml::TimedTransition</stereotypesQualifiedNames>
     </matcherConfiguration>
   </elementTypeConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.connectorBehavior" target="//@elementTypeConfigurations.0">
-    <stereotypesToApply stereotypeQualifiedName="fml::ConnectorBehavior" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHlwcO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.connectorBehavior" description="connector behavior" target="_uHb_ce90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHlwce90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::ConnectorBehavior" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.fifoBehavior" target="//@elementTypeConfigurations.1">
-    <stereotypesToApply stereotypeQualifiedName="fml::FifoBehavior" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXgO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.fifoBehavior" description="fifo behavior" target="_uHg38e90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXge90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FifoBehavior" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.flowPort" target="//@elementTypeConfigurations.2">
-    <stereotypesToApply stereotypeQualifiedName="fml::FlowPort" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXgu90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.flowPort" description="flow port" target="_uHg39O90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXg-90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FlowPort" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.flowVariable" target="//@elementTypeConfigurations.3">
-    <stereotypesToApply stereotypeQualifiedName="fml::FlowVariable" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXhO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.flowVariable" description="flow variable" target="_uHg39-90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXhe90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FlowVariable" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.formalBlock" target="//@elementTypeConfigurations.4">
-    <stereotypesToApply stereotypeQualifiedName="fml::FormalBlock" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXhu90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.formalBlock" description="formal block" target="_uHg3-u90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXh-90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FormalBlock" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.formalContext" target="//@elementTypeConfigurations.5">
-    <stereotypesToApply stereotypeQualifiedName="fml::FormalContext" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXiO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.configuration" description="configuration" target="_uHg3_e90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXie90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::Configuration" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.formalEnvironment" target="//@elementTypeConfigurations.6">
-    <stereotypesToApply stereotypeQualifiedName="fml::FormalEnvironment" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXjO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.formalModel" description="formal model" target="_uHg4A-90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXje90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FormalModel" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.formalModel" target="//@elementTypeConfigurations.7">
-    <stereotypesToApply stereotypeQualifiedName="fml::FormalModel" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXju90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.formalPart" description="formal part" target="_uHg4Bu90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXj-90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::FormalPart" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.formalPart" target="//@elementTypeConfigurations.8">
-    <stereotypesToApply stereotypeQualifiedName="fml::FormalPart" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXkO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.rdvBehavior" description="rdv behavior" target="_uHg4Ce90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXke90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::RdvBehavior" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.rdvBehavior" target="//@elementTypeConfigurations.9">
-    <stereotypesToApply stereotypeQualifiedName="fml::RdvBehavior" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXku90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.receiveAnyEvent" description="receive any event" target="_uHg4DO90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXk-90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::ReceiveAnyEvent" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.receiveAnyEvent" target="//@elementTypeConfigurations.10">
-    <stereotypesToApply stereotypeQualifiedName="fml::ReceiveAnyEvent" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXlO90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.receiveSignalEvent" description="receive signal event" target="_uHhfAu90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXle90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::ReceiveSignalEvent" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.receiveSignalEvent" target="//@elementTypeConfigurations.11">
-    <stereotypesToApply stereotypeQualifiedName="fml::ReceiveSignalEvent" updateName="true">
-      <requiredProfiles>fml</requiredProfiles>
-    </stereotypesToApply>
-  </adviceBindingsConfigurations>
-  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" identifier="org.eclipse.efm.fml.timedTransition" target="//@elementTypeConfigurations.12">
-    <stereotypesToApply stereotypeQualifiedName="fml::TimedTransition" updateName="true">
+  <adviceBindingsConfigurations xsi:type="applystereotypeadvice:ApplyStereotypeAdviceConfiguration" xmi:id="_uHmXlu90EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fml.timedTransition" description="timed transition" target="_uHhfBe90EeaWHe1FUDLuKA">
+    <stereotypesToApply xmi:id="_uHmXl-90EeaWHe1FUDLuKA" stereotypeQualifiedName="fml::TimedTransition" updateName="true">
       <requiredProfiles>fml</requiredProfiles>
     </stereotypesToApply>
   </adviceBindingsConfigurations>
diff --git a/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalMLDI.elementtypesconfigurations b/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalMLDI.elementtypesconfigurations
index 94a543f..56caa11 100644
--- a/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalMLDI.elementtypesconfigurations
+++ b/core/org.eclipse.efm.papyrus.service.types/resources/elementtype/FormalMLDI.elementtypesconfigurations
@@ -1,232 +1,232 @@
 <?xml version="1.0" encoding="ASCII"?>
-<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" identifier="org.eclipse.efm.fmldi.elementTypes" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_NestedClassifierLabel" name="ConnectorBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+<elementtypesconfigurations:ElementTypeSetConfiguration xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:elementtypesconfigurations="http://www.eclipse.org/papyrus/infra/elementtypesconfigurations/1.1" xmi:id="_GjbiUO93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.elementTypes" metamodelNsURI="http://www.eclipse.org/uml2/5.0.0/UML">
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiUe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_NestedClassifierLabel" name="ConnectorBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
+    <iconEntry xmi:id="_GjbiUu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ConnectorBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_NestedClassifierLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="ConnectorBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiU-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="ConnectorBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
+    <iconEntry xmi:id="_GjbiVO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ConnectorBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_OwnedBehaviorLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_Shape" name="ConnectorBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiVe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_Shape" name="ConnectorBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
+    <iconEntry xmi:id="_GjbiVu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ConnectorBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_Shape_CN" name="ConnectorBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiV-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ConnectorBehavior_OpaqueBehavior_Shape_CN" name="ConnectorBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
+    <iconEntry xmi:id="_GjbiWO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ConnectorBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_NestedClassifierLabel" name="FifoBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiWe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_NestedClassifierLabel" name="FifoBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
+    <iconEntry xmi:id="_GjbiWu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FifoBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_NestedClassifierLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="FifoBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiW-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="FifoBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
+    <iconEntry xmi:id="_GjbiXO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FifoBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_OwnedBehaviorLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_Shape" name="FifoBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiXe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_Shape" name="FifoBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
+    <iconEntry xmi:id="_GjbiXu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FifoBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_Shape_CN" name="FifoBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiX-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FifoBehavior_OpaqueBehavior_Shape_CN" name="FifoBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
+    <iconEntry xmi:id="_GjbiYO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FifoBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_AttributeLabel" name="FlowPort (Port_AttributeLabel)" hint="Port_AttributeLabel">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiYe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_AttributeLabel" name="FlowPort (Port_AttributeLabel)" hint="Port_AttributeLabel">
+    <iconEntry xmi:id="_GjbiYu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_AttributeLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_BehaviorEdge" name="FlowPort (Port_BehaviorEdge)" hint="Port_BehaviorEdge">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiY-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_BehaviorEdge" name="FlowPort (Port_BehaviorEdge)" hint="Port_BehaviorEdge">
+    <iconEntry xmi:id="_GjbiZO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_BehaviorEdge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_BehaviorShape" name="FlowPort (Port_BehaviorShape)" hint="Port_BehaviorShape">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiZe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_BehaviorShape" name="FlowPort (Port_BehaviorShape)" hint="Port_BehaviorShape">
+    <iconEntry xmi:id="_GjbiZu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_BehaviorShape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Edge" name="FlowPort (Port_Edge)" hint="Port_Edge">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjbiZ-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Edge" name="FlowPort (Port_Edge)" hint="Port_Edge">
+    <iconEntry xmi:id="_GjbiaO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_Edge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Shape" name="FlowPort (Port_Shape)" hint="Port_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbiae93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Shape" name="FlowPort (Port_Shape)" hint="Port_Shape">
+    <iconEntry xmi:id="_Gjbiau93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Shape_CN" name="FlowPort (Port_Shape_CN)" hint="Port_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbia-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowPort_Port_Shape_CN" name="FlowPort (Port_Shape_CN)" hint="Port_Shape_CN">
+    <iconEntry xmi:id="_GjbibO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Port.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowPort</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Port_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_AttributeLabel" name="FlowVariable (Property_AttributeLabel)" hint="Property_AttributeLabel">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbibe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_AttributeLabel" name="FlowVariable (Property_AttributeLabel)" hint="Property_AttributeLabel">
+    <iconEntry xmi:id="_Gjbibu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowVariable</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_AttributeLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Edge" name="FlowVariable (Property_Edge)" hint="Property_Edge">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbib-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Edge" name="FlowVariable (Property_Edge)" hint="Property_Edge">
+    <iconEntry xmi:id="_GjbicO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowVariable</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Edge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Shape" name="FlowVariable (Property_Shape)" hint="Property_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbice93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Shape" name="FlowVariable (Property_Shape)" hint="Property_Shape">
+    <iconEntry xmi:id="_Gjbicu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowVariable</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Shape_CN" name="FlowVariable (Property_Shape_CN)" hint="Property_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbic-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FlowVariable_Property_Shape_CN" name="FlowVariable (Property_Shape_CN)" hint="Property_Shape_CN">
+    <iconEntry xmi:id="_GjbidO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FlowVariable</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_MetaclassShape" name="FormalBlock (Class_MetaclassShape)" hint="Class_MetaclassShape">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbide93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_MetaclassShape" name="FormalBlock (Class_MetaclassShape)" hint="Class_MetaclassShape">
+    <iconEntry xmi:id="_Gjbidu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalBlock</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_MetaclassShape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_MetaclassShape_CN" name="FormalBlock (Class_MetaclassShape_CN)" hint="Class_MetaclassShape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbid-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_MetaclassShape_CN" name="FormalBlock (Class_MetaclassShape_CN)" hint="Class_MetaclassShape_CN">
+    <iconEntry xmi:id="_GjbieO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalBlock</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_MetaclassShape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_NestedClassifierLabel" name="FormalBlock (Class_NestedClassifierLabel)" hint="Class_NestedClassifierLabel">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbiee93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_NestedClassifierLabel" name="FormalBlock (Class_NestedClassifierLabel)" hint="Class_NestedClassifierLabel">
+    <iconEntry xmi:id="_Gjbieu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalBlock</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_NestedClassifierLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_Shape" name="FormalBlock (Class_Shape)" hint="Class_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbie-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_Shape" name="FormalBlock (Class_Shape)" hint="Class_Shape">
+    <iconEntry xmi:id="_GjbifO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalBlock</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_Shape_CN" name="FormalBlock (Class_Shape_CN)" hint="Class_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbife93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalBlock_Class_Shape_CN" name="FormalBlock (Class_Shape_CN)" hint="Class_Shape_CN">
+    <iconEntry xmi:id="_Gjbifu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalBlock</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalContext_Class_MetaclassShape" name="FormalContext (Class_MetaclassShape)" hint="Class_MetaclassShape">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.efm.fml.FormalContext</specializedTypesID>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbif-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.Configuration_Class_MetaclassShape" name="Configuration (Class_MetaclassShape)" hint="Class_MetaclassShape">
+    <iconEntry xmi:id="_GjbigO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_MetaclassShape</specializedTypesID>
+    <specializedTypesID>org.eclipse.efm.fml.Configuration</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalContext_Class_MetaclassShape_CN" name="FormalContext (Class_MetaclassShape_CN)" hint="Class_MetaclassShape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.efm.fml.FormalContext</specializedTypesID>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbige93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.Configuration_Class_MetaclassShape_CN" name="Configuration (Class_MetaclassShape_CN)" hint="Class_MetaclassShape_CN">
+    <iconEntry xmi:id="_Gjbigu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_MetaclassShape_CN</specializedTypesID>
+    <specializedTypesID>org.eclipse.efm.fml.Configuration</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalContext_Class_NestedClassifierLabel" name="FormalContext (Class_NestedClassifierLabel)" hint="Class_NestedClassifierLabel">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.efm.fml.FormalContext</specializedTypesID>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbig-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.Configuration_Class_NestedClassifierLabel" name="Configuration (Class_NestedClassifierLabel)" hint="Class_NestedClassifierLabel">
+    <iconEntry xmi:id="_GjbihO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+    <specializedTypesID>org.eclipse.efm.fml.Configuration</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_NestedClassifierLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalContext_Class_Shape" name="FormalContext (Class_Shape)" hint="Class_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.efm.fml.FormalContext</specializedTypesID>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbihe93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.Configuration_Class_Shape" name="Configuration (Class_Shape)" hint="Class_Shape">
+    <iconEntry xmi:id="_Gjbihu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+    <specializedTypesID>org.eclipse.efm.fml.Configuration</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalContext_Class_Shape_CN" name="FormalContext (Class_Shape_CN)" hint="Class_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
-    <specializedTypesID>org.eclipse.efm.fml.FormalContext</specializedTypesID>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbih-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.Configuration_Class_Shape_CN" name="Configuration (Class_Shape_CN)" hint="Class_Shape_CN">
+    <iconEntry xmi:id="_GjbiiO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Class.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+    <specializedTypesID>org.eclipse.efm.fml.Configuration</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Class_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_AttributeLabel" name="FormalEnvironment (Property_AttributeLabel)" hint="Property_AttributeLabel">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbiie93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_AttributeLabel" name="FormalEnvironment (Property_AttributeLabel)" hint="Property_AttributeLabel">
+    <iconEntry xmi:id="_Gjbiiu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalEnvironment</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_AttributeLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Edge" name="FormalEnvironment (Property_Edge)" hint="Property_Edge">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbii-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Edge" name="FormalEnvironment (Property_Edge)" hint="Property_Edge">
+    <iconEntry xmi:id="_GjbijO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalEnvironment</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Edge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape" name="FormalEnvironment (Property_Shape)" hint="Property_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbije93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape" name="FormalEnvironment (Property_Shape)" hint="Property_Shape">
+    <iconEntry xmi:id="_Gjbiju93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalEnvironment</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape_CN" name="FormalEnvironment (Property_Shape_CN)" hint="Property_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbij-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape_CN" name="FormalEnvironment (Property_Shape_CN)" hint="Property_Shape_CN">
+    <iconEntry xmi:id="_GjbikO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalEnvironment</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalModel_Model_Shape" name="FormalModel (Model_Shape)" hint="Model_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbike93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalModel_Model_Shape" name="FormalModel (Model_Shape)" hint="Model_Shape">
+    <iconEntry xmi:id="_Gjbiku93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalModel</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Model_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalModel_Model_Shape_CN" name="FormalModel (Model_Shape_CN)" hint="Model_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbik-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalModel_Model_Shape_CN" name="FormalModel (Model_Shape_CN)" hint="Model_Shape_CN">
+    <iconEntry xmi:id="_GjbilO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Model.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalModel</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Model_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalPart_Property_AttributeLabel" name="FormalPart (Property_AttributeLabel)" hint="Property_AttributeLabel">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbile93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalPart_Property_AttributeLabel" name="FormalPart (Property_AttributeLabel)" hint="Property_AttributeLabel">
+    <iconEntry xmi:id="_Gjbilu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalPart</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_AttributeLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Edge" name="FormalPart (Property_Edge)" hint="Property_Edge">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbil-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Edge" name="FormalPart (Property_Edge)" hint="Property_Edge">
+    <iconEntry xmi:id="_GjbimO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalPart</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Edge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Shape" name="FormalPart (Property_Shape)" hint="Property_Shape">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbime93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Shape" name="FormalPart (Property_Shape)" hint="Property_Shape">
+    <iconEntry xmi:id="_Gjbimu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalPart</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Shape_CN" name="FormalPart (Property_Shape_CN)" hint="Property_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbim-93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.FormalPart_Property_Shape_CN" name="FormalPart (Property_Shape_CN)" hint="Property_Shape_CN">
+    <iconEntry xmi:id="_GjbinO93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Property.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.FormalPart</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Property_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_NestedClassifierLabel" name="RdvBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_Gjbine93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_NestedClassifierLabel" name="RdvBehavior (OpaqueBehavior_NestedClassifierLabel)" hint="OpaqueBehavior_NestedClassifierLabel">
+    <iconEntry xmi:id="_Gjbinu93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.RdvBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_NestedClassifierLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="RdvBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJYO93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_OwnedBehaviorLabel" name="RdvBehavior (OpaqueBehavior_OwnedBehaviorLabel)" hint="OpaqueBehavior_OwnedBehaviorLabel">
+    <iconEntry xmi:id="_GjcJYe93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.RdvBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_OwnedBehaviorLabel</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_Shape" name="RdvBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJYu93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_Shape" name="RdvBehavior (OpaqueBehavior_Shape)" hint="OpaqueBehavior_Shape">
+    <iconEntry xmi:id="_GjcJY-93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.RdvBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_Shape_CN" name="RdvBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
-    <iconEntry iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJZO93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.RdvBehavior_OpaqueBehavior_Shape_CN" name="RdvBehavior (OpaqueBehavior_Shape_CN)" hint="OpaqueBehavior_Shape_CN">
+    <iconEntry xmi:id="_GjcJZe93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/OpaqueBehavior.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.RdvBehavior</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.OpaqueBehavior_Shape_CN</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ReceiveAnyEvent_AnyReceiveEvent_Shape" name="ReceiveAnyEvent" hint="AnyReceiveEvent_Shape">
-    <iconEntry iconPath="/icons/full/obj16/AnyReceiveEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJZu93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ReceiveAnyEvent_AnyReceiveEvent_Shape" name="ReceiveAnyEvent" hint="AnyReceiveEvent_Shape">
+    <iconEntry xmi:id="_GjcJZ-93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/AnyReceiveEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ReceiveAnyEvent</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.AnyReceiveEvent_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.ReceiveSignalEvent_SignalEvent_Shape" name="ReceiveSignalEvent" hint="SignalEvent_Shape">
-    <iconEntry iconPath="/icons/full/obj16/SignalEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJaO93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.ReceiveSignalEvent_SignalEvent_Shape" name="ReceiveSignalEvent" hint="SignalEvent_Shape">
+    <iconEntry xmi:id="_GjcJae93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/SignalEvent.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.ReceiveSignalEvent</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.SignalEvent_Shape</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.TimedTransition_Transition_Edge" name="TimedTransition (Transition_Edge)" hint="Transition_Edge">
-    <iconEntry iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJau93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.TimedTransition_Transition_Edge" name="TimedTransition (Transition_Edge)" hint="Transition_Edge">
+    <iconEntry xmi:id="_GjcJa-93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.TimedTransition</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Transition_Edge</specializedTypesID>
   </elementTypeConfigurations>
-  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" identifier="org.eclipse.efm.fmldi.TimedTransition_Transition_InternalTransitionLabel" name="TimedTransition (Transition_InternalTransitionLabel)" hint="Transition_InternalTransitionLabel">
-    <iconEntry iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
+  <elementTypeConfigurations xsi:type="elementtypesconfigurations:SpecializationTypeConfiguration" xmi:id="_GjcJbO93EeaWHe1FUDLuKA" identifier="org.eclipse.efm.fmldi.TimedTransition_Transition_InternalTransitionLabel" name="TimedTransition (Transition_InternalTransitionLabel)" hint="Transition_InternalTransitionLabel">
+    <iconEntry xmi:id="_GjcJbe93EeaWHe1FUDLuKA" iconPath="/icons/full/obj16/Transition.gif" bundleId="org.eclipse.uml2.uml.edit"/>
     <specializedTypesID>org.eclipse.efm.fml.TimedTransition</specializedTypesID>
     <specializedTypesID>org.eclipse.papyrus.umldi.Transition_InternalTransitionLabel</specializedTypesID>
   </elementTypeConfigurations>
diff --git a/diagram/org.eclipse.efm.papyrus.diagram.blockdefinition/resources/style/blockdefinition.css b/diagram/org.eclipse.efm.papyrus.diagram.blockdefinition/resources/style/blockdefinition.css
index a9616fb..50ea9c9 100644
--- a/diagram/org.eclipse.efm.papyrus.diagram.blockdefinition/resources/style/blockdefinition.css
+++ b/diagram/org.eclipse.efm.papyrus.diagram.blockdefinition/resources/style/blockdefinition.css
@@ -15,7 +15,7 @@
  * TestContext Style
  */
 
-[appliedStereotypes~=FormalContext]{
+[appliedStereotypes~=Configuration]{
 	fillColor:lightBlue;
 	elementIcon:false;	
 }
diff --git a/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/palette/internalblock.paletteconfiguration b/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/palette/internalblock.paletteconfiguration
index 9770447..8af1a69 100644
--- a/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/palette/internalblock.paletteconfiguration
+++ b/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/palette/internalblock.paletteconfiguration
@@ -1,93 +1,26 @@
 <?xml version="1.0" encoding="ASCII"?>
-<paletteconfiguration:PaletteConfiguration
-    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7"
-    id="org.eclipse.efm.papyrus.diagram.ibd.palette.model"
-    label="FormalML IBD Palette">
-  <drawerConfigurations
-      id="org.eclipse.efm.papyrus.diagram.ibd.palette.node"
-      label="Nodes"
-      description="Nodes">
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.formalContext"
-        label="Formal Context"
-        description="Create a Formal Context">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Class.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalContext_Class_Shape"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalContext_Class_Shape_CN"/>
+<paletteconfiguration:PaletteConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:paletteconfiguration="http://www.eclipse.org/papyrus/diagram/paletteconfiguration/0.7" id="org.eclipse.efm.papyrus.diagram.ibd.palette.model" label="FormalML IBD Palette">
+  <drawerConfigurations id="org.eclipse.efm.papyrus.diagram.ibd.palette.node" label="EFM Nodes" description="Create EFM Nodes">
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.configuration" label="Configuration" description="Create a Configuration">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Class.gif"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.Configuration_Class_Shape"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.Configuration_Class_Shape_CN"/>
     </ownedConfigurations>
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.partBlock"
-        label="Formal Part"
-        description="Create a Formal Part">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Property.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalPart_Property_Shape"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalPart_Property_Shape_CN"/>
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.part" label="Part" description="Create a Part">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Property.gif"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.Part_Property_Shape"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.Part_Property_Shape_CN"/>
     </ownedConfigurations>
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.formalEnvironment"
-        label="Formal Environment"
-        description="Create a Formal Environment">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Property.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FormalEnvironment_Property_Shape_CN"/>
-    </ownedConfigurations>
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.flowPort"
-        label="Flow Port"
-        description="Create a Flow Port">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Port.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FlowPort_Port_Shape"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.efm.fmldi.FlowPort_Port_Shape_CN"/>
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.efm.papyrus.diagram.ibd.palette.node.directedPort" label="DirectedPort" description="Create a DirectedPort">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Port.gif"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.DirectedPort_Port_Shape"/>
+      <elementDescriptors elementTypeId="org.eclipse.efm.fmldi.DirectedPort_Port_Shape_CN"/>
     </ownedConfigurations>
   </drawerConfigurations>
-  <drawerConfigurations
-      id="org.eclipse.efm.papyrus.diagram.ibd.palette.link"
-      label="Link"
-      description="Link">
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.link.connector"
-        label="Connector"
-        description="Create a connector"
-        kind="ConnectionTool">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Connector.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.papyrus.umldi.Connector_Edge"/>
-    </ownedConfigurations>
-    <ownedConfigurations
-        xsi:type="paletteconfiguration:ToolConfiguration"
-        id="org.eclipse.efm.papyrus.diagram.ibd.palette.link.informationflow"
-        label="InformationFlow"
-        description="Create a InformationFlow"
-        kind="ConnectionTool">
-      <icon
-          pluginID="org.eclipse.uml2.uml.edit"
-          iconPath="icons/full/obj16/Connector.gif"/>
-      <elementDescriptors
-          elementTypeId="org.eclipse.papyrus.umldi.InformationFlow_Edge"/>
+  <drawerConfigurations id="org.eclipse.efm.papyrus.diagram.ibd.palette.link" label="EFM Links" description="Create EFM Links">
+    <ownedConfigurations xsi:type="paletteconfiguration:ToolConfiguration" id="org.eclipse.efm.papyrus.diagram.ibd.palette.link.connector" label="Connector" description="Create a connector" kind="ConnectionTool">
+      <icon pluginID="org.eclipse.uml2.uml.edit" iconPath="icons/full/obj16/Connector.gif"/>
+      <elementDescriptors elementTypeId="org.eclipse.papyrus.umldi.Connector_Edge"/>
     </ownedConfigurations>
   </drawerConfigurations>
 </paletteconfiguration:PaletteConfiguration>
diff --git a/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/style/internalblock.css b/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/style/internalblock.css
index 128aece..9f198b6 100644
--- a/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/style/internalblock.css
+++ b/diagram/org.eclipse.efm.papyrus.diagram.internalblock/resources/style/internalblock.css
@@ -7,7 +7,7 @@
  * TestContext style 
  */
 
-[appliedStereotypes~="FormalContext"]{
+[appliedStereotypes~="Configuration"]{
 	fillColor:orange;
 }
 
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/newchildmenu/newChildMenu.xmi b/gui/org.eclipse.efm.papyrus.views.common/resources/newchildmenu/newChildMenu.xmi
index 7322427..e9d97c5 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/newchildmenu/newChildMenu.xmi
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/newchildmenu/newChildMenu.xmi
@@ -6,9 +6,9 @@
     xmlns:ElementCreationMenuModel="http://www.eclipse.org/papyrus/infra/newchild/elementcreationmenumodel"
     label="FormalML">
   <menu xsi:type="ElementCreationMenuModel:CreationMenu"
-      label="FormalContext"
+      label="Configuration"
       icon=""
-      elementTypeIdRef="org.eclipse.efm.fml.FormalContext"/>
+      elementTypeIdRef="org.eclipse.efm.fml.Configuration"/>
   <menu xsi:type="ElementCreationMenuModel:CreationMenu"
       label="Clock"
       elementTypeIdRef="org.eclipse.efm.fml.Clock"/>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/FormalML.ctx b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/FormalML.ctx
index ab2ae6e..bdfbd34 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/FormalML.ctx
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/FormalML.ctx
@@ -1,233 +1,243 @@
 <?xml version="1.0" encoding="ASCII"?>
-<contexts:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9" xmi:id="_8X1nMCZ3Eea8yuk7XizVRA" name="fml">
+<contexts:Context xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:constraints="http://www.eclipse.org/papyrus/constraints/0.9" xmlns:contexts="http://www.eclipse.org/papyrus/properties/contexts/0.9" xmi:id="_ZuqLoO94EeaWHe1FUDLuKA" name="fml">
   <dependencies href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_69QJkKDJEeSZxfCXzZz3-w"/>
-  <tabs xmi:id="_DblWwCZ4Eea8yuk7XizVRA" label="fml" id="fml" priority="100">
-    <sections xmi:id="_Dbvu0CZ4Eea8yuk7XizVRA" name="Single FlowVariable" sectionFile="ui/SingleFlowVariable.xwt">
-      <widget href="ui/SingleFlowVariable.xwt#/"/>
-    </sections>
-    <sections xmi:id="_Dbvu0SZ4Eea8yuk7XizVRA" name="Multiple FlowVariable" sectionFile="ui/MultipleFlowVariable.xwt">
-      <widget href="ui/MultipleFlowVariable.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DbwV4CZ4Eea8yuk7XizVRA" name="Single FormalModel" sectionFile="ui/SingleFormalModel.xwt">
-      <widget href="ui/SingleFormalModel.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdmwACZ4Eea8yuk7XizVRA" name="Multiple FormalModel" sectionFile="ui/MultipleFormalModel.xwt">
-      <widget href="ui/MultipleFormalModel.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdmwASZ4Eea8yuk7XizVRA" name="Single ReceiveSignalEvent" sectionFile="ui/SingleReceiveSignalEvent.xwt">
+  <tabs xmi:id="_dSEoAO94EeaWHe1FUDLuKA" label="fml" id="fml" priority="100">
+    <sections xmi:id="_dSFPEO94EeaWHe1FUDLuKA" name="Single ReceiveSignalEvent" sectionFile="ui/SingleReceiveSignalEvent.xwt">
       <widget href="ui/SingleReceiveSignalEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_DdmwAiZ4Eea8yuk7XizVRA" name="Multiple ReceiveSignalEvent" sectionFile="ui/MultipleReceiveSignalEvent.xwt">
+    <sections xmi:id="_dSFPEe94EeaWHe1FUDLuKA" name="Multiple ReceiveSignalEvent" sectionFile="ui/MultipleReceiveSignalEvent.xwt">
       <widget href="ui/MultipleReceiveSignalEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_DdmwAyZ4Eea8yuk7XizVRA" name="Single ReceiveEvent" sectionFile="ui/SingleReceiveEvent.xwt">
+    <sections xmi:id="_dSF2IO94EeaWHe1FUDLuKA" name="Single ReceiveEvent" sectionFile="ui/SingleReceiveEvent.xwt">
       <widget href="ui/SingleReceiveEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_DdnXECZ4Eea8yuk7XizVRA" name="Multiple ReceiveEvent" sectionFile="ui/MultipleReceiveEvent.xwt">
+    <sections xmi:id="_dSF2Ie94EeaWHe1FUDLuKA" name="Multiple ReceiveEvent" sectionFile="ui/MultipleReceiveEvent.xwt">
       <widget href="ui/MultipleReceiveEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_DdnXESZ4Eea8yuk7XizVRA" name="Single FifoBehavior" sectionFile="ui/SingleFifoBehavior.xwt">
-      <widget href="ui/SingleFifoBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_Ddn-ICZ4Eea8yuk7XizVRA" name="Multiple FifoBehavior" sectionFile="ui/MultipleFifoBehavior.xwt">
-      <widget href="ui/MultipleFifoBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_Ddn-ISZ4Eea8yuk7XizVRA" name="Single ConnectorBehavior" sectionFile="ui/SingleConnectorBehavior.xwt">
-      <widget href="ui/SingleConnectorBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_Ddn-IiZ4Eea8yuk7XizVRA" name="Multiple ConnectorBehavior" sectionFile="ui/MultipleConnectorBehavior.xwt">
-      <widget href="ui/MultipleConnectorBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdolMCZ4Eea8yuk7XizVRA" name="Single FormalContext" sectionFile="ui/SingleFormalContext.xwt">
-      <widget href="ui/SingleFormalContext.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdpMQCZ4Eea8yuk7XizVRA" name="Multiple FormalContext" sectionFile="ui/MultipleFormalContext.xwt">
-      <widget href="ui/MultipleFormalContext.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdpMQSZ4Eea8yuk7XizVRA" name="Single FormalBlock" sectionFile="ui/SingleFormalBlock.xwt">
-      <widget href="ui/SingleFormalBlock.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdpMQiZ4Eea8yuk7XizVRA" name="Multiple FormalBlock" sectionFile="ui/MultipleFormalBlock.xwt">
-      <widget href="ui/MultipleFormalBlock.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdpzUCZ4Eea8yuk7XizVRA" name="Single FlowPort" sectionFile="ui/SingleFlowPort.xwt">
-      <widget href="ui/SingleFlowPort.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdpzUSZ4Eea8yuk7XizVRA" name="Multiple FlowPort" sectionFile="ui/MultipleFlowPort.xwt">
-      <widget href="ui/MultipleFlowPort.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdqaYCZ4Eea8yuk7XizVRA" name="Single BlockPart" sectionFile="ui/SingleBlockPart.xwt">
-      <widget href="ui/SingleBlockPart.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdqaYSZ4Eea8yuk7XizVRA" name="Multiple BlockPart" sectionFile="ui/MultipleBlockPart.xwt">
-      <widget href="ui/MultipleBlockPart.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdqaYiZ4Eea8yuk7XizVRA" name="Single TimedTransition" sectionFile="ui/SingleTimedTransition.xwt">
-      <widget href="ui/SingleTimedTransition.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdqaYyZ4Eea8yuk7XizVRA" name="Multiple TimedTransition" sectionFile="ui/MultipleTimedTransition.xwt">
-      <widget href="ui/MultipleTimedTransition.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdrBcCZ4Eea8yuk7XizVRA" name="Single RdvBehavior" sectionFile="ui/SingleRdvBehavior.xwt">
-      <widget href="ui/SingleRdvBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdrBcSZ4Eea8yuk7XizVRA" name="Multiple RdvBehavior" sectionFile="ui/MultipleRdvBehavior.xwt">
-      <widget href="ui/MultipleRdvBehavior.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdrBciZ4Eea8yuk7XizVRA" name="Single Environment" sectionFile="ui/SingleEnvironment.xwt">
-      <widget href="ui/SingleEnvironment.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdrBcyZ4Eea8yuk7XizVRA" name="Multiple Environment" sectionFile="ui/MultipleEnvironment.xwt">
-      <widget href="ui/MultipleEnvironment.xwt#/"/>
-    </sections>
-    <sections xmi:id="_DdrBdCZ4Eea8yuk7XizVRA" name="Single ReceiveAnyEvent" sectionFile="ui/SingleReceiveAnyEvent.xwt">
+    <sections xmi:id="_dSGdMO94EeaWHe1FUDLuKA" name="Single ReceiveAnyEvent" sectionFile="ui/SingleReceiveAnyEvent.xwt">
       <widget href="ui/SingleReceiveAnyEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_DdrogCZ4Eea8yuk7XizVRA" name="Multiple ReceiveAnyEvent" sectionFile="ui/MultipleReceiveAnyEvent.xwt">
+    <sections xmi:id="_dSGdMe94EeaWHe1FUDLuKA" name="Multiple ReceiveAnyEvent" sectionFile="ui/MultipleReceiveAnyEvent.xwt">
       <widget href="ui/MultipleReceiveAnyEvent.xwt#/"/>
     </sections>
-    <sections xmi:id="_StxR8DeQEeaHo9nikJ-D7Q" name="SectionProperty" sectionFile="ui/SectionProperty.xwt">
-      <widget href="ui/SectionProperty.xwt#/"/>
+    <sections xmi:id="_dSHEQO94EeaWHe1FUDLuKA" name="Single Part" sectionFile="ui/SinglePart.xwt">
+      <widget href="ui/SinglePart.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSHrUO94EeaWHe1FUDLuKA" name="Multiple Part" sectionFile="ui/MultiplePart.xwt">
+      <widget href="ui/MultiplePart.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSHrUe94EeaWHe1FUDLuKA" name="Single TimedTransition" sectionFile="ui/SingleTimedTransition.xwt">
+      <widget href="ui/SingleTimedTransition.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSISYO94EeaWHe1FUDLuKA" name="Multiple TimedTransition" sectionFile="ui/MultipleTimedTransition.xwt">
+      <widget href="ui/MultipleTimedTransition.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSJggO94EeaWHe1FUDLuKA" name="Single Buffer" sectionFile="ui/SingleBuffer.xwt">
+      <widget href="ui/SingleBuffer.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSKHkO94EeaWHe1FUDLuKA" name="Multiple Buffer" sectionFile="ui/MultipleBuffer.xwt">
+      <widget href="ui/MultipleBuffer.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSKHke94EeaWHe1FUDLuKA" name="Single Block" sectionFile="ui/SingleBlock.xwt">
+      <widget href="ui/SingleBlock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSKuoO94EeaWHe1FUDLuKA" name="Multiple Block" sectionFile="ui/MultipleBlock.xwt">
+      <widget href="ui/MultipleBlock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSLVsO94EeaWHe1FUDLuKA" name="Single FormalBlock" sectionFile="ui/SingleFormalBlock.xwt">
+      <widget href="ui/SingleFormalBlock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSLVse94EeaWHe1FUDLuKA" name="Multiple FormalBlock" sectionFile="ui/MultipleFormalBlock.xwt">
+      <widget href="ui/MultipleFormalBlock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSLVsu94EeaWHe1FUDLuKA" name="Single Clock" sectionFile="ui/SingleClock.xwt">
+      <widget href="ui/SingleClock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSL8wO94EeaWHe1FUDLuKA" name="Multiple Clock" sectionFile="ui/MultipleClock.xwt">
+      <widget href="ui/MultipleClock.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSMj0O94EeaWHe1FUDLuKA" name="Single Configuration" sectionFile="ui/SingleConfiguration.xwt">
+      <widget href="ui/SingleConfiguration.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSMj0e94EeaWHe1FUDLuKA" name="Multiple Configuration" sectionFile="ui/MultipleConfiguration.xwt">
+      <widget href="ui/MultipleConfiguration.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSNK4O94EeaWHe1FUDLuKA" name="Single DirectedPort" sectionFile="ui/SingleDirectedPort.xwt">
+      <widget href="ui/SingleDirectedPort.xwt#/"/>
+    </sections>
+    <sections xmi:id="_dSNK4e94EeaWHe1FUDLuKA" name="Multiple DirectedPort" sectionFile="ui/MultipleDirectedPort.xwt">
+      <widget href="ui/MultipleDirectedPort.xwt#/"/>
     </sections>
   </tabs>
-  <views xmi:id="_8X1nMSZ3Eea8yuk7XizVRA" name="Single FlowVariable" sections="_Dbvu0CZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1njSZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nMiZ3Eea8yuk7XizVRA" name="isSingleFlowVariable">
+  <views xmi:id="_ZuqLoe94EeaWHe1FUDLuKA" name="Single ReceiveSignalEvent" sections="_dSFPEO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyxu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLou94EeaWHe1FUDLuKA" name="isSingleReceiveSignalEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nMyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FlowVariable"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLo-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveSignalEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nNyZ3Eea8yuk7XizVRA" name="Single FormalModel" sections="_DbwV4CZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nmiZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nOCZ3Eea8yuk7XizVRA" name="isSingleFormalModel">
+  <views xmi:id="_ZuqLpO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple ReceiveSignalEvent" sections="_dSFPEe94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyxu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLpe94EeaWHe1FUDLuKA" name="isMultipleReceiveSignalEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nOSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FormalModel"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLpu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveSignalEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nPSZ3Eea8yuk7XizVRA" name="Single ReceiveSignalEvent" sections="_DdmwASZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nmSZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nPiZ3Eea8yuk7XizVRA" name="isSingleReceiveSignalEvent">
+  <views xmi:id="_ZuqLp-94EeaWHe1FUDLuKA" name="Single ReceiveEvent" sections="_dSF2IO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_ZuqyzO94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLqO94EeaWHe1FUDLuKA" name="isSingleReceiveEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nPyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::ReceiveSignalEvent"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLqe94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nQyZ3Eea8yuk7XizVRA" name="Single ReceiveEvent" sections="_DdmwAyZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nkCZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nRCZ3Eea8yuk7XizVRA" name="isSingleReceiveEvent">
+  <views xmi:id="_ZuqLqu94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple ReceiveEvent" sections="_dSF2Ie94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_ZuqyzO94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLq-94EeaWHe1FUDLuKA" name="isMultipleReceiveEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nRSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::ReceiveEvent"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLrO94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nSSZ3Eea8yuk7XizVRA" name="Single FifoBehavior" sections="_DdnXESZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nhiZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nSiZ3Eea8yuk7XizVRA" name="isSingleFifoBehavior">
+  <views xmi:id="_ZuqLre94EeaWHe1FUDLuKA" name="Single ReceiveAnyEvent" sections="_dSGdMO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyy-94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLru94EeaWHe1FUDLuKA" name="isSingleReceiveAnyEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nSyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FifoBehavior"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLr-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveAnyEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nTyZ3Eea8yuk7XizVRA" name="Single ConnectorBehavior" sections="_Ddn-ISZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1njyZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nUCZ3Eea8yuk7XizVRA" name="isSingleConnectorBehavior">
+  <views xmi:id="_ZuqLsO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple ReceiveAnyEvent" sections="_dSGdMe94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyy-94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLse94EeaWHe1FUDLuKA" name="isMultipleReceiveAnyEvent">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nUSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::ConnectorBehavior"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLsu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::ReceiveAnyEvent"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nVSZ3Eea8yuk7XizVRA" name="Single FormalContext" sections="_DdolMCZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1niCZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nViZ3Eea8yuk7XizVRA" name="isSingleFormalContext">
+  <views xmi:id="_ZuqLs-94EeaWHe1FUDLuKA" name="Single Part" sections="_dSHEQO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy0u94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLtO94EeaWHe1FUDLuKA" name="isSinglePart">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nVyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FormalContext"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLte94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Part"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nWyZ3Eea8yuk7XizVRA" name="Single FormalBlock" sections="_DdpMQSZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nlSZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nXCZ3Eea8yuk7XizVRA" name="isSingleFormalBlock">
+  <views xmi:id="_ZuqLtu94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple Part" sections="_dSHrUO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy0u94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLt-94EeaWHe1FUDLuKA" name="isMultiplePart">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nXSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FormalBlock"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLuO94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Part"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nYSZ3Eea8yuk7XizVRA" name="Single FlowPort" sections="_DdpzUCZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nkiZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nYiZ3Eea8yuk7XizVRA" name="isSingleFlowPort">
+  <views xmi:id="_ZuqLue94EeaWHe1FUDLuKA" name="Single TimedTransition" sections="_dSHrUe94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyx-94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLuu94EeaWHe1FUDLuKA" name="isSingleTimedTransition">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nYyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::FlowPort"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLu-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::TimedTransition"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nZyZ3Eea8yuk7XizVRA" name="Single BlockPart" sections="_DdqaYCZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nlyZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1naCZ3Eea8yuk7XizVRA" name="isSingleBlockPart">
+  <views xmi:id="_ZuqLvO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple TimedTransition" sections="_dSISYO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyx-94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLve94EeaWHe1FUDLuKA" name="isMultipleTimedTransition">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1naSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::BlockPart"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLvu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::TimedTransition"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nbSZ3Eea8yuk7XizVRA" name="Single TimedTransition" sections="_DdqaYiZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nniZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1nbiZ3Eea8yuk7XizVRA" name="isSingleTimedTransition">
+  <views xmi:id="_ZuqLv-94EeaWHe1FUDLuKA" name="Single Buffer" sections="_dSJggO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_ZuqyxO94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLwO94EeaWHe1FUDLuKA" name="isSingleBuffer">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1nbyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::TimedTransition"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLwe94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Buffer"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1ncyZ3Eea8yuk7XizVRA" name="Single RdvBehavior" sections="_DdrBcCZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1njCZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1ndCZ3Eea8yuk7XizVRA" name="isSingleRdvBehavior">
+  <views xmi:id="_ZuqLwu94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple Buffer" sections="_dSKHkO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_ZuqyxO94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLw-94EeaWHe1FUDLuKA" name="isMultipleBuffer">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1ndSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::RdvBehavior"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLxO94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Buffer"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1neSZ3Eea8yuk7XizVRA" name="Single Environment" sections="_DdrBciZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nlCZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1neiZ3Eea8yuk7XizVRA" name="isSingleEnvironment">
+  <views xmi:id="_ZuqLxe94EeaWHe1FUDLuKA" name="Single Block" sections="_dSKHke94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyye94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLxu94EeaWHe1FUDLuKA" name="isSingleBlock">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1neyZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::Environment"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLx-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Block"/>
     </constraints>
   </views>
-  <views xmi:id="_8X1nfyZ3Eea8yuk7XizVRA" name="Single ReceiveAnyEvent" sections="_DdrBdCZ4Eea8yuk7XizVRA" automaticContext="true" datacontexts="_8X1nnSZ3Eea8yuk7XizVRA">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_8X1ngCZ3Eea8yuk7XizVRA" name="isSingleReceiveAnyEvent">
+  <views xmi:id="_ZuqLyO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple Block" sections="_dSKuoO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyye94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLye94EeaWHe1FUDLuKA" name="isMultipleBlock">
       <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
-      <properties xsi:type="constraints:ValueProperty" xmi:id="_8X1ngSZ3Eea8yuk7XizVRA" name="stereotypeName" value="fml::ReceiveAnyEvent"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLyu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Block"/>
     </constraints>
   </views>
-  <views xmi:id="_M2LMcDeQEeaHo9nikJ-D7Q" name="Property" sections="_StxR8DeQEeaHo9nikJ-D7Q">
-    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_RYHtoDeQEeaHo9nikJ-D7Q" name="isProperty">
-      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.0"/>
-	  <properties xsi:type="constraints:ValueProperty" xmi:id="_69ie3aDJEeSZxfCXzZz3-w" name="umlClassName" value="Property"/>      
+  <views xmi:id="_ZuqLy-94EeaWHe1FUDLuKA" name="Single FormalBlock" sections="_dSLVsO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy0O94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLzO94EeaWHe1FUDLuKA" name="isSingleFormalBlock">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqLze94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::FormalBlock"/>
     </constraints>
   </views>
-  <dataContexts xmi:id="_8X1nhSZ3Eea8yuk7XizVRA" name="fml">
-    <elements xmi:id="_8X1nhiZ3Eea8yuk7XizVRA" name="FifoBehavior" supertypes="_8X1njyZ3Eea8yuk7XizVRA">
-      <properties xmi:id="_8X1nhyZ3Eea8yuk7XizVRA" name="size"/>
-    </elements>
-    <elements xmi:id="_8X1niCZ3Eea8yuk7XizVRA" name="FormalContext" supertypes="_8X1nlSZ3Eea8yuk7XizVRA">
-      <properties xmi:id="_8X1niSZ3Eea8yuk7XizVRA" name="env" type="Reference"/>
-      <properties xmi:id="_8X1niiZ3Eea8yuk7XizVRA" name="timed" type="Boolean"/>
-      <properties xmi:id="_8X1niyZ3Eea8yuk7XizVRA" name="input_enabled" type="Boolean"/>
-    </elements>
-    <elements xmi:id="_8X1njCZ3Eea8yuk7XizVRA" name="RdvBehavior" supertypes="_8X1njyZ3Eea8yuk7XizVRA"/>
-    <elements xmi:id="_8X1njSZ3Eea8yuk7XizVRA" name="FlowVariable">
-      <properties xmi:id="_8X1njiZ3Eea8yuk7XizVRA" name="DirectionKind" type="Enumeration"/>
+  <views xmi:id="_ZuqLzu94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple FormalBlock" sections="_dSLVse94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy0O94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqLz-94EeaWHe1FUDLuKA" name="isMultipleFormalBlock">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqysO94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::FormalBlock"/>
+    </constraints>
+  </views>
+  <views xmi:id="_Zuqyse94EeaWHe1FUDLuKA" name="Single Clock" sections="_dSLVsu94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyyu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_Zuqysu94EeaWHe1FUDLuKA" name="isSingleClock">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_Zuqys-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Clock"/>
+    </constraints>
+  </views>
+  <views xmi:id="_ZuqytO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple Clock" sections="_dSL8wO94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyyu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_Zuqyte94EeaWHe1FUDLuKA" name="isMultipleClock">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_Zuqytu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Clock"/>
+    </constraints>
+  </views>
+  <views xmi:id="_Zuqyt-94EeaWHe1FUDLuKA" name="Single Configuration" sections="_dSMj0O94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy1O94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_ZuqyuO94EeaWHe1FUDLuKA" name="isSingleConfiguration">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_Zuqyue94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Configuration"/>
+    </constraints>
+  </views>
+  <views xmi:id="_Zuqyuu94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple Configuration" sections="_dSMj0e94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqy1O94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_Zuqyu-94EeaWHe1FUDLuKA" name="isMultipleConfiguration">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_ZuqyvO94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::Configuration"/>
+    </constraints>
+  </views>
+  <views xmi:id="_Zuqyve94EeaWHe1FUDLuKA" name="Single DirectedPort" sections="_dSNK4O94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyzu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_Zuqyvu94EeaWHe1FUDLuKA" name="isSingleDirectedPort">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_Zuqyv-94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::DirectedPort"/>
+    </constraints>
+  </views>
+  <views xmi:id="_ZuqywO94EeaWHe1FUDLuKA" elementMultiplicity="-1" name="Multiple DirectedPort" sections="_dSNK4e94EeaWHe1FUDLuKA" automaticContext="true" datacontexts="_Zuqyzu94EeaWHe1FUDLuKA">
+    <constraints xsi:type="constraints:SimpleConstraint" xmi:id="_Zuqywe94EeaWHe1FUDLuKA" name="isMultipleDirectedPort">
+      <constraintType href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@constraintTypes.1"/>
+      <properties xsi:type="constraints:ValueProperty" xmi:id="_Zuqywu94EeaWHe1FUDLuKA" name="stereotypeName" value="fml::DirectedPort"/>
+    </constraints>
+  </views>
+  <dataContexts xmi:id="_Zuqyw-94EeaWHe1FUDLuKA" name="fml">
+    <elements xmi:id="_ZuqyxO94EeaWHe1FUDLuKA" name="Buffer">
+      <properties xmi:id="_Zuqyxe94EeaWHe1FUDLuKA" name="kind" type="Enumeration"/>
       <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yG6DJEeSZxfCXzZz3-w"/>
     </elements>
-    <elements xmi:id="_8X1njyZ3Eea8yuk7XizVRA" name="ConnectorBehavior">
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690zIKDJEeSZxfCXzZz3-w"/>
+    <elements xmi:id="_Zuqyxu94EeaWHe1FUDLuKA" name="ReceiveSignalEvent"/>
+    <elements xmi:id="_Zuqyx-94EeaWHe1FUDLuKA" name="TimedTransition">
+      <properties xmi:id="_ZuqyyO94EeaWHe1FUDLuKA" name="tguard" type="Reference"/>
+      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yiKDJEeSZxfCXzZz3-w"/>
     </elements>
-    <elements xmi:id="_8X1nkCZ3Eea8yuk7XizVRA" name="ReceiveEvent">
-      <properties xmi:id="_8X1nkSZ3Eea8yuk7XizVRA" name="parameters" type="Reference" multiplicity="-1"/>
-    </elements>
-    <elements xmi:id="_8X1nkiZ3Eea8yuk7XizVRA" name="FlowPort">
-      <properties xmi:id="_8X1nkyZ3Eea8yuk7XizVRA" name="direction" type="Enumeration"/>
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690ylaDJEeSZxfCXzZz3-w"/>
-    </elements>
-    <elements xmi:id="_8X1nlCZ3Eea8yuk7XizVRA" name="Environment">
+    <elements xmi:id="_Zuqyye94EeaWHe1FUDLuKA" name="Block" supertypes="_Zuqy0O94EeaWHe1FUDLuKA"/>
+    <elements xmi:id="_Zuqyyu94EeaWHe1FUDLuKA" name="Clock">
       <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yG6DJEeSZxfCXzZz3-w"/>
     </elements>
-    <elements xmi:id="_8X1nlSZ3Eea8yuk7XizVRA" name="FormalBlock">
-      <properties xmi:id="_8X1nliZ3Eea8yuk7XizVRA" name="clocks" type="Reference" multiplicity="-1"/>
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yXqDJEeSZxfCXzZz3-w"/>
-    </elements>
-    <elements xmi:id="_8X1nlyZ3Eea8yuk7XizVRA" name="BlockPart">
-      <properties xmi:id="_8X1nmCZ3Eea8yuk7XizVRA" name="instance" type="Reference" multiplicity="-1"/>
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yG6DJEeSZxfCXzZz3-w"/>
-    </elements>
-    <elements xmi:id="_8X1nmSZ3Eea8yuk7XizVRA" name="ReceiveSignalEvent"/>
-    <elements xmi:id="_8X1nmiZ3Eea8yuk7XizVRA" name="FormalModel">
-      <properties xmi:id="_8X1nmyZ3Eea8yuk7XizVRA" name="xversion"/>
-      <properties xmi:id="_8X1nnCZ3Eea8yuk7XizVRA" name="mainContext" type="Reference"/>
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690y0aDJEeSZxfCXzZz3-w"/>
-    </elements>
-    <elements xmi:id="_8X1nnSZ3Eea8yuk7XizVRA" name="ReceiveAnyEvent">
-      <supertypes href="#_8X1nkCZ3Eea8yuk7XizVRA"/>
+    <elements xmi:id="_Zuqyy-94EeaWHe1FUDLuKA" name="ReceiveAnyEvent">
+      <supertypes href="#_ZuqyzO94EeaWHe1FUDLuKA"/>
       <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690z1aDJEeSZxfCXzZz3-w"/>
     </elements>
-    <elements xmi:id="_8X1nniZ3Eea8yuk7XizVRA" name="TimedTransition">
-      <properties xmi:id="_8X1nnyZ3Eea8yuk7XizVRA" name="tguard" type="Reference"/>
-      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yiKDJEeSZxfCXzZz3-w"/>
+    <elements xmi:id="_ZuqyzO94EeaWHe1FUDLuKA" name="ReceiveEvent">
+      <properties xmi:id="_Zuqyze94EeaWHe1FUDLuKA" name="parameters" type="Reference" multiplicity="-1"/>
+    </elements>
+    <elements xmi:id="_Zuqyzu94EeaWHe1FUDLuKA" name="DirectedPort">
+      <properties xmi:id="_Zuqyz-94EeaWHe1FUDLuKA" name="direction" type="Enumeration"/>
+      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690ylaDJEeSZxfCXzZz3-w"/>
+    </elements>
+    <elements xmi:id="_Zuqy0O94EeaWHe1FUDLuKA" name="FormalBlock">
+      <properties xmi:id="_Zuqy0e94EeaWHe1FUDLuKA" name="routingBehavior" type="Reference"/>
+      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yXqDJEeSZxfCXzZz3-w"/>
+    </elements>
+    <elements xmi:id="_Zuqy0u94EeaWHe1FUDLuKA" name="Part">
+      <properties xmi:id="_Zuqy0-94EeaWHe1FUDLuKA" name="instance" type="Reference" multiplicity="-1"/>
+      <supertypes href="ppe:/context/org.eclipse.papyrus.uml.properties/Model/UML/UML.ctx#_690yG6DJEeSZxfCXzZz3-w"/>
+    </elements>
+    <elements xmi:id="_Zuqy1O94EeaWHe1FUDLuKA" name="Configuration" supertypes="_Zuqy0O94EeaWHe1FUDLuKA">
+      <properties xmi:id="_Zuqy1e94EeaWHe1FUDLuKA" name="env" type="Reference" multiplicity="-1"/>
+      <properties xmi:id="_Zuqy1u94EeaWHe1FUDLuKA" name="timed" type="Boolean"/>
+      <properties xmi:id="_Zuqy1-94EeaWHe1FUDLuKA" name="input_enabled" type="Boolean"/>
     </elements>
     <modelElementFactory href="ppe:/environment/org.eclipse.papyrus.uml.properties/Model/Environment.xmi#//@modelElementFactories.2"/>
   </dataContexts>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBlock.xwt
similarity index 73%
rename from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
rename to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBlock.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBlock.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBuffer.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBuffer.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleBuffer.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleClock.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleClock.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleClock.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleConfiguration.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleConfiguration.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleConfiguration.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleDirectedPort.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleDirectedPort.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleDirectedPort.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleFormalBlock.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleFormalBlock.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleFormalBlock.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultiplePart.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultiplePart.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultiplePart.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveAnyEvent.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveAnyEvent.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveAnyEvent.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveEvent.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveEvent.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveEvent.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveSignalEvent.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveSignalEvent.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleReceiveSignalEvent.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleTimedTransition.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleTimedTransition.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/MultipleTimedTransition.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/Section 0.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/Section 0.xwt
deleted file mode 100644
index e69de29..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/Section 0.xwt
+++ /dev/null
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SectionProperty.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SectionProperty.xwt
deleted file mode 100644
index a513b0a..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SectionProperty.xwt
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite xmlns="http://www.eclipse.org/xwt/presentation"
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<ppe:StringEditor property="UML:NamedElement:name"
-		input="{Binding}"></ppe:StringEditor>
-	<ppe:ReferenceDialog property="UML:TypedElement:type"
-		input="{Binding}"></ppe:ReferenceDialog>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlock.xwt
similarity index 69%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlock.xwt
index e85c034..ebd3b64 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlock.xwt
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
 	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
@@ -11,6 +11,7 @@
 		<Composite.layout>
 			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
 		</Composite.layout>
-		<ppe:EnumCombo input="{Binding}" property="fml:FlowVariable:DirectionKind"></ppe:EnumCombo>
+		<ppe:ReferenceDialog input="{Binding}"
+			property="fml:FormalBlock:routingBehavior"></ppe:ReferenceDialog>
 	</Composite>
 </Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlockPart.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlockPart.xwt
deleted file mode 100644
index 4041dc3..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBlockPart.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:MultiReference input="{Binding}" property="fml:BlockPart:instance"></ppe:MultiReference>
-	</Composite>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBuffer.xwt
similarity index 71%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBuffer.xwt
index e85c034..3f3d9ac 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleBuffer.xwt
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
 	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
@@ -11,6 +11,6 @@
 		<Composite.layout>
 			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
 		</Composite.layout>
-		<ppe:EnumCombo input="{Binding}" property="fml:FlowVariable:DirectionKind"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}" property="fml:Buffer:kind"></ppe:EnumCombo>
 	</Composite>
 </Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleClock.xwt
similarity index 73%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleClock.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConnectorBehavior.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleClock.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConfiguration.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConfiguration.xwt
new file mode 100644
index 0000000..5a6cfeb
--- /dev/null
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleConfiguration.xwt
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
+	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
+	xmlns:x="http://www.eclipse.org/xwt">
+	<Composite.layout>
+		<ppel:PropertiesLayout></ppel:PropertiesLayout>
+	</Composite.layout>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:BooleanRadio input="{Binding}" property="fml:Configuration:timed"></ppe:BooleanRadio>
+		<ppe:BooleanRadio input="{Binding}"
+			property="fml:Configuration:input_enabled"></ppe:BooleanRadio>
+	</Composite>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:ReferenceDialog input="{Binding}"
+			property="fml:FormalBlock:routingBehavior"></ppe:ReferenceDialog>
+	</Composite>
+	<Composite>
+		<Composite.layout>
+			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
+		</Composite.layout>
+		<ppe:MultiReference input="{Binding}" property="fml:Configuration:env"></ppe:MultiReference>
+	</Composite>
+</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleDirectedPort.xwt
similarity index 71%
rename from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
rename to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleDirectedPort.xwt
index e85c034..5e94c8a 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleDirectedPort.xwt
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
 	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
@@ -11,6 +11,6 @@
 		<Composite.layout>
 			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
 		</Composite.layout>
-		<ppe:EnumCombo input="{Binding}" property="fml:FlowVariable:DirectionKind"></ppe:EnumCombo>
+		<ppe:EnumCombo input="{Binding}" property="fml:DirectedPort:direction"></ppe:EnumCombo>
 	</Composite>
 </Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleEnvironment.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleEnvironment.xwt
deleted file mode 100644
index 6bb62b5..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleEnvironment.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFifoBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFifoBehavior.xwt
deleted file mode 100644
index 4b02f4a..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFifoBehavior.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:StringEditor input="{Binding}" property="fml:FifoBehavior:size"></ppe:StringEditor>
-	</Composite>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowPort.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowPort.xwt
deleted file mode 100644
index bf2b8c2..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowPort.xwt
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:EnumCombo input="{Binding}" property="fml:FlowPort:direction"></ppe:EnumCombo>
-	</Composite>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalBlock.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalBlock.xwt
index cd7b5a6..ebd3b64 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalBlock.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalBlock.xwt
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
 	</Composite.layout>
@@ -10,6 +11,7 @@
 		<Composite.layout>
 			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
 		</Composite.layout>
-		<ppe:MultiReference input="{Binding}" property="fml:FormalBlock:clocks"></ppe:MultiReference>
+		<ppe:ReferenceDialog input="{Binding}"
+			property="fml:FormalBlock:routingBehavior"></ppe:ReferenceDialog>
 	</Composite>
 </Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalContext.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalContext.xwt
deleted file mode 100644
index 9f5959b..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalContext.xwt
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="2"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:BooleanRadio input="{Binding}" property="fml:FormalContext:timed"></ppe:BooleanRadio>
-		<ppe:BooleanRadio input="{Binding}"
-			property="fml:FormalContext:input_enabled"></ppe:BooleanRadio>
-	</Composite>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:ReferenceDialog input="{Binding}" property="fml:FormalContext:env"></ppe:ReferenceDialog>
-	</Composite>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:MultiReference input="{Binding}" property="fml:FormalBlock:clocks"></ppe:MultiReference>
-	</Composite>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalModel.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalModel.xwt
deleted file mode 100644
index 74c9092..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFormalModel.xwt
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:StringEditor input="{Binding}" property="fml:FormalModel:xversion"></ppe:StringEditor>
-	</Composite>
-	<Composite>
-		<Composite.layout>
-			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
-		</Composite.layout>
-		<ppe:ReferenceDialog input="{Binding}"
-			property="fml:FormalModel:mainContext"></ppe:ReferenceDialog>
-	</Composite>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SinglePart.xwt
similarity index 71%
copy from gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
copy to gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SinglePart.xwt
index e85c034..56aa6f6 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleFlowVariable.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SinglePart.xwt
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
 	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
@@ -11,6 +11,6 @@
 		<Composite.layout>
 			<ppel:PropertiesLayout numColumns="1"></ppel:PropertiesLayout>
 		</Composite.layout>
-		<ppe:EnumCombo input="{Binding}" property="fml:FlowVariable:DirectionKind"></ppe:EnumCombo>
+		<ppe:MultiReference input="{Binding}" property="fml:Part:instance"></ppe:MultiReference>
 	</Composite>
 </Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleRdvBehavior.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleRdvBehavior.xwt
deleted file mode 100644
index 6bb62b5..0000000
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleRdvBehavior.xwt
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Composite
-	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt">
-	<Composite.layout>
-		<ppel:PropertiesLayout></ppel:PropertiesLayout>
-	</Composite.layout>
-</Composite>
\ No newline at end of file
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveAnyEvent.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveAnyEvent.xwt
index 5458bff..a44a168 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveAnyEvent.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveAnyEvent.xwt
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
 	</Composite.layout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveEvent.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveEvent.xwt
index 5458bff..a44a168 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveEvent.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveEvent.xwt
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
 	</Composite.layout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveSignalEvent.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveSignalEvent.xwt
index 6bb62b5..926c075 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveSignalEvent.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleReceiveSignalEvent.xwt
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
 	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
diff --git a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleTimedTransition.xwt b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleTimedTransition.xwt
index 0e0de09..46278a1 100644
--- a/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleTimedTransition.xwt
+++ b/gui/org.eclipse.efm.papyrus.views.common/resources/properties/ui/SingleTimedTransition.xwt
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<Composite
+<Composite xmlns="http://www.eclipse.org/xwt/presentation"
+	xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets"
+	xmlns:j="clr-namespace:java.lang"
 	xmlns:ppel="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets.layout"
-	xmlns="http://www.eclipse.org/xwt/presentation" xmlns:j="clr-namespace:java.lang"
-	xmlns:x="http://www.eclipse.org/xwt" xmlns:ppe="clr-namespace:org.eclipse.papyrus.infra.properties.ui.widgets">
+	xmlns:x="http://www.eclipse.org/xwt">
 	<Composite.layout>
 		<ppel:PropertiesLayout></ppel:PropertiesLayout>
 	</Composite.layout>
