Merged branch 'develop' into 'master'

# Manual update of:
#	build/org.eclipse.app4mc.target/PHOTON/_gen/_photon_platform_others_latest.target
#	build/org.eclipse.app4mc.target/PHOTON/app4mc_addon_migration.tpd
diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml
index f86aae3..710a9ec 100644
--- a/.mvn/extensions.xml
+++ b/.mvn/extensions.xml
@@ -3,6 +3,6 @@
   <extension>
     <groupId>org.eclipse.tycho.extras</groupId>
     <artifactId>tycho-pomless</artifactId>
-    <version>1.4.0</version>
+    <version>1.6.0</version>
   </extension>
 </extensions>
\ No newline at end of file
diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index 0000000..500ac97
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,55 @@
+
+# Contributing to Eclipse APP4MC
+
+Thanks for your interest in this project.
+
+## Project description
+
+Application Platform Project for Multi Core
+
+* https://projects.eclipse.org/projects/technology.app4mc
+
+## Developer resources
+
+Information regarding source code management, builds, coding standards, and
+more.
+
+* https://projects.eclipse.org/projects/technology.app4mc/developer
+
+The project maintains the following source code repositories
+
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.addon.migration
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.examples
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.tools
+
+This project uses Bugzilla to track ongoing development and issues.
+
+* Search for issues: https://bugs.eclipse.org/bugs/buglist.cgi?product=APP4MC
+* Create a new report:
+   https://bugs.eclipse.org/bugs/enter_bug.cgi?product=APP4MC
+
+Be sure to search for existing bugs before you create another one. Remember that
+contributions are always welcome!
+
+## Eclipse Contributor Agreement
+
+Before your contribution can be accepted by the project team contributors must
+electronically sign the Eclipse Contributor Agreement (ECA).
+
+* http://www.eclipse.org/legal/ECA.php
+
+Commits that are provided by non-committers must have a Signed-off-by field in
+the footer indicating that the author is aware of the terms by which the
+contribution has been provided to the project. The non-committer must
+additionally have an Eclipse Foundation account and must have a signed Eclipse
+Contributor Agreement (ECA) on file.
+
+For more information, please see the Eclipse Committer Handbook:
+https://www.eclipse.org/projects/handbook/#resources-commit
+
+## Contact
+
+Contact the project developers via the project's "dev" list.
+
+* https://dev.eclipse.org/mailman/listinfo/app4mc-dev
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..2273b2c
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,289 @@
+
+# Notices for Eclipse APP4MC
+
+This content is produced and maintained by the Eclipse APP4MC project.
+
+* Project home: https://projects.eclipse.org/projects/technology.app4mc
+
+## Trademarks
+
+Eclipse APP4MC, and APP4MC are trademarks of the Eclipse Foundation.
+
+## Copyright
+
+All content is the property of the respective authors or their employers. For
+more information regarding authorship of content, please consult the listed
+source code repository logs.
+
+## Declared Project Licenses
+
+This program and the accompanying materials are made available under the terms
+of the Eclipse Public License v. 2.0 which is available at
+http://www.eclipse.org/legal/epl-2.0.
+
+SPDX-License-Identifier: EPL-2.0
+
+## Source Code
+
+The project maintains the following source code repositories:
+
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.addon.migration
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.examples
+* https://git.eclipse.org/r/plugins/gitiles/app4mc/org.eclipse.app4mc.tools
+
+## Third-party Content
+
+This project leverages the following third party content.
+
+Apache Commons Lang (2.6)
+
+* License: Apache License, 2.0
+
+Apache Commons Lang (3.1.0)
+
+* License: Apache License, 2.0
+
+Apache Commons Math (2.1.0)
+
+* License: Apache License, 2.0, New BSD license 
+
+Apache Commons Math (3.5.0)
+
+* License: Apache License, 2.0, New BSD License
+
+Apache Jena-ARQ (2.10.0)
+
+* License: Apache-2.0 
+
+Apache Jena-Core (2.7.1)
+
+* License: Apache License 2.0, New BSD license
+
+Apache jena-iri (0.9.2)
+
+* License: Apache License, 2.0
+
+Apache Jena-TDB (0.10.0)
+
+* License: Apache-2.0 
+
+ArduiPi Adafruit SSD1306 OLED Driver SHA Commit
+37956b16aa8514dde5b6ecba04a20cc0babe39f1 (n/a)
+
+* License: BSD-2-Clause
+
+BCEL.Jar (5.2)
+
+* License: Apache License, 2.0
+
+choco (4.0.6)
+
+* License: BSD-4-Clause
+* Project: http://www.choco-solver.org
+* Source: https://github.com/chocoteam/choco-solver
+
+choco-cutoffseq (1.0.4)
+
+* License: BSD-4-Clause
+* Project: https://github.com/chocoteam/cutoffseq
+* Source: https://github.com/chocoteam/cutoffseq/releases/tag/pf4cs-1.0.4
+
+choco-graph (4.2.0)
+
+* License: BSD-4-Clause AND BSD-2-Clause AND BSD-3-Clause
+* Project: https://github.com/chocoteam/choco-graph
+* Source: https://github.com/chocoteam/choco-graph
+
+choco-sat (1.0.2)
+
+* License: BSD-3-Clause
+* Project: https://github.com/chocoteam/choco-sat
+* Source: https://github.com/chocoteam/choco-sat
+
+choco-solver (4.0.9)
+
+* License: BSD-4-Clause
+* Project: http://www.choco-solver.org
+* Source: https://github.com/chocoteam/choco-solver/releases/tag/4.0.9
+
+cpprof-java (1.3.0)
+
+* License: MIT
+* Project: https://github.com/cp-profiler/java-integration
+* Source: https://github.com/cp-profiler/java-integration
+
+dk.brics.automaton (18.01.2018)
+
+* License: BSD 3-Clause
+* Project: http://www.brics.dk/automaton/
+* Source: https://github.com/cs-au-dk/dk.brics.automaton
+
+easymock (3.3.1)
+
+* License: Apache License, 2.0
+* Project: http://easymock.org/
+* Source: https://github.com/easymock/easymock/archive/easymock-3.3.1.zip
+
+Google Guava (15.0.0)
+
+* License: Apache License, 2.0
+
+Google Guava (21.0)
+
+* License: Apache License, 2.0
+
+INCHRON Realtime System Model (2.98.2)
+
+* License: EPL-2.0
+* Project: http://www.inchron.com
+* Source: http://eclipse.inchron.com/realtime/updatesites/release/2.98.2/
+
+Inchron Realtime System model (2.98.5)
+
+* License: EPL-2.0
+* Project: http://www.inchron.com
+* Source: http://eclipse.inchron.com/realtime/updatesites/release/2.98.5/
+
+java_cup runtime Version: 10k (n/a)
+
+* License: Java Cup License (MIT Style)
+
+javassist (3.19.0)
+
+* License: Mozilla Public License 1.1 (MPL), Apache 2.0 
+* Project: http://jboss-javassist.github.io/javassist/
+* Source:
+   https://github.com/jboss-javassist/javassist/archive/rel_3_19_0_ga.zip
+
+jaxen (1.1.6)
+
+* License: BSD License, W3C (One File)
+* Project: https://github.com/codehaus/jaxen
+* Source: https://github.com/codehaus/jaxen/tree/V_1_1_6_Final/jaxen
+
+jcl-over-slf4j-1.7.10.jar (1.7.10)
+
+* License: Apache-2.0
+
+jdom (2.0.6)
+
+* License: JDom License (based on Apache 1.1 Style License)
+* Project: http://www.jdom.org
+* Source: http://www.jdom.org/dist/binary/jdom-2.0.6.zip
+
+jenetics (3.0.1)
+
+* License: Apache License, 2.0
+* Project: http://jenetics.io/
+* Source: https://github.com/jenetics/jenetics/releases/tag/v3.0.1
+
+Jenetics (3.8.0)
+
+* License: Apache-2.0
+* Project: http://jenetics.io/
+* Source: https://github.com/jenetics/jenetics/tree/v3.8.0
+
+jgrapht (0.9.0)
+
+* License: Eclipse Public License 1.0
+* Project: http://jgrapht.org/
+
+jgrapht-core (1.1.0)
+
+* License: EPL-1.0 OR LGPL-2.1-or-later 	
+
+JHHC-SR04 (n/a)
+
+* License: Pending
+
+JHPWMDriver (n/a)
+
+* License: MIT
+
+JUnit (4.12)
+
+* License: Eclipse Public License
+
+log4j (1.2.15)
+
+* License: Apache License, 2.0
+
+log4j over slf4j 1.7.10.jar (1.7.10)
+
+* License: Apache-2.0
+
+mxGraph (3.7.0.0)
+
+* License: Apache-2.0 AND BSD-3-Clause
+* Project: https://jgraph.github.io/mxgraph/
+* Source: https://github.com/jgraph/mxgraph
+
+net.sf.trove4j:trove4j (3.0.3)
+
+* License: GNU Library or 'Lesser' General Public License (LGPL) 2.1, MIT Style
+   (2 Files)
+
+ojalgo (39.0)
+
+* License: MIT License, BSD, Public Domain
+* Project: http://ojalgo.org/
+* Source: https://github.com/optimatika/ojAlgo/tree/v39
+
+org.xerial.sqlite (3.7.2)
+
+* License: Apache License, 2.0, ISC License
+
+pf4cs (1.0.5)
+
+* License: BSD-4-Clause
+* Project: https://github.com/chocoteam/pf4cs
+* Source: https://github.com/chocoteam/pf4cs
+
+plantUML (2018.8)
+
+* License: (EPL-1.0 OR BSD-3-CLAUSE OR MIT OR Apache-2.0 OR GPL-2.0-or-later OR
+   LGPL-3.0-or-later) AND (EPL-1.0 OR BSD-3-CLAUSE OR MIT OR Apache-2.0 OR
+   GPL-2.0-or-later OR LGPL-3.0-or-later OR AGPL-3.0-or-later) AND BSD-3-Clause
+   AND MIT AND Apache-2.0  
+
+PlantUML EPL Version: 8000 (n/a)
+
+* License: Eclipse Public License + Public Domain (One File)
+
+protobuf-java (3.2.0)
+
+* License: New BSD license
+
+resolver.jar (1.2)
+
+* License: Apache License, 2.0
+
+serializer.jar (2.7.1)
+
+* License: Apache License, 2.0
+
+SLF4J API Module (slf4j-api-1.7.10.jar) (1.7.10)
+
+* License: MIT
+
+xalan 2.7.1 top level jar (2.7.1)
+
+* License: Apache License, 2.0
+
+Xerces (2.9.0)
+
+* License: Apache License, 2.0
+
+xml-apis.jar (1.3.04)
+
+* License: Apache License, 2.0, Public Domain, W3C
+
+## Cryptography
+
+Content may contain encryption software. The country in which you are currently
+may have restrictions on the import, possession, and use, and/or re-export to
+another country, of encryption software. BEFORE using any encryption software,
+please check the country's laws, regulations and policies concerning the import,
+possession, or use, and re-export of encryption software, to see if this is
+permitted.
diff --git a/build/org.eclipse.app4mc.build/pom.xml b/build/org.eclipse.app4mc.build/pom.xml
index 78654b4..90ce7b3 100644
--- a/build/org.eclipse.app4mc.build/pom.xml
+++ b/build/org.eclipse.app4mc.build/pom.xml
@@ -6,7 +6,7 @@
 
 	<groupId>org.eclipse.app4mc.build</groupId>
 	<artifactId>parent</artifactId>
-	<version>0.9.6-SNAPSHOT</version>
+	<version>0.9.7-SNAPSHOT</version>
 
 	<packaging>pom</packaging>
 
@@ -14,8 +14,8 @@
 	<name>APP4MC Tool Platform</name>
 
 	<properties>
-		<tycho.version>1.4.0</tycho.version>
-		<tycho-extras-version>1.4.0</tycho-extras-version>
+		<tycho.version>1.6.0</tycho.version>
+		<tycho-extras-version>1.6.0</tycho-extras-version>
 		
 		<build-helper.version>1.9.1</build-helper.version>
 		<org.jboss.tools.tycho-plugins.version>1.4.0</org.jboss.tools.tycho-plugins.version>
@@ -23,6 +23,13 @@
 		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 		<maven.build.timestamp.format>yyyyMMdd-HHmmss</maven.build.timestamp.format>
+
+		<jacoco.version>0.8.5</jacoco.version>
+		<sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/../../build/org.eclipse.app4mc.p2repo/target/site/jacoco-aggregate/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
+		<sonar.surefire.reportsPath>../../tests/${project.artifactId}.tests/target/surefire-reports/</sonar.surefire.reportsPath>
+		<sonar.exclusions>**/src-gen/**/*,**/xtend-gen/**/*</sonar.exclusions>
+		<sonar.issue.ignore.allfile>generated</sonar.issue.ignore.allfile>
+		<sonar.issue.ignore.allfile.generated.fileRegexp>@generated</sonar.issue.ignore.allfile.generated.fileRegexp>
 	</properties>
 	
 	<pluginRepositories>
@@ -118,36 +125,12 @@
 		<module>../../plugins/org.sqlite.jdbc</module>
 		<!-- <module>../../plugins/org.slf4j.impl.custom</module> -->
 		
-		<!--
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.095</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.094</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.093</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.092</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.091</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.090</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.083</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.082</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.081</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.080</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.072</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.071</module>
-		
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.common</module>
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.ui</module>
-		-->
-		
-		<!--<module>../../plugins/org.jdom2</module>
-		<module>../../plugins/org.jaxen</module>
-		-->
 		<module>../../plugins/org.eclipse.app4mc.amalthea.editors.sirius</module>
 		<module>../../plugins/org.eclipse.app4mc.amalthea.editors.sirius.design</module>
 		<module>../../plugins/org.eclipse.app4mc.amalthea.visualization.hw</module>
 		<module>../../plugins/net.sourceforge.plantuml</module>
 		
 		<module>../../plugins/org.eclipse.app4mc.help</module>
-		<!--
-		<module>../../plugins/org.eclipse.app4mc.amalthea.converters.help</module>
-		-->
 		<module>../../plugins/org.eclipse.app4mc.amalthea.model.help</module>
 		<module>../../plugins/org.eclipse.app4mc.amalthea.edit.help</module>
 		<module>../../plugins/org.eclipse.app4mc.amalthea.editors.help</module>
@@ -158,10 +141,6 @@
 
 		<!-- Features -->
 
-		<!--
-		<module>../../features/org.eclipse.app4mc.amalthea.converters</module>
-		<module>../../features/org.eclipse.app4mc.amalthea.converters.sdk</module>
-		-->
 		<module>../../features/org.eclipse.app4mc.amalthea.edit</module>
 		<module>../../features/org.eclipse.app4mc.amalthea.edit.sdk</module>
 		<module>../../features/org.eclipse.app4mc.amalthea.editors</module>
@@ -196,30 +175,12 @@
 
 		<!-- Other -->
 
-		<!--
-		<module>../org.eclipse.app4mc.converters.p2repo</module>
-		-->
 		<module>../org.eclipse.app4mc.p2repo</module>
 		<module>../org.eclipse.app4mc.platform.product</module>
 		<module>../org.eclipse.app4mc.target</module>
 
 		<!-- Tests -->
 		
-		<!--
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.071.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.072.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.080.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.081.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.082.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.083.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.090.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.091.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.092.test</module>
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.093.test</module>		
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.094.test</module>		
-		<module>../../tests/org.eclipse.app4mc.amalthea.converters.095.test</module>		
-		-->
-		
 		<module>../../tests/org.eclipse.app4mc.amalthea.model.tests</module>
 		
 		<module>../../tests/org.eclipse.app4mc.amalthea.validations.tests</module>
@@ -265,7 +226,7 @@
 						<baselineReplace>none</baselineReplace>
 						<baselineRepositories>
 							<repository>
-								<url>https://download.eclipse.org/app4mc/updatesites/releases/0.9.5/</url>
+								<url>https://download.eclipse.org/app4mc/updatesites/releases/0.9.6/</url>
 							</repository>
 						</baselineRepositories>
 					</configuration>
@@ -290,6 +251,12 @@
 						</extraClasspathElements>
 					</configuration>
 				</plugin>
+
+				<plugin>
+					<groupId>org.jacoco</groupId>
+					<artifactId>jacoco-maven-plugin</artifactId>
+					<version>${jacoco.version}</version>
+				</plugin>
 			</plugins>
 		</pluginManagement>
 
@@ -359,7 +326,7 @@
 						<artifact>
 							<groupId>org.eclipse.app4mc.build</groupId>
 							<artifactId>org.eclipse.app4mc.target</artifactId>
-							<version>0.9.6-SNAPSHOT</version>
+							<version>0.9.7-SNAPSHOT</version>
 							<classifier>./PHOTON/_gen/_photon_platform_others_latest</classifier>
 						</artifact>
 					</target>
@@ -406,40 +373,20 @@
 				</executions>
 			</plugin>
 			-->
-			
+
 			<plugin>
 				<groupId>org.jacoco</groupId>
 				<artifactId>jacoco-maven-plugin</artifactId>
-				<version>0.7.4.201502262128</version>
+
+				<configuration>
+					<sessionId>${project.artifactId}</sessionId>
+				</configuration>
 
 				<executions>
-					<!-- Prepares the property pointing to the JaCoCo runtime agent which
-						is passed as VM argument when Maven the Surefire plugin is executed. -->
 					<execution>
-						<id>pre-unit-test</id>
 						<goals>
 							<goal>prepare-agent</goal>
 						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<destFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</destFile>
-						</configuration>
-					</execution>
-
-					<!-- Ensures that the code coverage report for unit tests is created
-						after unit tests have been run. -->
-					<execution>
-						<id>post-unit-test</id>
-						<phase>verify</phase>
-						<goals>
-							<goal>report</goal>
-						</goals>
-						<configuration>
-							<!-- Sets the path to the file which contains the execution data. -->
-							<dataFile>${project.build.directory}/coverage-reports/jacoco-ut.exec</dataFile>
-							<!-- Sets the output directory for the code coverage report. -->
-							<outputDirectory>${project.reporting.outputDirectory}/jacoco-ut</outputDirectory>
-						</configuration>
 					</execution>
 				</executions>
 			</plugin>
diff --git a/build/org.eclipse.app4mc.converters.p2repo/.gitignore b/build/org.eclipse.app4mc.converters.p2repo/.gitignore
deleted file mode 100644
index ea8c4bf..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-/target
diff --git a/build/org.eclipse.app4mc.converters.p2repo/.project b/build/org.eclipse.app4mc.converters.p2repo/.project
deleted file mode 100644
index cc29e7b..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.converters.p2repo</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.UpdateSiteBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.UpdateSiteNature</nature>
-	</natures>
-</projectDescription>
diff --git a/build/org.eclipse.app4mc.converters.p2repo/about.html b/build/org.eclipse.app4mc.converters.p2repo/about.html
deleted file mode 100644
index 164f781..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/build/org.eclipse.app4mc.converters.p2repo/category.xml b/build/org.eclipse.app4mc.converters.p2repo/category.xml
deleted file mode 100644
index 219fc4f..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/category.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
-   <feature url="features/org.eclipse.app4mc.amalthea.converters_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters" version="0.9.6.qualifier">
-      <category name="org.eclipse.app4mc.amalthea.converters"/>
-   </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.converters.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters.sdk" version="0.9.6.qualifier">
-      <category name="org.eclipse.app4mc.amalthea.converters"/>
-   </feature>
-   <category-def name="org.eclipse.app4mc.amalthea.converters" label="APP4MC Converters"/>
-</site>
diff --git a/build/org.eclipse.app4mc.converters.p2repo/compositeContent.xml b/build/org.eclipse.app4mc.converters.p2repo/compositeContent.xml
deleted file mode 100644
index 561b278..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/compositeContent.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<?compositeMetadataRepository version='1.0.0'?>
-<repository name='APP4MC Tool Platform' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1'>
-  <properties size='2'>
-    <property name='p2.timestamp' value='1397033440899'/>
-  </properties>
-  <children size='9'>
-    <child location='http://download.eclipse.org/modeling/emf/emf/updates/releases'/>
-    <child location='http://download.eclipse.org/modeling/emf/compare/updates/releases'/>
-    <child location='http://download.eclipse.org/rmf/updates'/>
-    <child location='http://download.eclipse.org/sphinx/updates/interim'/>
-    <child location='http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases'/>
-    <child location='http://franca.eclipselabs.org.codespot.com/git/update_site/releases'/>
-    <child location='http://updates.yakindu.org/sct/kepler/releases'/>
-  </children>
-</repository>
diff --git a/build/org.eclipse.app4mc.converters.p2repo/epl-2.0.html b/build/org.eclipse.app4mc.converters.p2repo/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/build/org.eclipse.app4mc.converters.p2repo/pom.xml b/build/org.eclipse.app4mc.converters.p2repo/pom.xml
deleted file mode 100644
index cbd22f0..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/pom.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../org.eclipse.app4mc.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.build</groupId>
-		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.eclipse.app4mc.converters.p2repo</artifactId>
-	<packaging>eclipse-repository</packaging>
-
-	<pluginRepositories>
-		<pluginRepository>
-			<id>jboss-public-repository-group</id>
-			<name>JBoss Public Repository Group</name>
-			<url>http://repository.jboss.org/nexus/content/groups/public/</url>
-		</pluginRepository>
-
-		<pluginRepository>
-			<id>jboss-snapshots-repository</id>
-			<name>JBoss Snapshots Repository</name>
-			<url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
-		</pluginRepository>
-	</pluginRepositories>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-p2-repository-plugin</artifactId>
-				<version>${tycho.version}</version>
-
-				<configuration>
-					<compress/>
-				</configuration>
-			</plugin>
-
-			<plugin>
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-p2-director-plugin</artifactId>
-				<version>${tycho.version}</version>
-
-				<executions>
-					<execution>
-						<id>materialize-products</id>
-						<goals>
-							<goal>materialize-products</goal>
-						</goals>
-					</execution>
-
-					<execution>
-						<id>archive-products</id>
-						<goals>
-							<goal>archive-products</goal>
-						</goals>
-					</execution>
-				</executions>
-			</plugin>
-			
-			<plugin>
-				<groupId>org.jboss.tools.tycho-plugins</groupId>
-				<artifactId>repository-utils</artifactId>
-				<version>${org.jboss.tools.tycho-plugins.version}</version>
-
-				<executions>
-					<execution>
-						<id>generate-facade</id>
-						<phase>package</phase>
-	
-						<goals>
-							<goal>generate-repository-facade</goal>
-						</goals>
-	
-						<configuration>
-							<siteTemplateFolder>siteTemplate</siteTemplateFolder>
-							
-							<!-- Symbols are used while expanding index.html template -->
-							<symbols>
-								<update.site.name>${project.parent.name}</update.site.name>
-								<target.eclipse.version>4.3.2</target.eclipse.version>
-							</symbols>
-
-							<associateSites>
-								<site>http://hudson.eclipse.org/hudson/job/damos-master/lastSuccessfulBuild/artifact/update-site</site>
-								<site>http://download.eclipse.org/modeling/emf/emf/updates/releases</site>
-								<site>http://download.eclipse.org/modeling/emf/compare/updates/releases</site>
-								<site>http://download.eclipse.org/rmf/updates</site>
-								<site>http://download.eclipse.org/sphinx/updates/interim</site>
-								<site>http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases</site>
-								<site>http://franca.eclipselabs.org.codespot.com/git/update_site/releases</site>
-								<site>http://updates.yakindu.org/sct/kepler/releases</site>
-							</associateSites>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-		</plugins>
-	</build>
-
-</project>
diff --git a/build/org.eclipse.app4mc.converters.p2repo/siteTemplate/index.html b/build/org.eclipse.app4mc.converters.p2repo/siteTemplate/index.html
deleted file mode 100644
index ae0f77d..0000000
--- a/build/org.eclipse.app4mc.converters.p2repo/siteTemplate/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<html>
-	<head>
-		<title>${update.site.name} Update Site</title>
-	</head>
-
-	<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
-		
-		<h2 class="title">${update.site.name} - Use this URL in Eclipse to install ${update.site.name}</h2>
-	
-		<p>This is the Update Site for ${update.site.name}.
-			<ol>
-				<li>To install ${update.site.name} from this site, start up Eclipse ${target.eclipse.version}, then do:
-					<ul><code><strong>Help > Install New Software... ></strong></code></ul>
-				</li>
-				<li>Copy this site's URL into Eclipse, and hit Enter.</li>
-				<li>When the site loads, select the features to install, or click the <code><strong>Select All</strong></code> button.</li>
-				<li>To properly resolve all dependencies, check 
-					<ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>
-				<li>Click <code><strong>Next</strong></code>, agree to the license terms, and install.</li>
-			</ol>
-		</p>
-
-		<p>${site.contents}</p>
-	</body>
-</html>
\ No newline at end of file
diff --git a/build/org.eclipse.app4mc.p2repo/category.xml b/build/org.eclipse.app4mc.p2repo/category.xml
index 857324d..e4b00f7 100644
--- a/build/org.eclipse.app4mc.p2repo/category.xml
+++ b/build/org.eclipse.app4mc.p2repo/category.xml
@@ -1,81 +1,81 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <site>
-   <feature url="features/org.eclipse.app4mc.platform_0.9.6.qualifier.jar" id="org.eclipse.app4mc.platform" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.platform_0.9.7.qualifier.jar" id="org.eclipse.app4mc.platform" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.platform"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.platform.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.platform.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.platform.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.platform.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.platform"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.editors_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.editors" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.editors_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.editors" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.editors"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.editors.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.editors.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.editors.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.editors.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.editors"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.export_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.export" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.export_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.export" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.export"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.export.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.export.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.export.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.export.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.export"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.tracing_0.9.6.qualifier.jar" id="org.eclipse.app4mc.tracing" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.tracing_0.9.7.qualifier.jar" id="org.eclipse.app4mc.tracing" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.tracing"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.tracing.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.tracing.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.tracing.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.tracing.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.tracing"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.examples_0.9.6.qualifier.jar" id="org.eclipse.app4mc.examples" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.examples_0.9.7.qualifier.jar" id="org.eclipse.app4mc.examples" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.examples"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.examples.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.examples.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.examples.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.examples.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.examples"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.import_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.import" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.import_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.import" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.import"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.import.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.import.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.import.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.import.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.import"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.validation_0.9.6.qualifier.jar" id="org.eclipse.app4mc.validation" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.validation_0.9.7.qualifier.jar" id="org.eclipse.app4mc.validation" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.validation"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.validation.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.validation.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.validation.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.validation.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.validation"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.models_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.models" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.models_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.models" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.model"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.models.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.models.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.models.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.models.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.model"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.edit_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.edit" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.edit_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.edit" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.edit"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.edit.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.edit.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.edit.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.edit.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.edit"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.docu_0.9.6.qualifier.jar" id="org.eclipse.app4mc.docu" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.docu_0.9.7.qualifier.jar" id="org.eclipse.app4mc.docu" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.docu"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.docu.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.docu.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.docu.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.docu.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.docu"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.workflow.mwe_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.mwe" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.workflow.mwe_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.mwe" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.workflow"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.workflow.scripting_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.scripting" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.workflow.scripting_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.scripting" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.workflow"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.mwe.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.mwe.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.workflow"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.scripting.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.workflow.scripting.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.amalthea.workflow"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.converters_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.converters_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.modelmigration"/>
    </feature>
-   <feature url="features/org.eclipse.app4mc.amalthea.converters.sdk_0.9.6.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters.sdk" version="0.9.6.qualifier">
+   <feature url="features/org.eclipse.app4mc.amalthea.converters.sdk_0.9.7.qualifier.jar" id="org.eclipse.app4mc.amalthea.converters.sdk" version="0.9.7.qualifier">
       <category name="org.eclipse.app4mc.modelmigration"/>
    </feature>
    <category-def name="org.eclipse.app4mc.platform" label="APP4MC Tool Platform"/>
@@ -101,6 +101,6 @@
 <repository-reference location="http://download.eclipse.org/sirius/updates/releases/6.0.0/photon"  enabled="true" />
 <repository-reference location="http://download.eclipse.org/releases/photon"  enabled="true" />
 <repository-reference location="http://download.eclipse.org/cbi/updates/license"  enabled="true" />
-<repository-reference location="http://download.eclipse.org/app4mc/components/addon/migration/snapshot/"  enabled="true" />
+<repository-reference location="http://download.eclipse.org/app4mc/components/addon/migration/snapshot/p2repo"  enabled="true" />
 
 </site>
diff --git a/build/org.eclipse.app4mc.p2repo/pom.xml b/build/org.eclipse.app4mc.p2repo/pom.xml
index ce01d63..985cf6f 100644
--- a/build/org.eclipse.app4mc.p2repo/pom.xml
+++ b/build/org.eclipse.app4mc.p2repo/pom.xml
@@ -8,11 +8,34 @@
 		<relativePath>../org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.p2repo</artifactId>
 	<packaging>eclipse-repository</packaging>
+	
+	<dependencies>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>org.eclipse.app4mc.amalthea.model.tests</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>org.eclipse.app4mc.amalthea.validations.tests</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>org.eclipse.app4mc.amalthea.validations.ta.tests</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>${project.groupId}</groupId>
+			<artifactId>org.eclipse.app4mc.amalthea.editors.sirius.design.tests</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+	</dependencies>
 
 	<pluginRepositories>
 		<pluginRepository>
@@ -81,6 +104,25 @@
       </plugin> -->
 
 			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+
+				<executions>
+					<execution>
+						<id>report-aggregate</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>report-aggregate</goal>
+						</goals>
+						<configuration>
+							<title>APP4MC Tooling Platform</title>
+							<footer>Code Coverage Report for APP4MC Tooling Platform ${project.version}</footer>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+
+			<plugin>
 				<groupId>org.jboss.tools.tycho-plugins</groupId>
 				<artifactId>repository-utils</artifactId>
 				<version>${org.jboss.tools.tycho-plugins.version}</version>
@@ -114,7 +156,7 @@
 								<site>http://download.eclipse.org/sirius/updates/releases/6.0.0/photon</site>
 								<site>http://download.eclipse.org/releases/photon</site>
 								<site>http://download.eclipse.org/cbi/updates/license</site>
-								<site>http://download.eclipse.org/app4mc/components/addon/migration/snapshot/</site>
+								<site>http://download.eclipse.org/app4mc/components/addon/migration/snapshot/p2repo</site>
 							</associateSites>
 						</configuration>
 					</execution>
diff --git a/build/org.eclipse.app4mc.platform.product/org.eclipse.app4mc.platform.product b/build/org.eclipse.app4mc.platform.product/org.eclipse.app4mc.platform.product
index b9080e2..2491a1e 100644
--- a/build/org.eclipse.app4mc.platform.product/org.eclipse.app4mc.platform.product
+++ b/build/org.eclipse.app4mc.platform.product/org.eclipse.app4mc.platform.product
@@ -1,17 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <?pde version="3.5"?>
 
-<product name="APP4MC Tool Platform" uid="org.eclipse.app4mc.platform.product" id="org.eclipse.app4mc.platform.ide.product" application="org.eclipse.ui.ide.workbench" version="0.9.6.qualifier" useFeatures="true" includeLaunchers="true">
+<product name="APP4MC Tool Platform" uid="org.eclipse.app4mc.platform.product" id="org.eclipse.app4mc.platform.ide.product" application="org.eclipse.ui.ide.workbench" version="0.9.7.qualifier" useFeatures="true" includeLaunchers="true">
 
    <aboutInfo>
       <image path="/org.eclipse.app4mc.platform.ide/about.png"/>
       <text>
          APP4MC Tool Platform
 
-(c) Copyright Eclipse APP4MC contributors and others. 2015 - 2019. 
+(c) Copyright Eclipse APP4MC contributors and others. 2015 - 2020.
 All rights reserved.
 
-Version 0.9.6
+Version 0.9.7
       </text>
    </aboutInfo>
 
@@ -469,10 +469,8 @@
       <feature id="org.eclipse.jgit"/>
       <feature id="org.eclipse.app4mc.platform"/>
       <feature id="org.eclipse.app4mc.platform.sdk"/>
-	  <!--added model migration features-->
-	  <feature id="org.eclipse.app4mc.amalthea.converters"/>
-	  <feature id="org.eclipse.app4mc.amalthea.converters.sdk"/>
-	  	  
+      <feature id="org.eclipse.app4mc.amalthea.converters"/>
+      <feature id="org.eclipse.app4mc.amalthea.converters.sdk"/>
       <feature id="org.eclipse.app4mc.docu"/>
       <feature id="org.eclipse.app4mc.docu.sdk"/>
       <feature id="org.eclipse.app4mc.examples"/>
@@ -527,8 +525,7 @@
       <repository location="http://download.eclipse.org/eclipse/updates/4.8" enabled="true" />
       <repository location="http://download.eclipse.org/releases/photon" enabled="true" />
       <repository location="http://download.eclipse.org/tools/orbit/downloads/drops/R20180606145124/repository" enabled="true" />
-	  <repository location="http://download.eclipse.org/app4mc/components/addon/migration/snapshot/" enabled="true"/>
-	  
+      <repository location="http://download.eclipse.org/app4mc/components/addon/migration/snapshot/p2repo" enabled="true" />
    </repositories>
 
    <preferencesInfo>
diff --git a/build/org.eclipse.app4mc.platform.product/pom.xml b/build/org.eclipse.app4mc.platform.product/pom.xml
index 36f6a46..7e2805e 100644
--- a/build/org.eclipse.app4mc.platform.product/pom.xml
+++ b/build/org.eclipse.app4mc.platform.product/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.platform.product</artifactId>
diff --git a/build/org.eclipse.app4mc.target/PHOTON/_gen/_photon_platform_others_latest.target b/build/org.eclipse.app4mc.target/PHOTON/_gen/_photon_platform_others_latest.target
index c99c215..2e471b6 100644
--- a/build/org.eclipse.app4mc.target/PHOTON/_gen/_photon_platform_others_latest.target
+++ b/build/org.eclipse.app4mc.target/PHOTON/_gen/_photon_platform_others_latest.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Photon-Platform" sequenceNumber="1578388313">
+<target name="Photon-Platform" sequenceNumber="1580484788">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.equinox.p2.discovery.feature.feature.group" version="1.2.0.v20180512-1128"/>
@@ -88,12 +88,12 @@
       <repository location="http://download.eclipse.org/ease/update/release"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.emf.compare.feature.group" version="3.3.7.201905300200"/>
-      <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.7.201905300200"/>
-      <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.7.201905300200"/>
-      <unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.7.201905300200"/>
-      <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.7.201905300200"/>
-      <unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.7.201905300200"/>
+      <unit id="org.eclipse.emf.compare.feature.group" version="3.3.9.201911051515"/>
+      <unit id="org.eclipse.emf.compare.ide.ui.feature.group" version="3.3.9.201911051515"/>
+      <unit id="org.eclipse.emf.compare.ide.ui.source.feature.group" version="3.3.9.201911051515"/>
+      <unit id="org.eclipse.emf.compare.rcp.ui.feature.group" version="3.3.9.201911051515"/>
+      <unit id="org.eclipse.emf.compare.rcp.ui.source.feature.group" version="3.3.9.201911051515"/>
+      <unit id="org.eclipse.emf.compare.source.feature.group" version="3.3.9.201911051515"/>
       <repository location="http://download.eclipse.org/modeling/emf/compare/updates/releases/3.3"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
@@ -228,7 +228,7 @@
     <location includeMode="slicer" includeAllPlatforms="false" includeSource="false" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.app4mc.amalthea.converters.feature.group" version="0.0.0"/>
       <unit id="org.eclipse.app4mc.amalthea.converters.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/app4mc/components/addon/migration/releases/0.9.6/p2repo/"/>
+      <repository location="http://download.eclipse.org/app4mc/components/addon/migration/releases/0.9.7/p2repo/"/>
     </location>
   </locations>
 </target>
diff --git a/build/org.eclipse.app4mc.target/PHOTON/_photon_platform_others_latest.tpd b/build/org.eclipse.app4mc.target/PHOTON/_photon_platform_others_latest.tpd
index 818fa50..03c048d 100644
--- a/build/org.eclipse.app4mc.target/PHOTON/_photon_platform_others_latest.tpd
+++ b/build/org.eclipse.app4mc.target/PHOTON/_photon_platform_others_latest.tpd
@@ -26,4 +26,4 @@
 
 //include "acceleo.tpd"
 
-include "app4mc_modelmiration.tpd"
+include "app4mc_addon_migration.tpd"
diff --git a/build/org.eclipse.app4mc.target/PHOTON/app4mc_modelmiration.tpd b/build/org.eclipse.app4mc.target/PHOTON/app4mc_addon_migration.tpd
similarity index 85%
rename from build/org.eclipse.app4mc.target/PHOTON/app4mc_modelmiration.tpd
rename to build/org.eclipse.app4mc.target/PHOTON/app4mc_addon_migration.tpd
index 4626764..e75c618 100644
--- a/build/org.eclipse.app4mc.target/PHOTON/app4mc_modelmiration.tpd
+++ b/build/org.eclipse.app4mc.target/PHOTON/app4mc_addon_migration.tpd
@@ -1,6 +1,6 @@
 target "cbi"
 
-location "http://download.eclipse.org/app4mc/components/addon/migration/releases/0.9.6/p2repo/" {
+location "http://download.eclipse.org/app4mc/components/addon/migration/releases/0.9.7/p2repo/" {
 	
 	org.eclipse.app4mc.amalthea.converters.feature.group lazy
 	org.eclipse.app4mc.amalthea.converters.sdk.feature.group lazy
diff --git a/build/org.eclipse.app4mc.target/pom.xml b/build/org.eclipse.app4mc.target/pom.xml
index 77a1104..a6006ed 100644
--- a/build/org.eclipse.app4mc.target/pom.xml
+++ b/build/org.eclipse.app4mc.target/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.target</artifactId>
diff --git a/examples/app4mc.example.democar.split/democar-common.amxmi b/examples/app4mc.example.democar.split/democar-common.amxmi
index 189824f..704d0e9 100644
--- a/examples/app4mc.example.democar.split/democar-common.amxmi
+++ b/examples/app4mc.example.democar.split/democar-common.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
diff --git a/examples/app4mc.example.democar.split/democar-hw.amxmi b/examples/app4mc.example.democar.split/democar-hw.amxmi
index a04c379..a6eb568 100644
--- a/examples/app4mc.example.democar.split/democar-hw.amxmi
+++ b/examples/app4mc.example.democar.split/democar-hw.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <hwModel>
     <definitions xsi:type="am:ProcessingUnitDefinition" name="DefaultCore" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
     <definitions xsi:type="am:MemoryDefinition" name="DefaultMemory">
diff --git a/examples/app4mc.example.democar.split/democar-os.amxmi b/examples/app4mc.example.democar.split/democar-os.amxmi
index 5595f3d..21590a6 100644
--- a/examples/app4mc.example.democar.split/democar-os.amxmi
+++ b/examples/app4mc.example.democar.split/democar-os.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <osModel>
     <operatingSystems name="OperatingSystem">
       <taskSchedulers name="Task_Scheduler_Core_1">
diff --git a/examples/app4mc.example.democar.split/democar-req.amxmi b/examples/app4mc.example.democar.split/democar-req.amxmi
index 994802c..2b1f878 100644
--- a/examples/app4mc.example.democar.split/democar-req.amxmi
+++ b/examples/app4mc.example.democar.split/democar-req.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <constraintsModel>
     <requirements xsi:type="am:ProcessRequirement" name="Deadline_05" severity="Critical">
       <limit xsi:type="am:TimeRequirementLimit" limitType="UpperLimit" metric="ResponseTime">
diff --git a/examples/app4mc.example.democar.split/democar-stimuli.amxmi b/examples/app4mc.example.democar.split/democar-stimuli.amxmi
index e23e625..4e693b4 100644
--- a/examples/app4mc.example.democar.split/democar-stimuli.amxmi
+++ b/examples/app4mc.example.democar.split/democar-stimuli.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <stimuliModel>
     <stimuli xsi:type="am:PeriodicStimulus" name="Timer_10MS">
       <offset value="0" unit="ms"/>
diff --git a/examples/app4mc.example.democar.split/democar-sw.amxmi b/examples/app4mc.example.democar.split/democar-sw.amxmi
index 13d9102..ea96bb3 100644
--- a/examples/app4mc.example.democar.split/democar-sw.amxmi
+++ b/examples/app4mc.example.democar.split/democar-sw.amxmi
@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_10MS" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
@@ -41,25 +41,25 @@
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
       <stimuli xsi:type="am:PeriodicStimulus" href="amlt:/#Timer_10MS?type=PeriodicStimulus"/>
     </tasks>
     <tasks name="Task_20MS" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
       <stimuli xsi:type="am:PeriodicStimulus" href="amlt:/#Timer_20MS?type=PeriodicStimulus"/>
     </tasks>
     <tasks name="Task_5MS" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
@@ -71,12 +71,12 @@
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
       <stimuli xsi:type="am:PeriodicStimulus" href="amlt:/#Timer_5MS?type=PeriodicStimulus"/>
     </tasks>
     <runnables name="ABSCalculation" callback="false" service="false">
       <tags href="amlt:/#SwcABSCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -86,11 +86,11 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" callback="false" service="false">
       <tags href="amlt:/#SwcEngineSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -98,53 +98,53 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" callback="false" service="false">
       <tags href="amlt:/#SwcABSCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" callback="false" service="false">
       <tags href="amlt:/#SwcABSCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -152,22 +152,22 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceArbiter?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -178,21 +178,21 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -200,22 +200,22 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -226,52 +226,52 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" callback="false" service="false">
       <tags href="amlt:/#SwcABSCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" callback="false" service="false">
       <tags href="amlt:/#SwcCylNumObserver?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -279,89 +279,89 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" callback="false" service="false">
       <tags href="amlt:/#SwcActuators?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" callback="false" service="false">
       <tags href="amlt:/#SwcSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" callback="false" service="false">
       <tags href="amlt:/#SwcSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" callback="false" service="false">
       <tags href="amlt:/#SwcActuators?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" callback="false" service="false">
       <tags href="amlt:/#SwcSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" callback="false" service="false">
       <tags href="amlt:/#SwcSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" callback="false" service="false">
       <tags href="amlt:/#SwcInjIgnActuation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -375,21 +375,21 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" callback="false" service="false">
       <tags href="amlt:/#SwcInjIgnActuation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -403,93 +403,93 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" callback="false" service="false">
       <tags href="amlt:/#SwcEngineSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" callback="false" service="false">
       <tags href="amlt:/#SwcABSCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" callback="false" service="false">
       <tags href="amlt:/#SwcEngineSensors?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" callback="false" service="false">
       <tags href="amlt:/#SwcEngineController?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -497,41 +497,41 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" callback="false" service="false">
       <tags href="amlt:/#SwcBrakeForceCalculation?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -539,18 +539,18 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" callback="false" service="false">
       <tags href="amlt:/#SwcSensorPostprocessing?type=Tag"/>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.democar.split/pom.xml b/examples/app4mc.example.democar.split/pom.xml
index cb13833..11d3aa1 100644
--- a/examples/app4mc.example.democar.split/pom.xml
+++ b/examples/app4mc.example.democar.split/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.democar/democar.amxmi b/examples/app4mc.example.democar/democar.amxmi
index 9ed980e..a4291e8 100644
--- a/examples/app4mc.example.democar/democar.amxmi
+++ b/examples/app4mc.example.democar/democar.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -17,7 +17,7 @@
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
@@ -53,23 +53,23 @@
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
@@ -81,10 +81,10 @@
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -94,10 +94,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -105,48 +105,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -154,20 +154,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -178,19 +178,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -198,20 +198,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -222,47 +222,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -270,80 +270,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -357,19 +357,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -383,84 +383,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -468,37 +468,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -506,17 +506,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.democar/pom.xml b/examples/app4mc.example.democar/pom.xml
index 26abbc2..d63196b 100644
--- a/examples/app4mc.example.democar/pom.xml
+++ b/examples/app4mc.example.democar/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.hardware/Simple_ECU/ecu.amxmi b/examples/app4mc.example.hardware/Simple_ECU/ecu.amxmi
index e031ace..f68660d 100644
--- a/examples/app4mc.example.hardware/Simple_ECU/ecu.amxmi
+++ b/examples/app4mc.example.hardware/Simple_ECU/ecu.amxmi
@@ -1,20 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <hwModel>
-    <definitions xsi:type="am:MemoryDefinition" name="ScratchpadDefinition">
+    <definitions xsi:type="am:MemoryDefinition" xmi:id="ScratchpadDefinition?type=MemoryDefinition" name="ScratchpadDefinition">
       <size value="16" unit="MB"/>
       <accessLatency xsi:type="am:DiscreteValueConstant" value="1"/>
     </definitions>
-    <definitions xsi:type="am:MemoryDefinition" name="FlashDefinition">
+    <definitions xsi:type="am:MemoryDefinition" xmi:id="FlashDefinition?type=MemoryDefinition" name="FlashDefinition">
       <size value="128" unit="MB"/>
-      <accessLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="8" upperBound="2" mean="6.0" sd="1.0"/>
+      <accessLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="2" upperBound="8" mean="6.0" sd="1.0"/>
     </definitions>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="ARMXXX" puType="CPU" features="Instructions/IPC_ARMXXX?type=HwFeature"/>
-    <featureCategories name="Instructions" featureType="performance">
-      <features name="IPC_ARMXXX" value="8.0"/>
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="ARMXXX?type=ProcessingUnitDefinition" name="ARMXXX" puType="CPU" features="Instructions/IPC_ARMXXX?type=HwFeature"/>
+    <featureCategories xmi:id="Instructions?type=HwFeatureCategory" name="Instructions" featureType="performance">
+      <features xmi:id="Instructions/IPC_ARMXXX?type=HwFeature" name="IPC_ARMXXX" value="8.0"/>
     </featureCategories>
-    <structures name="ECU" structureType="ECU">
-      <modules xsi:type="am:ProcessingUnit" name="Core1" frequencyDomain="MainClk?type=FrequencyDomain" definition="ARMXXX?type=ProcessingUnitDefinition">
+    <structures xmi:id="ECU?type=HwStructure" name="ECU" structureType="ECU">
+      <modules xsi:type="am:ProcessingUnit" xmi:id="Core1?type=ProcessingUnit" name="Core1" frequencyDomain="MainClk?type=FrequencyDomain" definition="ARMXXX?type=ProcessingUnitDefinition">
         <accessElements name="Flash" destination="Flash_Mem?type=Memory">
           <readLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="8" upperBound="26" mean="16.0" sd="1.0"/>
           <writeLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="8" upperBound="26" mean="16.0" sd="1.0"/>
@@ -28,7 +28,7 @@
           <writeLatency xsi:type="am:DiscreteValueConstant" value="4"/>
         </accessElements>
       </modules>
-      <modules xsi:type="am:ProcessingUnit" name="Core2" frequencyDomain="MainClk?type=FrequencyDomain" definition="ARMXXX?type=ProcessingUnitDefinition">
+      <modules xsi:type="am:ProcessingUnit" xmi:id="Core2?type=ProcessingUnit" name="Core2" frequencyDomain="MainClk?type=FrequencyDomain" definition="ARMXXX?type=ProcessingUnitDefinition">
         <accessElements name="Flash" destination="Flash_Mem?type=Memory">
           <readLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="8" upperBound="26" mean="16.0" sd="1.0"/>
           <writeLatency xsi:type="am:DiscreteValueGaussDistribution" lowerBound="8" upperBound="26" mean="16.0" sd="1.0"/>
@@ -42,11 +42,11 @@
           <writeLatency xsi:type="am:DiscreteValueConstant" value="4"/>
         </accessElements>
       </modules>
-      <modules xsi:type="am:Memory" name="Scratchpad_Core1" frequencyDomain="MainClk?type=FrequencyDomain"/>
-      <modules xsi:type="am:Memory" name="Scratchpad_Core2" frequencyDomain="MainClk?type=FrequencyDomain"/>
-      <modules xsi:type="am:Memory" name="Flash_Mem" frequencyDomain="MainClk?type=FrequencyDomain"/>
+      <modules xsi:type="am:Memory" xmi:id="Scratchpad_Core1?type=Memory" name="Scratchpad_Core1" frequencyDomain="MainClk?type=FrequencyDomain" definition="ScratchpadDefinition?type=MemoryDefinition"/>
+      <modules xsi:type="am:Memory" xmi:id="Scratchpad_Core2?type=Memory" name="Scratchpad_Core2" frequencyDomain="MainClk?type=FrequencyDomain" definition="ScratchpadDefinition?type=MemoryDefinition"/>
+      <modules xsi:type="am:Memory" xmi:id="Flash_Mem?type=Memory" name="Flash_Mem" frequencyDomain="MainClk?type=FrequencyDomain" definition="FlashDefinition?type=MemoryDefinition"/>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="MainClk" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="MainClk?type=FrequencyDomain" name="MainClk" clockGating="false">
       <defaultValue value="500.0" unit="MHz"/>
     </domains>
   </hwModel>
diff --git a/examples/app4mc.example.hardware/Simple_EE_Architecture/e_e_architecture.amxmi b/examples/app4mc.example.hardware/Simple_EE_Architecture/e_e_architecture.amxmi
index 690bae3..1b84c1f 100644
--- a/examples/app4mc.example.hardware/Simple_EE_Architecture/e_e_architecture.amxmi
+++ b/examples/app4mc.example.hardware/Simple_EE_Architecture/e_e_architecture.amxmi
@@ -1,31 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <hwModel>
-    <definitions xsi:type="am:ConnectionHandlerDefinition" name="Interconnect_Def" policy="FCFS" maxBurstSize="1" maxConcurrentTransfers="1">
+    <definitions xsi:type="am:ConnectionHandlerDefinition" xmi:id="Interconnect_Def?type=ConnectionHandlerDefinition" name="Interconnect_Def" policy="FCFS" maxBurstSize="1" maxConcurrentTransfers="1">
       <dataRate value="1" unit="GBPerSecond"/>
     </definitions>
-    <definitions xsi:type="am:ConnectionHandlerDefinition" name="CAN_Def" maxBurstSize="1" maxConcurrentTransfers="1">
+    <definitions xsi:type="am:ConnectionHandlerDefinition" xmi:id="CAN_Def?type=ConnectionHandlerDefinition" name="CAN_Def" maxBurstSize="1" maxConcurrentTransfers="1">
       <dataRate value="1" unit="MbitPerSecond"/>
     </definitions>
-    <definitions xsi:type="am:MemoryDefinition" name="MainMemory_Def">
+    <definitions xsi:type="am:MemoryDefinition" xmi:id="MainMemory_Def?type=MemoryDefinition" name="MainMemory_Def">
       <size value="1" unit="GB"/>
       <accessLatency xsi:type="am:DiscreteValueConstant" value="2"/>
     </definitions>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="StandardCore" puType="CPU" features="Integer-Instructions/IntOps_2.0?type=HwFeature Float-Instructions/FloatOps_0.5?type=HwFeature Load-Store-Instructions/LoadStoreOps_1.0?type=HwFeature"/>
-    <featureCategories name="Integer-Instructions" featureType="performance">
-      <features name="IntOps_2.0" value="2.0"/>
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="StandardCore?type=ProcessingUnitDefinition" name="StandardCore" puType="CPU" features="Integer-Instructions/IntOps_2.0?type=HwFeature Float-Instructions/FloatOps_0.5?type=HwFeature Load-Store-Instructions/LoadStoreOps_1.0?type=HwFeature"/>
+    <featureCategories xmi:id="Integer-Instructions?type=HwFeatureCategory" name="Integer-Instructions" featureType="performance">
+      <features xmi:id="Integer-Instructions/IntOps_2.0?type=HwFeature" name="IntOps_2.0" value="2.0"/>
     </featureCategories>
-    <featureCategories name="Float-Instructions" featureType="performance">
-      <features name="FloatOps_0.5" value="0.5"/>
+    <featureCategories xmi:id="Float-Instructions?type=HwFeatureCategory" name="Float-Instructions" featureType="performance">
+      <features xmi:id="Float-Instructions/FloatOps_0.5?type=HwFeature" name="FloatOps_0.5" value="0.5"/>
     </featureCategories>
-    <featureCategories name="Load-Store-Instructions" featureType="performance">
-      <features name="LoadStoreOps_1.0" value="1.0"/>
+    <featureCategories xmi:id="Load-Store-Instructions?type=HwFeatureCategory" name="Load-Store-Instructions" featureType="performance">
+      <features xmi:id="Load-Store-Instructions/LoadStoreOps_1.0?type=HwFeature" name="LoadStoreOps_1.0" value="1.0"/>
     </featureCategories>
-    <structures name="E/E_System" structureType="System">
-      <structures name="ECU1" structureType="ECU">
-        <ports name="CANPort" bitWidth="0" priority="0" portInterface="CAN"/>
-        <modules xsi:type="am:ProcessingUnit" name="Core1EC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="initiator"/>
+    <structures xmi:id="E%2FE_System?type=HwStructure" name="E/E_System" structureType="System">
+      <structures xmi:id="ECU1?type=HwStructure" name="ECU1" structureType="ECU">
+        <ports xmi:id="ECU1/CANPort?type=HwPort" name="CANPort" bitWidth="0" priority="0" portInterface="CAN"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core1EC1?type=ProcessingUnit" name="Core1EC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
+          <ports xmi:id="Core1EC1/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="initiator"/>
           <accessElements name="MainMemC1Access" destination="MainMemEC1?type=Memory">
             <readLatency xsi:type="am:DiscreteValueConstant" value="8"/>
             <writeLatency xsi:type="am:DiscreteValueConstant" value="8"/>
@@ -34,8 +34,8 @@
             <accessPath name="extMemAccessPath" pathElements="ECU1/con1?type=HwConnection InterconnectEC1?type=ConnectionHandler ECU1/con4?type=HwConnection E%2FE_System/con1?type=HwConnection CAN?type=ConnectionHandler E%2FE_System/con2?type=HwConnection ECU2/con4?type=HwConnection InterconnectEC2?type=ConnectionHandler ECU2/con3?type=HwConnection" startAddress="0x5000" endAddress="0x8000" memOffset="0x200000"/>
           </accessElements>
         </modules>
-        <modules xsi:type="am:ProcessingUnit" name="Core2EC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="initiator"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core2EC1?type=ProcessingUnit" name="Core2EC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
+          <ports xmi:id="Core2EC1/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="initiator"/>
           <accessElements name="MainMemC1Access" destination="MainMemEC1?type=Memory">
             <readLatency xsi:type="am:DiscreteValueConstant" value="8"/>
             <writeLatency xsi:type="am:DiscreteValueConstant" value="8"/>
@@ -44,24 +44,24 @@
             <accessPath name="extMemAccessPath" pathElements="ECU1/con2?type=HwConnection InterconnectEC1?type=ConnectionHandler ECU1/con4?type=HwConnection E%2FE_System/con1?type=HwConnection CAN?type=ConnectionHandler E%2FE_System/con2?type=HwConnection ECU2/con4?type=HwConnection InterconnectEC2?type=ConnectionHandler ECU2/con3?type=HwConnection" startAddress="0x5000" endAddress="0x8000" memOffset="0x200000"/>
           </accessElements>
         </modules>
-        <modules xsi:type="am:Memory" name="MainMemEC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain">
-          <ports name="P1" bitWidth="32" priority="0" portType="responder"/>
+        <modules xsi:type="am:Memory" xmi:id="MainMemEC1?type=Memory" name="MainMemEC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain">
+          <ports xmi:id="MainMemEC1/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="responder"/>
         </modules>
-        <modules xsi:type="am:ConnectionHandler" name="InterconnectEC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="Interconnect_Def?type=ConnectionHandlerDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="responder"/>
-          <ports name="P2" bitWidth="32" priority="0" portType="responder"/>
-          <ports name="P3" bitWidth="32" priority="0" portType="initiator"/>
-          <ports name="P4" bitWidth="32" priority="0" portType="initiator"/>
+        <modules xsi:type="am:ConnectionHandler" xmi:id="InterconnectEC1?type=ConnectionHandler" name="InterconnectEC1" frequencyDomain="ECU1_Freq_Domain?type=FrequencyDomain" definition="Interconnect_Def?type=ConnectionHandlerDefinition">
+          <ports xmi:id="InterconnectEC1/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="responder"/>
+          <ports xmi:id="InterconnectEC1/P2?type=HwPort" name="P2" bitWidth="32" priority="0" portType="responder"/>
+          <ports xmi:id="InterconnectEC1/P3?type=HwPort" name="P3" bitWidth="32" priority="0" portType="initiator"/>
+          <ports xmi:id="InterconnectEC1/P4?type=HwPort" name="P4" bitWidth="32" priority="0" portType="initiator"/>
         </modules>
-        <connections name="con1" port1="Core1EC1/P1?type=HwPort" port2="InterconnectEC1/P1?type=HwPort"/>
-        <connections name="con2" port1="Core2EC1/P1?type=HwPort" port2="InterconnectEC1/P2?type=HwPort"/>
-        <connections name="con3" port1="InterconnectEC1/P3?type=HwPort" port2="MainMemEC1/P1?type=HwPort"/>
-        <connections name="con4" port1="InterconnectEC1/P4?type=HwPort" port2="ECU1/CANPort?type=HwPort"/>
+        <connections xmi:id="ECU1/con1?type=HwConnection" name="con1" port1="Core1EC1/P1?type=HwPort" port2="InterconnectEC1/P1?type=HwPort"/>
+        <connections xmi:id="ECU1/con2?type=HwConnection" name="con2" port1="Core2EC1/P1?type=HwPort" port2="InterconnectEC1/P2?type=HwPort"/>
+        <connections xmi:id="ECU1/con3?type=HwConnection" name="con3" port1="InterconnectEC1/P3?type=HwPort" port2="MainMemEC1/P1?type=HwPort"/>
+        <connections xmi:id="ECU1/con4?type=HwConnection" name="con4" port1="InterconnectEC1/P4?type=HwPort" port2="ECU1/CANPort?type=HwPort"/>
       </structures>
-      <structures name="ECU2" structureType="ECU">
-        <ports name="CANPort" bitWidth="0" priority="0" portInterface="CAN"/>
-        <modules xsi:type="am:ProcessingUnit" name="Core1EC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="initiator"/>
+      <structures xmi:id="ECU2?type=HwStructure" name="ECU2" structureType="ECU">
+        <ports xmi:id="ECU2/CANPort?type=HwPort" name="CANPort" bitWidth="0" priority="0" portInterface="CAN"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core1EC2?type=ProcessingUnit" name="Core1EC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
+          <ports xmi:id="Core1EC2/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="initiator"/>
           <accessElements name="MainMemC2Access" destination="MainMemEC2?type=Memory">
             <readLatency xsi:type="am:DiscreteValueConstant" value="8"/>
             <writeLatency xsi:type="am:DiscreteValueConstant" value="8"/>
@@ -70,8 +70,8 @@
             <accessPath name="extMemAccessPath" pathElements="ECU2/con1?type=HwConnection InterconnectEC2?type=ConnectionHandler ECU2/con4?type=HwConnection E%2FE_System/con2?type=HwConnection CAN?type=ConnectionHandler E%2FE_System/con1?type=HwConnection ECU1/con4?type=HwConnection InterconnectEC1?type=ConnectionHandler ECU1/con3?type=HwConnection" startAddress="0x5000" endAddress="0x8000" memOffset="0x200000"/>
           </accessElements>
         </modules>
-        <modules xsi:type="am:ProcessingUnit" name="Core2EC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="initiator"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core2EC2?type=ProcessingUnit" name="Core2EC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="StandardCore?type=ProcessingUnitDefinition">
+          <ports xmi:id="Core2EC2/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="initiator"/>
           <accessElements name="MainMemC2Access" destination="MainMemEC2?type=Memory">
             <readLatency xsi:type="am:DiscreteValueConstant" value="8"/>
             <writeLatency xsi:type="am:DiscreteValueConstant" value="8"/>
@@ -80,34 +80,34 @@
             <accessPath name="extMemAccessPath" pathElements="ECU2/con2?type=HwConnection InterconnectEC2?type=ConnectionHandler ECU2/con4?type=HwConnection E%2FE_System/con2?type=HwConnection CAN?type=ConnectionHandler E%2FE_System/con1?type=HwConnection ECU1/con4?type=HwConnection InterconnectEC1?type=ConnectionHandler ECU1/con3?type=HwConnection" startAddress="0x5000" endAddress="0x8000" memOffset="0x200000"/>
           </accessElements>
         </modules>
-        <modules xsi:type="am:Memory" name="MainMemEC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain">
-          <ports name="P1" bitWidth="32" priority="0" portType="responder"/>
+        <modules xsi:type="am:Memory" xmi:id="MainMemEC2?type=Memory" name="MainMemEC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain">
+          <ports xmi:id="MainMemEC2/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="responder"/>
         </modules>
-        <modules xsi:type="am:ConnectionHandler" name="InterconnectEC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="Interconnect_Def?type=ConnectionHandlerDefinition">
-          <ports name="P1" bitWidth="32" priority="0" portType="responder"/>
-          <ports name="P2" bitWidth="32" priority="0" portType="responder"/>
-          <ports name="P3" bitWidth="32" priority="0" portType="initiator"/>
-          <ports name="P4" bitWidth="32" priority="0" portType="initiator"/>
+        <modules xsi:type="am:ConnectionHandler" xmi:id="InterconnectEC2?type=ConnectionHandler" name="InterconnectEC2" frequencyDomain="ECU2_Freq_Domain?type=FrequencyDomain" definition="Interconnect_Def?type=ConnectionHandlerDefinition">
+          <ports xmi:id="InterconnectEC2/P1?type=HwPort" name="P1" bitWidth="32" priority="0" portType="responder"/>
+          <ports xmi:id="InterconnectEC2/P2?type=HwPort" name="P2" bitWidth="32" priority="0" portType="responder"/>
+          <ports xmi:id="InterconnectEC2/P3?type=HwPort" name="P3" bitWidth="32" priority="0" portType="initiator"/>
+          <ports xmi:id="InterconnectEC2/P4?type=HwPort" name="P4" bitWidth="32" priority="0" portType="initiator"/>
         </modules>
-        <connections name="con1" port1="Core1EC2/P1?type=HwPort" port2="InterconnectEC2/P1?type=HwPort"/>
-        <connections name="con2" port1="Core2EC2/P1?type=HwPort" port2="InterconnectEC2/P2?type=HwPort"/>
-        <connections name="con3" port1="InterconnectEC2/P3?type=HwPort" port2="MainMemEC2/P1?type=HwPort"/>
-        <connections name="con4" port1="InterconnectEC2/P4?type=HwPort" port2="ECU2/CANPort?type=HwPort"/>
+        <connections xmi:id="ECU2/con1?type=HwConnection" name="con1" port1="Core1EC2/P1?type=HwPort" port2="InterconnectEC2/P1?type=HwPort"/>
+        <connections xmi:id="ECU2/con2?type=HwConnection" name="con2" port1="Core2EC2/P1?type=HwPort" port2="InterconnectEC2/P2?type=HwPort"/>
+        <connections xmi:id="ECU2/con3?type=HwConnection" name="con3" port1="InterconnectEC2/P3?type=HwPort" port2="MainMemEC2/P1?type=HwPort"/>
+        <connections xmi:id="ECU2/con4?type=HwConnection" name="con4" port1="InterconnectEC2/P4?type=HwPort" port2="ECU2/CANPort?type=HwPort"/>
       </structures>
-      <modules xsi:type="am:ConnectionHandler" name="CAN" frequencyDomain="CAN_Freq_Domain?type=FrequencyDomain" definition="CAN_Def?type=ConnectionHandlerDefinition">
-        <ports name="P1" bitWidth="0" priority="0" portType="responder" portInterface="CAN"/>
-        <ports name="P2" bitWidth="0" priority="0" portType="responder" portInterface="CAN"/>
+      <modules xsi:type="am:ConnectionHandler" xmi:id="CAN?type=ConnectionHandler" name="CAN" frequencyDomain="CAN_Freq_Domain?type=FrequencyDomain" definition="CAN_Def?type=ConnectionHandlerDefinition">
+        <ports xmi:id="CAN/P1?type=HwPort" name="P1" bitWidth="0" priority="0" portType="responder" portInterface="CAN"/>
+        <ports xmi:id="CAN/P2?type=HwPort" name="P2" bitWidth="0" priority="0" portType="responder" portInterface="CAN"/>
       </modules>
-      <connections name="con1" port1="ECU1/CANPort?type=HwPort" port2="CAN/P1?type=HwPort"/>
-      <connections name="con2" port1="ECU2/CANPort?type=HwPort" port2="CAN/P2?type=HwPort"/>
+      <connections xmi:id="E%2FE_System/con1?type=HwConnection" name="con1" port1="ECU1/CANPort?type=HwPort" port2="CAN/P1?type=HwPort"/>
+      <connections xmi:id="E%2FE_System/con2?type=HwConnection" name="con2" port1="ECU2/CANPort?type=HwPort" port2="CAN/P2?type=HwPort"/>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="ECU1_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="ECU1_Freq_Domain?type=FrequencyDomain" name="ECU1_Freq_Domain" clockGating="false">
       <defaultValue value="500.0" unit="MHz"/>
     </domains>
-    <domains xsi:type="am:FrequencyDomain" name="ECU2_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="ECU2_Freq_Domain?type=FrequencyDomain" name="ECU2_Freq_Domain" clockGating="false">
       <defaultValue value="500.0" unit="MHz"/>
     </domains>
-    <domains xsi:type="am:FrequencyDomain" name="CAN_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="CAN_Freq_Domain?type=FrequencyDomain" name="CAN_Freq_Domain" clockGating="false">
       <defaultValue value="0.0" unit="kHz"/>
     </domains>
   </hwModel>
diff --git a/examples/app4mc.example.hardware/pom.xml b/examples/app4mc.example.hardware/pom.xml
index 04f9b90..e0c10a1 100644
--- a/examples/app4mc.example.hardware/pom.xml
+++ b/examples/app4mc.example.hardware/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.client_server/pom.xml b/examples/app4mc.example.modeling.client_server/pom.xml
index 938d277..ab77a01 100644
--- a/examples/app4mc.example.modeling.client_server/pom.xml
+++ b/examples/app4mc.example.modeling.client_server/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.client_server/step_1/modeling_example_client_server_1.amxmi b/examples/app4mc.example.modeling.client_server/step_1/modeling_example_client_server_1.amxmi
index 084d7b6..fbc652a 100644
--- a/examples/app4mc.example.modeling.client_server/step_1/modeling_example_client_server_1.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_1/modeling_example_client_server_1.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -39,7 +39,7 @@
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -48,7 +48,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -88,74 +88,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_2/modeling_example_client_server_2.amxmi b/examples/app4mc.example.modeling.client_server/step_2/modeling_example_client_server_2.amxmi
index 680282a..b36ee1a 100644
--- a/examples/app4mc.example.modeling.client_server/step_2/modeling_example_client_server_2.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_2/modeling_example_client_server_2.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -39,7 +39,7 @@
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -48,7 +48,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -88,94 +88,94 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_3/modeling_example_client_server_3.amxmi b/examples/app4mc.example.modeling.client_server/step_3/modeling_example_client_server_3.amxmi
index 724a08a..b1dc4b8 100644
--- a/examples/app4mc.example.modeling.client_server/step_3/modeling_example_client_server_3.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_3/modeling_example_client_server_3.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_4/modeling_example_client_server_4.amxmi b/examples/app4mc.example.modeling.client_server/step_4/modeling_example_client_server_4.amxmi
index d7dad24..3586972 100644
--- a/examples/app4mc.example.modeling.client_server/step_4/modeling_example_client_server_4.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_4/modeling_example_client_server_4.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_5/modeling_example_client_server_5.amxmi b/examples/app4mc.example.modeling.client_server/step_5/modeling_example_client_server_5.amxmi
index d7a9ae0..045bc42 100644
--- a/examples/app4mc.example.modeling.client_server/step_5/modeling_example_client_server_5.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_5/modeling_example_client_server_5.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_6/modeling_example_client_server_6.amxmi b/examples/app4mc.example.modeling.client_server/step_6/modeling_example_client_server_6.amxmi
index ae5a922..5210d89 100644
--- a/examples/app4mc.example.modeling.client_server/step_6/modeling_example_client_server_6.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_6/modeling_example_client_server_6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_7/modeling_example_client_server_7.amxmi b/examples/app4mc.example.modeling.client_server/step_7/modeling_example_client_server_7.amxmi
index 982acae..918b13a 100644
--- a/examples/app4mc.example.modeling.client_server/step_7/modeling_example_client_server_7.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_7/modeling_example_client_server_7.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.client_server/step_8/modeling_example_client_server_8.amxmi b/examples/app4mc.example.modeling.client_server/step_8/modeling_example_client_server_8.amxmi
index 443fabc..685ec08 100644
--- a/examples/app4mc.example.modeling.client_server/step_8/modeling_example_client_server_8.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_8/modeling_example_client_server_8.amxmi
@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -44,49 +44,49 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.client_server/step_9/modeling_example_client_server_9.amxmi b/examples/app4mc.example.modeling.client_server/step_9/modeling_example_client_server_9.amxmi
index b2e59cf..dbd81e8 100644
--- a/examples/app4mc.example.modeling.client_server/step_9/modeling_example_client_server_9.amxmi
+++ b/examples/app4mc.example.modeling.client_server/step_9/modeling_example_client_server_9.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
@@ -40,7 +40,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -49,7 +49,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="Content_2">
             <items xsi:type="am:Group" name="CallSequence_2_2" ordered="true">
@@ -89,74 +89,74 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_default" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5994000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageMode">
       <literals name="MessageContent_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/pom.xml b/examples/app4mc.example.modeling.feedback_loop/pom.xml
index 9ffcca6..50a88b3 100644
--- a/examples/app4mc.example.modeling.feedback_loop/pom.xml
+++ b/examples/app4mc.example.modeling.feedback_loop/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_1/modeling_example_feedback_loop_1.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_1/modeling_example_feedback_loop_1.amxmi
index dedfcfe..7346ea2 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_1/modeling_example_feedback_loop_1.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_1/modeling_example_feedback_loop_1.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -30,7 +30,7 @@
         <items xsi:type="am:Group" name="CS_R1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -39,7 +39,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -136,7 +136,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -145,7 +145,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -172,7 +172,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -181,7 +181,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -238,114 +238,114 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_2/modeling_example_feedback_loop_2.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_2/modeling_example_feedback_loop_2.amxmi
index affe4e4..e2ed808 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_2/modeling_example_feedback_loop_2.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_2/modeling_example_feedback_loop_2.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -30,7 +30,7 @@
         <items xsi:type="am:Group" name="CS_R1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -39,7 +39,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -136,7 +136,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -145,7 +145,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -172,7 +172,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -181,7 +181,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -238,7 +238,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -247,7 +247,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -278,7 +278,7 @@
         <items xsi:type="am:Group" name="CallSequence_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -287,7 +287,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -327,181 +327,181 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_3/modeling_example_feedback_loop_3.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_3/modeling_example_feedback_loop_3.amxmi
index 88b659d..2a59580 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_3/modeling_example_feedback_loop_3.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_3/modeling_example_feedback_loop_3.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -30,7 +30,7 @@
         <items xsi:type="am:Group" name="CS_R1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -39,7 +39,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -136,7 +136,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -145,7 +145,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -172,7 +172,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -181,7 +181,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -238,7 +238,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -247,7 +247,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -278,7 +278,7 @@
         <items xsi:type="am:Group" name="CallSequence_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -287,7 +287,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -327,203 +327,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_4/modeling_example_feedback_loop_4.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_4/modeling_example_feedback_loop_4.amxmi
index 461c4d6..f6d9511 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_4/modeling_example_feedback_loop_4.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_4/modeling_example_feedback_loop_4.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -31,7 +31,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -40,7 +40,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -140,7 +140,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -149,7 +149,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -176,7 +176,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -185,7 +185,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -242,7 +242,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -251,7 +251,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -283,7 +283,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -292,7 +292,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -332,203 +332,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_5/modeling_example_feedback_loop_5.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_5/modeling_example_feedback_loop_5.amxmi
index 22e99d5..638700e 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_5/modeling_example_feedback_loop_5.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_5/modeling_example_feedback_loop_5.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -31,7 +31,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -40,7 +40,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -140,7 +140,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -149,7 +149,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -176,7 +176,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -185,7 +185,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -242,7 +242,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -251,7 +251,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -283,7 +283,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -292,7 +292,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -332,203 +332,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_6/modeling_example_feedback_loop_6.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_6/modeling_example_feedback_loop_6.amxmi
index 966c853..54db4a1 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_6/modeling_example_feedback_loop_6.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_6/modeling_example_feedback_loop_6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -31,7 +31,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -40,7 +40,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -140,7 +140,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -149,7 +149,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -176,7 +176,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -185,7 +185,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -242,7 +242,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -251,7 +251,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -283,7 +283,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -292,7 +292,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -332,203 +332,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_7/modeling_example_feedback_loop_7.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_7/modeling_example_feedback_loop_7.amxmi
index 3576388..9084ebb 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_7/modeling_example_feedback_loop_7.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_7/modeling_example_feedback_loop_7.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -31,7 +31,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -40,7 +40,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -140,7 +140,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -149,7 +149,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -176,7 +176,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -185,7 +185,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -242,7 +242,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -251,7 +251,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -283,7 +283,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -292,7 +292,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -332,203 +332,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_8/modeling_example_feedback_loop_8.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_8/modeling_example_feedback_loop_8.amxmi
index 55a6232..ddc80a7 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_8/modeling_example_feedback_loop_8.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_8/modeling_example_feedback_loop_8.amxmi
@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="30.0">
             <items xsi:type="am:Group" name="CallSequence_6_2" ordered="true">
@@ -44,32 +44,32 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_R1" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_IPA_T3" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_3?type=InterProcessStimulus"/>
         </items>
@@ -86,13 +86,13 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="50.0">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -110,115 +110,115 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.feedback_loop/step_9/modeling_example_feedback_loop_9.amxmi b/examples/app4mc.example.modeling.feedback_loop/step_9/modeling_example_feedback_loop_9.amxmi
index d0927ed..0f01189 100644
--- a/examples/app4mc.example.modeling.feedback_loop/step_9/modeling_example_feedback_loop_9.amxmi
+++ b/examples/app4mc.example.modeling.feedback_loop/step_9/modeling_example_feedback_loop_9.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_e_0" ordered="true">
@@ -31,7 +31,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="R1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -40,7 +40,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_state_0" ordered="true">
@@ -140,7 +140,7 @@
         <items xsi:type="am:Group" name="CS_R2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="IPA_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -149,7 +149,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CS_y_0" ordered="true">
@@ -176,7 +176,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -185,7 +185,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ProbabilitySwitch">
@@ -242,7 +242,7 @@
         <items xsi:type="am:Group" name="CS_Task_4_Post" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="R_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -251,7 +251,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="15.0">
             <items xsi:type="am:Group" name="CallSequence_5_0" ordered="true">
@@ -283,7 +283,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_6?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="IPA_Task_6?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -292,7 +292,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
@@ -332,203 +332,203 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Set_e_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_e_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="e?type=ModeLabel" access="set" value="E_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_state_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_y_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="y?type=ModeLabel" access="set" value="Y_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400000" upperBound="60600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_50" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_50" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_w_100" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="w?type=ModeLabel" access="set" value="W_100" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Set_u_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="u?type=ModeLabel" access="set" value="U_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="R_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="E">
       <literals name="E_0">
diff --git a/examples/app4mc.example.modeling.periodic/pom.xml b/examples/app4mc.example.modeling.periodic/pom.xml
index 377bfa5..7b5797d 100644
--- a/examples/app4mc.example.modeling.periodic/pom.xml
+++ b/examples/app4mc.example.modeling.periodic/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.periodic/step_1/modeling_example_periodic_1.amxmi b/examples/app4mc.example.modeling.periodic/step_1/modeling_example_periodic_1.amxmi
index ed15d87..bbf8af2 100644
--- a/examples/app4mc.example.modeling.periodic/step_1/modeling_example_periodic_1.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_1/modeling_example_periodic_1.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,47 +47,47 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_2/modeling_example_periodic_2.amxmi b/examples/app4mc.example.modeling.periodic/step_2/modeling_example_periodic_2.amxmi
index 6d2b0a9..69dd2a0 100644
--- a/examples/app4mc.example.modeling.periodic/step_2/modeling_example_periodic_2.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_2/modeling_example_periodic_2.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -60,54 +60,54 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_3/modeling_example_periodic_3.amxmi b/examples/app4mc.example.modeling.periodic/step_3/modeling_example_periodic_3.amxmi
index 45d9b72..0d1e4cc 100644
--- a/examples/app4mc.example.modeling.periodic/step_3/modeling_example_periodic_3.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_3/modeling_example_periodic_3.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -73,61 +73,61 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_4/modeling_example_periodic_4.amxmi b/examples/app4mc.example.modeling.periodic/step_4/modeling_example_periodic_4.amxmi
index 2157fcf..86f727f 100644
--- a/examples/app4mc.example.modeling.periodic/step_4/modeling_example_periodic_4.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_4/modeling_example_periodic_4.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="6"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -73,11 +73,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -86,68 +86,68 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_5/modeling_example_periodic_5.amxmi b/examples/app4mc.example.modeling.periodic/step_5/modeling_example_periodic_5.amxmi
index d1cc1aa..6b581fd 100644
--- a/examples/app4mc.example.modeling.periodic/step_5/modeling_example_periodic_5.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_5/modeling_example_periodic_5.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="6"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -73,11 +73,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -86,68 +86,68 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_6/modeling_example_periodic_6.amxmi b/examples/app4mc.example.modeling.periodic/step_6/modeling_example_periodic_6.amxmi
index b432168..79e7c04 100644
--- a/examples/app4mc.example.modeling.periodic/step_6/modeling_example_periodic_6.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_6/modeling_example_periodic_6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="6"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -73,11 +73,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="non_preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -86,68 +86,68 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_7/modeling_example_periodic_7.amxmi b/examples/app4mc.example.modeling.periodic/step_7/modeling_example_periodic_7.amxmi
index f44ebcb..cf364e0 100644
--- a/examples/app4mc.example.modeling.periodic/step_7/modeling_example_periodic_7.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_7/modeling_example_periodic_7.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="6"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -73,11 +73,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="non_preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -86,68 +86,68 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_8/modeling_example_periodic_8.amxmi b/examples/app4mc.example.modeling.periodic/step_8/modeling_example_periodic_8.amxmi
index c0c68f1..16b88cd 100644
--- a/examples/app4mc.example.modeling.periodic/step_8/modeling_example_periodic_8.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_8/modeling_example_periodic_8.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,11 +8,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="7"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -21,11 +21,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="6"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -34,11 +34,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="5"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -47,11 +47,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -60,11 +60,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -73,11 +73,11 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" preemption="non_preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -86,69 +86,69 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:SchedulePoint"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.periodic/step_9/modeling_example_periodic_9.amxmi b/examples/app4mc.example.modeling.periodic/step_9/modeling_example_periodic_9.amxmi
index b6c3dff..eae3c8f 100644
--- a/examples/app4mc.example.modeling.periodic/step_9/modeling_example_periodic_9.amxmi
+++ b/examples/app4mc.example.modeling.periodic/step_9/modeling_example_periodic_9.amxmi
@@ -1,111 +1,111 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_5_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_6" stimuli="Stimulus_Task_6?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_6_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_6?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_7" stimuli="Stimulus_Task_7?type=PeriodicStimulus" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_7_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_7_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5970000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11970000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="8970000" upperBound="9000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="17970000" upperBound="18000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_6" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23970000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35977500" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_7_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11992500" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.state_machine/pom.xml b/examples/app4mc.example.modeling.state_machine/pom.xml
index aef567f..01e46c7 100644
--- a/examples/app4mc.example.modeling.state_machine/pom.xml
+++ b/examples/app4mc.example.modeling.state_machine/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.state_machine/step_1/modeling_example_state_machine_1.amxmi b/examples/app4mc.example.modeling.state_machine/step_1/modeling_example_state_machine_1.amxmi
index 687b8fa..05989d5 100644
--- a/examples/app4mc.example.modeling.state_machine/step_1/modeling_example_state_machine_1.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_1/modeling_example_state_machine_1.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -24,7 +24,7 @@
         <items xsi:type="am:Group" name="CallSequence_1_2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -33,7 +33,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -63,60 +63,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_2/modeling_example_state_machine_2.amxmi b/examples/app4mc.example.modeling.state_machine/step_2/modeling_example_state_machine_2.amxmi
index f1d9daa..35bb253 100644
--- a/examples/app4mc.example.modeling.state_machine/step_2/modeling_example_state_machine_2.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_2/modeling_example_state_machine_2.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -24,7 +24,7 @@
         <items xsi:type="am:Group" name="CallSequence_1_2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -33,7 +33,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -63,70 +63,70 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="request"/>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
         <items xsi:type="am:SemaphoreAccess" semaphore="Semaphore?type=Semaphore" access="release"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_3/modeling_example_state_machine_3.amxmi b/examples/app4mc.example.modeling.state_machine/step_3/modeling_example_state_machine_3.amxmi
index c3064d3..4a502c6 100644
--- a/examples/app4mc.example.modeling.state_machine/step_3/modeling_example_state_machine_3.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_3/modeling_example_state_machine_3.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -24,7 +24,7 @@
         <items xsi:type="am:Group" name="CallSequence_1_2" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -33,7 +33,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -63,60 +63,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_4/modeling_example_state_machine_4.amxmi b/examples/app4mc.example.modeling.state_machine/step_4/modeling_example_state_machine_4.amxmi
index 64445e9..5b2d001 100644
--- a/examples/app4mc.example.modeling.state_machine/step_4/modeling_example_state_machine_4.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_4/modeling_example_state_machine_4.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -25,7 +25,7 @@
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,7 +34,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -64,60 +64,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_5/modeling_example_state_machine_5.amxmi b/examples/app4mc.example.modeling.state_machine/step_5/modeling_example_state_machine_5.amxmi
index 9716538..a9d1d7a 100644
--- a/examples/app4mc.example.modeling.state_machine/step_5/modeling_example_state_machine_5.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_5/modeling_example_state_machine_5.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -25,7 +25,7 @@
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,7 +34,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -64,60 +64,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_6/modeling_example_state_machine_6.amxmi b/examples/app4mc.example.modeling.state_machine/step_6/modeling_example_state_machine_6.amxmi
index 7f99c34..8c5f653 100644
--- a/examples/app4mc.example.modeling.state_machine/step_6/modeling_example_state_machine_6.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_6/modeling_example_state_machine_6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -25,7 +25,7 @@
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,7 +34,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -64,60 +64,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_7/modeling_example_state_machine_7.amxmi b/examples/app4mc.example.modeling.state_machine/step_7/modeling_example_state_machine_7.amxmi
index 7f99c34..8c5f653 100644
--- a/examples/app4mc.example.modeling.state_machine/step_7/modeling_example_state_machine_7.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_7/modeling_example_state_machine_7.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -25,7 +25,7 @@
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,7 +34,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -64,60 +64,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine/step_8/modeling_example_state_machine_8.amxmi b/examples/app4mc.example.modeling.state_machine/step_8/modeling_example_state_machine_8.amxmi
index 2e5dc4c..8bbff44 100644
--- a/examples/app4mc.example.modeling.state_machine/step_8/modeling_example_state_machine_8.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_8/modeling_example_state_machine_8.amxmi
@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_2" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="60.0">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -34,35 +34,35 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.state_machine/step_9/modeling_example_state_machine_9.amxmi b/examples/app4mc.example.modeling.state_machine/step_9/modeling_example_state_machine_9.amxmi
index cda449a..6635393 100644
--- a/examples/app4mc.example.modeling.state_machine/step_9/modeling_example_state_machine_9.amxmi
+++ b/examples/app4mc.example.modeling.state_machine/step_9/modeling_example_state_machine_9.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="75.0">
             <items xsi:type="am:Group" name="CallSequence_1_0" ordered="true">
@@ -25,7 +25,7 @@
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
           <items xsi:type="am:InterProcessTrigger" stimulus="Stimulus_Task_2?type=InterProcessStimulus"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -34,7 +34,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="State_1">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -64,60 +64,60 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="MessageContent_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="state?type=ModeLabel" access="set" value="State_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="State">
       <literals name="State_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/pom.xml b/examples/app4mc.example.modeling.state_machine_feedback_loop/pom.xml
index dda07c9..4459b8d 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/pom.xml
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_1/modeling_example_state_machine_feedback_loop_1.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_1/modeling_example_state_machine_feedback_loop_1.amxmi
index 767e8d3..ffdeac9 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_1/modeling_example_state_machine_feedback_loop_1.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_1/modeling_example_state_machine_feedback_loop_1.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -58,7 +58,7 @@
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -67,7 +67,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -148,77 +148,77 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="MessageToT1">
       <literals name="MessageToT1_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_2/modeling_example_state_machine_feedback_loop_2.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_2/modeling_example_state_machine_feedback_loop_2.amxmi
index e8912f9..6146e11 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_2/modeling_example_state_machine_feedback_loop_2.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_2/modeling_example_state_machine_feedback_loop_2.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -58,7 +58,7 @@
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -67,7 +67,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -148,7 +148,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -157,7 +157,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -188,7 +188,7 @@
         <items xsi:type="am:Group" name="CallSequence_3" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -197,7 +197,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -237,144 +237,144 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_3/modeling_example_state_machine_feedback_loop_3.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_3/modeling_example_state_machine_feedback_loop_3.amxmi
index ff2a48b..7259fb6 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_3/modeling_example_state_machine_feedback_loop_3.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_3/modeling_example_state_machine_feedback_loop_3.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -58,7 +58,7 @@
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="Stimulus_Task_2?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -67,7 +67,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -148,7 +148,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -157,7 +157,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -188,7 +188,7 @@
         <items xsi:type="am:Group" name="CallSequence_3" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="Stimulus_Task_4?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -197,7 +197,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -237,166 +237,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_4/modeling_example_state_machine_feedback_loop_4.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_4/modeling_example_state_machine_feedback_loop_4.amxmi
index 42dffff..02107ed 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_4/modeling_example_state_machine_feedback_loop_4.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_4/modeling_example_state_machine_feedback_loop_4.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -59,7 +59,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -68,7 +68,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -149,7 +149,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -158,7 +158,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -190,7 +190,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -199,7 +199,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -239,166 +239,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_5/modeling_example_state_machine_feedback_loop_5.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_5/modeling_example_state_machine_feedback_loop_5.amxmi
index 8348f62..760ee23 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_5/modeling_example_state_machine_feedback_loop_5.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_5/modeling_example_state_machine_feedback_loop_5.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -59,7 +59,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -68,7 +68,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -149,7 +149,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -158,7 +158,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -190,7 +190,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -199,7 +199,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -239,166 +239,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="600000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_6/modeling_example_state_machine_feedback_loop_6.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_6/modeling_example_state_machine_feedback_loop_6.amxmi
index a668769..e20bcbe 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_6/modeling_example_state_machine_feedback_loop_6.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_6/modeling_example_state_machine_feedback_loop_6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -59,7 +59,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -68,7 +68,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -149,7 +149,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -158,7 +158,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -190,7 +190,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
@@ -199,7 +199,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -239,166 +239,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_7/modeling_example_state_machine_feedback_loop_7.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_7/modeling_example_state_machine_feedback_loop_7.amxmi
index 2ce3541..40b62bb 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_7/modeling_example_state_machine_feedback_loop_7.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_7/modeling_example_state_machine_feedback_loop_7.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -59,7 +59,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -68,7 +68,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -149,7 +149,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -158,7 +158,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -190,7 +190,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -199,7 +199,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -239,166 +239,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_8/modeling_example_state_machine_feedback_loop_8.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_8/modeling_example_state_machine_feedback_loop_8.amxmi
index b976cf2..9c528f0 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_8/modeling_example_state_machine_feedback_loop_8.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_8/modeling_example_state_machine_feedback_loop_8.amxmi
@@ -1,22 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="33.0">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -34,24 +34,24 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3" ordered="true">
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -79,99 +79,99 @@
             </items>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_7" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_9/modeling_example_state_machine_feedback_loop_9.amxmi b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_9/modeling_example_state_machine_feedback_loop_9.amxmi
index 2ce3541..40b62bb 100644
--- a/examples/app4mc.example.modeling.state_machine_feedback_loop/step_9/modeling_example_state_machine_feedback_loop_9.amxmi
+++ b/examples/app4mc.example.modeling.state_machine_feedback_loop/step_9/modeling_example_state_machine_feedback_loop_9.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -8,7 +8,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:ModeSwitch">
@@ -59,7 +59,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_2?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_2" stimuli="IPA_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -68,7 +68,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_State_1" ordered="true">
@@ -149,7 +149,7 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_3" stimuli="Stimulus_Task_3?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -158,7 +158,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ProbabilitySwitch">
           <entries probability="20.0">
             <items xsi:type="am:Group" name="CallSequence_3_3" ordered="true">
@@ -190,7 +190,7 @@
           <items xsi:type="am:InterProcessTrigger" stimulus="IPA_Task_4?type=InterProcessStimulus"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_4" stimuli="IPA_Task_4?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
       <customProperties key="priority">
@@ -199,7 +199,7 @@
       <customProperties key="osekTaskGroup">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="">
             <items xsi:type="am:Group" name="CallSequence_4_2" ordered="true">
@@ -239,166 +239,166 @@
             </items>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5" stimuli="Stimulus_Task_5?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="2">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CS_Task_5" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_5_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="59400" upperBound="60600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_State_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700000" upperBound="30300000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT2?type=ModeLabel" access="set" value="MessageToT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_Transition_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT2?type=ModeLabel" access="set" value="StateT2_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_0" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_1_State1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="stateT1?type=ModeLabel" access="set" value="StateT1_1" step="1"/>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_2_Overflow" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="messageToT1?type=ModeLabel" access="set" value="MessageToT1_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_1" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594" upperBound="606"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="29700" upperBound="30300"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="594000" upperBound="606000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="23760000" upperBound="24240000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_4_x" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="58" upperBound="60"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_2" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_3" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_4" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3_0" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="message?type=ModeLabel" access="set" value="Message_0" step="1"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="5940000" upperBound="6060000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="35640000" upperBound="36360000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Runnable_5_2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="11880000" upperBound="12120000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="Message">
       <literals name="Message_0">
diff --git a/examples/app4mc.example.modeling/example-1/model_1.amxmi b/examples/app4mc.example.modeling/example-1/model_1.amxmi
index 202f92a..afb16ab 100644
--- a/examples/app4mc.example.modeling/example-1/model_1.amxmi
+++ b/examples/app4mc.example.modeling/example-1/model_1.amxmi
@@ -1,168 +1,168 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
-    <tasks name="Task_1" preemption="preemptive" multipleTaskActivationLimit="1">
+    <tasks xmi:id="Task_1?type=Task" name="Task_1" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="4"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
+    <tasks xmi:id="Task_2?type=Task" name="Task_2" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="3"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_2_2?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_3" preemption="preemptive" multipleTaskActivationLimit="1">
+    <tasks xmi:id="Task_3?type=Task" name="Task_3" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="2"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3_2?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_3_3?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_4" preemption="preemptive" multipleTaskActivationLimit="1">
+    <tasks xmi:id="Task_4?type=Task" name="Task_4" preemption="preemptive" multipleTaskActivationLimit="1">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="1"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4_1?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_4_2?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_4_3?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="Runnable_4_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_1_1?type=Runnable" name="Runnable_1_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1500000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_2_1?type=Runnable" name="Runnable_2_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1500000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_2_2" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_2_2?type=Runnable" name="Runnable_2_2" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1500000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_3_1?type=Runnable" name="Runnable_3_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_3_2" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_3_2?type=Runnable" name="Runnable_3_2" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="2000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_3_3" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_3_3?type=Runnable" name="Runnable_3_3" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_4_1?type=Runnable" name="Runnable_4_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_4_2" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_4_2?type=Runnable" name="Runnable_4_2" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="2000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_4_3" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_4_3?type=Runnable" name="Runnable_4_3" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="3000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_4_4" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_4_4?type=Runnable" name="Runnable_4_4" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="2000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="Core_Definition" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
-    <definitions xsi:type="am:MemoryDefinition" name="Memory_Def">
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="Core_Definition?type=ProcessingUnitDefinition" name="Core_Definition" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
+    <definitions xsi:type="am:MemoryDefinition" xmi:id="Memory_Def?type=MemoryDefinition" name="Memory_Def">
       <accessLatency xsi:type="am:DiscreteValueConstant" value="12"/>
     </definitions>
-    <featureCategories name="Instructions" featureType="performance">
-      <features name="IPC_1" value="1.0"/>
+    <featureCategories xmi:id="Instructions?type=HwFeatureCategory" name="Instructions" featureType="performance">
+      <features xmi:id="Instructions/IPC_1?type=HwFeature" name="IPC_1" value="1.0"/>
     </featureCategories>
-    <structures name="System">
-      <structures name="ECU">
-        <modules xsi:type="am:Memory" name="Memory"/>
-        <modules xsi:type="am:ProcessingUnit" name="Core_1" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
-        <modules xsi:type="am:ProcessingUnit" name="Core_2" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+    <structures xmi:id="System?type=HwStructure" name="System">
+      <structures xmi:id="ECU?type=HwStructure" name="ECU">
+        <modules xsi:type="am:Memory" xmi:id="Memory?type=Memory" name="Memory" definition="Memory_Def?type=MemoryDefinition"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core_1?type=ProcessingUnit" name="Core_1" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core_2?type=ProcessingUnit" name="Core_2" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
       </structures>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="Main_Freq_Domain?type=FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
       <defaultValue value="100.0" unit="MHz"/>
     </domains>
   </hwModel>
   <osModel>
     <operatingSystems name="OperatingSystem">
-      <taskSchedulers name="Scheduler_1">
+      <taskSchedulers xmi:id="Scheduler_1?type=TaskScheduler" name="Scheduler_1">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
       </taskSchedulers>
-      <taskSchedulers name="Scheduler_2">
+      <taskSchedulers xmi:id="Scheduler_2?type=TaskScheduler" name="Scheduler_2">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
       </taskSchedulers>
     </operatingSystems>
   </osModel>
   <stimuliModel>
-    <stimuli xsi:type="am:PeriodicStimulus" name="Stimulus_Task_1">
-      <offset value="0" unit="ms"/>
+    <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_1?type=PeriodicStimulus" name="Stimulus_Task_1">
       <recurrence value="180" unit="ms"/>
-    </stimuli>
-    <stimuli xsi:type="am:PeriodicStimulus" name="Stimulus_Task_2">
       <offset value="0" unit="ms"/>
+    </stimuli>
+    <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_2?type=PeriodicStimulus" name="Stimulus_Task_2">
       <recurrence value="200" unit="ms"/>
-    </stimuli>
-    <stimuli xsi:type="am:PeriodicStimulus" name="Stimulus_Task_3">
       <offset value="0" unit="ms"/>
+    </stimuli>
+    <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_3?type=PeriodicStimulus" name="Stimulus_Task_3">
       <recurrence value="300" unit="ms"/>
-    </stimuli>
-    <stimuli xsi:type="am:PeriodicStimulus" name="Stimulus_Task_4">
       <offset value="0" unit="ms"/>
+    </stimuli>
+    <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_4?type=PeriodicStimulus" name="Stimulus_Task_4">
       <recurrence value="1" unit="s"/>
+      <offset value="0" unit="ms"/>
     </stimuli>
   </stimuliModel>
   <eventModel/>
diff --git a/examples/app4mc.example.modeling/example-2/model_2.amxmi b/examples/app4mc.example.modeling/example-2/model_2.amxmi
index 78d5709..b0b21dd 100644
--- a/examples/app4mc.example.modeling/example-2/model_2.amxmi
+++ b/examples/app4mc.example.modeling/example-2/model_2.amxmi
@@ -1,41 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
-    <tasks name="Task_4" stimuli="Stimulus_Task_4?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
+    <tasks xmi:id="Task_4?type=Task" name="Task_4" stimuli="Stimulus_Task_4?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_4_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_4_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_3" stimuli="Stimulus_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
+    <tasks xmi:id="Task_3?type=Task" name="Task_3" stimuli="Stimulus_Task_3?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_3_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_3_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_2" stimuli="Stimulus_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
+    <tasks xmi:id="Task_2?type=Task" name="Task_2" stimuli="Stimulus_Task_2?type=InterProcessStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_2_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_2_1?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <tasks name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
+    <tasks xmi:id="Task_1?type=Task" name="Task_1" stimuli="Stimulus_Task_1?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="3">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence_1_1" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1_1?type=Runnable"/>
         </items>
@@ -56,98 +56,98 @@
         <items xsi:type="am:Group" name="CallSequence_1_3" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="Runnable_1_4?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
-    <runnables name="Runnable_1_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_1_1?type=Runnable" name="Runnable_1_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_1_2" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_1_2?type=Runnable" name="Runnable_1_2" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="2000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_3_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_3_1?type=Runnable" name="Runnable_3_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueGaussDistribution" lowerBound="0" upperBound="5000000" mean="1000000.0" sd="50000.0"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_4_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_4_1?type=Runnable" name="Runnable_4_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_1_3" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_1_3?type=Runnable" name="Runnable_1_3" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="3000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_2_1" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_2_1?type=Runnable" name="Runnable_2_1" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueUniformDistribution" lowerBound="1000000" upperBound="5000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
-    <runnables name="Runnable_1_4" callback="false" service="false">
-      <callGraph>
+    <runnables xmi:id="Runnable_1_4?type=Runnable" name="Runnable_1_4" callback="false" service="false">
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="4000000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="Core_Definition" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
-    <definitions xsi:type="am:MemoryDefinition" name="Memory_Def">
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="Core_Definition?type=ProcessingUnitDefinition" name="Core_Definition" puType="CPU" features="Instructions/IPC_1?type=HwFeature"/>
+    <definitions xsi:type="am:MemoryDefinition" xmi:id="Memory_Def?type=MemoryDefinition" name="Memory_Def">
       <accessLatency xsi:type="am:DiscreteValueConstant" value="12"/>
     </definitions>
-    <featureCategories name="Instructions" featureType="performance">
-      <features name="IPC_1" value="1.0"/>
+    <featureCategories xmi:id="Instructions?type=HwFeatureCategory" name="Instructions" featureType="performance">
+      <features xmi:id="Instructions/IPC_1?type=HwFeature" name="IPC_1" value="1.0"/>
     </featureCategories>
-    <structures name="System">
-      <structures name="ECU">
-        <modules xsi:type="am:Memory" name="Memory"/>
-        <modules xsi:type="am:ProcessingUnit" name="Core_1" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+    <structures xmi:id="System?type=HwStructure" name="System">
+      <structures xmi:id="ECU?type=HwStructure" name="ECU">
+        <modules xsi:type="am:Memory" xmi:id="Memory?type=Memory" name="Memory" definition="Memory_Def?type=MemoryDefinition"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="Core_1?type=ProcessingUnit" name="Core_1" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
       </structures>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="Main_Freq_Domain?type=FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
       <defaultValue value="600.0" unit="MHz"/>
     </domains>
   </hwModel>
   <osModel>
     <operatingSystems name="OperatingSystem">
-      <taskSchedulers name="Scheduler_1">
+      <taskSchedulers xmi:id="Scheduler_1?type=TaskScheduler" name="Scheduler_1">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
       </taskSchedulers>
       <osDataConsistency mode="noProtection"/>
     </operatingSystems>
   </osModel>
   <stimuliModel>
-    <stimuli xsi:type="am:InterProcessStimulus" name="Stimulus_Task_2"/>
-    <stimuli xsi:type="am:RelativePeriodicStimulus" name="Stimulus_Task_4">
+    <stimuli xsi:type="am:InterProcessStimulus" xmi:id="Stimulus_Task_2?type=InterProcessStimulus" name="Stimulus_Task_2"/>
+    <stimuli xsi:type="am:RelativePeriodicStimulus" xmi:id="Stimulus_Task_4?type=RelativePeriodicStimulus" name="Stimulus_Task_4">
       <nextOccurrence xsi:type="am:TimeGaussDistribution">
-        <lowerBound value="0"/>
+        <lowerBound value="0" unit="ms"/>
         <upperBound value="100" unit="ms"/>
         <mean value="30" unit="ms"/>
         <sd value="5" unit="ms"/>
       </nextOccurrence>
     </stimuli>
-    <stimuli xsi:type="am:InterProcessStimulus" name="Stimulus_Task_3"/>
-    <stimuli xsi:type="am:PeriodicStimulus" name="Stimulus_Task_1">
-      <offset value="0" unit="ms"/>
+    <stimuli xsi:type="am:InterProcessStimulus" xmi:id="Stimulus_Task_3?type=InterProcessStimulus" name="Stimulus_Task_3"/>
+    <stimuli xsi:type="am:PeriodicStimulus" xmi:id="Stimulus_Task_1?type=PeriodicStimulus" name="Stimulus_Task_1">
       <recurrence value="25" unit="ms"/>
+      <offset value="0" unit="ms"/>
     </stimuli>
   </stimuliModel>
   <eventModel/>
diff --git a/examples/app4mc.example.modeling/pom.xml b/examples/app4mc.example.modeling/pom.xml
index 71372da..a608573 100644
--- a/examples/app4mc.example.modeling/pom.xml
+++ b/examples/app4mc.example.modeling/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.numeric_modes/NumericModes.amxmi b/examples/app4mc.example.numeric_modes/NumericModes.amxmi
index 8983010..b1b3868 100644
--- a/examples/app4mc.example.numeric_modes/NumericModes.amxmi
+++ b/examples/app4mc.example.numeric_modes/NumericModes.amxmi
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="doA" stimuli="A_Stimuli_EventBased?type=EventStimulus" preemption="cooperative" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="runnA?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="doB" stimuli="B_Stimuli_25ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeSwitch">
           <entries name="conditionTrue">
             <items xsi:type="am:Group" name="CallSequence" ordered="true">
@@ -24,55 +24,55 @@
             </condition>
           </entries>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="genY" stimuli="genTrigger?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="counterForY?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="genX" stimuli="genTrigger?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="counterForX?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="runnA" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="10000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="runnB" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ModeLabelAccess" data="countX?type=ModeLabel" access="decrement" step="3"/>
         <items xsi:type="am:ModeLabelAccess" data="countY?type=ModeLabel" access="decrement" step="3"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="10000"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="counterForY" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="10000"/>
         </items>
         <items xsi:type="am:ModeLabelAccess" data="countY?type=ModeLabel" access="increment" step="1"/>
         <items xsi:type="am:CustomEventTrigger" event="check?type=CustomEvent"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="counterForX" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="10000"/>
         </items>
         <items xsi:type="am:ModeLabelAccess" data="countX?type=ModeLabel" access="increment" step="1"/>
         <items xsi:type="am:CustomEventTrigger" event="check?type=CustomEvent"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <modes xsi:type="am:EnumMode" name="ExecutionMode">
       <literals name="ModeA"/>
diff --git a/examples/app4mc.example.numeric_modes/pom.xml b/examples/app4mc.example.numeric_modes/pom.xml
index 42d5faa..492215a 100644
--- a/examples/app4mc.example.numeric_modes/pom.xml
+++ b/examples/app4mc.example.numeric_modes/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi b/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
index 4395f3a..528c7b0 100644
--- a/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
+++ b/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="TaskA1" multipleTaskActivationLimit="0"/>
     <tasks name="TaskB1" multipleTaskActivationLimit="0"/>
diff --git a/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi b/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
index 923585f..46c3094 100644
--- a/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
+++ b/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="TaskA1" multipleTaskActivationLimit="0"/>
     <tasks name="TaskB1" multipleTaskActivationLimit="0"/>
diff --git a/examples/app4mc.example.scheduler/pom.xml b/examples/app4mc.example.scheduler/pom.xml
index 6c5f615..6daa4fb 100644
--- a/examples/app4mc.example.scheduler/pom.xml
+++ b/examples/app4mc.example.scheduler/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.tool.java/META-INF/MANIFEST.MF b/examples/app4mc.example.tool.java/META-INF/MANIFEST.MF
index be35ac7..1dbfd14 100644
--- a/examples/app4mc.example.tool.java/META-INF/MANIFEST.MF
+++ b/examples/app4mc.example.tool.java/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Java Example
 Bundle-SymbolicName: app4mc.example.tool.java
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.ui,
diff --git a/examples/app4mc.example.tool.java/model-input/democar.amxmi b/examples/app4mc.example.tool.java/model-input/democar.amxmi
index 9ed980e..a4291e8 100644
--- a/examples/app4mc.example.tool.java/model-input/democar.amxmi
+++ b/examples/app4mc.example.tool.java/model-input/democar.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -17,7 +17,7 @@
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
@@ -53,23 +53,23 @@
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
@@ -81,10 +81,10 @@
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -94,10 +94,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -105,48 +105,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -154,20 +154,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -178,19 +178,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -198,20 +198,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -222,47 +222,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -270,80 +270,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -357,19 +357,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -383,84 +383,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -468,37 +468,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -506,17 +506,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.java/pom.xml b/examples/app4mc.example.tool.java/pom.xml
index 3497fa3..977e4b3 100644
--- a/examples/app4mc.example.tool.java/pom.xml
+++ b/examples/app4mc.example.tool.java/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.tool.java/src/app4mc/example/tool/java/CollectorExample.java b/examples/app4mc.example.tool.java/src/app4mc/example/tool/java/CollectorExample.java
index e05e7d3..24fc900 100644
--- a/examples/app4mc.example.tool.java/src/app4mc/example/tool/java/CollectorExample.java
+++ b/examples/app4mc.example.tool.java/src/app4mc/example/tool/java/CollectorExample.java
@@ -20,7 +20,7 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
@@ -59,22 +59,22 @@
 		
 		// ***** Some tests *****
 
-		List<CallGraphItem> items1 = SoftwareUtil.collectCallGraphItems(run.getCallGraph());
+		List<ActivityGraphItem> items1 = SoftwareUtil.collectActivityGraphItems(run.getActivityGraph());
 
 		System.out.println("\nAll items:");
-		for (CallGraphItem item : items1) {
+		for (ActivityGraphItem item : items1) {
 			System.out.println(" - " + item.toString());
 		}
 		
-		List<CallGraphItem> items2 = SoftwareUtil.collectCallGraphItems(run.getCallGraph(), null,
+		List<ActivityGraphItem> items2 = SoftwareUtil.collectActivityGraphItems(run.getActivityGraph(), null,
 				a -> a instanceof LabelAccess && ((LabelAccess) a).getAccess() == LabelAccessEnum.READ);
 
 		System.out.println("\nLabel accesses (read):");
-		for (CallGraphItem item : items2) {
+		for (ActivityGraphItem item : items2) {
 			System.out.println(" - " + item.toString());
 		}
 		
-		List<LabelAccess> items3 = SoftwareUtil.collectCallGraphItems(run.getCallGraph(), null, LabelAccess.class);
+		List<LabelAccess> items3 = SoftwareUtil.collectActivityGraphItems(run.getActivityGraph(), null, LabelAccess.class);
 		
 		System.out.println("\nLabel accesses:");
 		for (LabelAccess item : items3) {
@@ -82,7 +82,7 @@
 		}
 		
 
-		List<LabelAccess> items4 = SoftwareUtil.collectCallGraphItems(run.getCallGraph(), null, LabelAccess.class, a -> isWritingLabelAccess(a));
+		List<LabelAccess> items4 = SoftwareUtil.collectActivityGraphItems(run.getActivityGraph(), null, LabelAccess.class, a -> isWritingLabelAccess(a));
 
 		System.out.println("\nLabel accesses (write):");
 		for (LabelAccess item : items4) {
diff --git a/examples/app4mc.example.tool.mapping/META-INF/MANIFEST.MF b/examples/app4mc.example.tool.mapping/META-INF/MANIFEST.MF
index 1cf1164..f395990 100644
--- a/examples/app4mc.example.tool.mapping/META-INF/MANIFEST.MF
+++ b/examples/app4mc.example.tool.mapping/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Mapping Example
 Bundle-SymbolicName: app4mc.example.tool.mapping
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Automatic-Module-Name: app4mc.example.tool.mapping
diff --git a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample-hw.amxmi b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample-hw.amxmi
index 7ffae5b..6529792 100644
--- a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample-hw.amxmi
+++ b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample-hw.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <coreClassifiers name="VLE" description=""/>
     <coreClassifiers name="PowerArchitectureInstructionSet"/>
diff --git a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample.amxmi b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample.amxmi
index 464f32f..9512474 100644
--- a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample.amxmi
+++ b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -14,7 +14,7 @@
   </commonElements>
   <swModel>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -24,10 +24,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -35,48 +35,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -84,20 +84,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" activations="Timer_20MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -108,19 +108,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -128,20 +128,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -152,47 +152,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -200,80 +200,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -287,19 +287,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -313,84 +313,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -398,37 +398,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -436,17 +436,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample_withTasks.amxmi b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample_withTasks.amxmi
index f222646..27cbb46 100644
--- a/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample_withTasks.amxmi
+++ b/examples/app4mc.example.tool.mapping/model/AMALTHEA_Democar_MappingExample_withTasks.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -18,41 +18,41 @@
       <customProperties key="[ConstraintExclude] Exclude Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuVehicleSpeedSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorTranslation?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorVoter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP1" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintExclude] Exclude Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CylNumObserver?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="DecelerationSensorDiagnosis?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP2" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintExclude] Exclude Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorDiagnosis?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakePedalSensorDiagnosis?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP3" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintExclude] Exclude Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BaseFuelMass?type=Runnable"/>
@@ -60,26 +60,26 @@
           <items xsi:type="am:RunnableCall" runnable="TotalFuelMass?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="InjectionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP4" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintExclude] Exclude Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="APedSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="APedVoter?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="ThrottleController?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="ThrottleActuator?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP5" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintInclude] Requires Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuBrakePedalSensor?type=Runnable"/>
@@ -92,13 +92,13 @@
           <items xsi:type="am:RunnableCall" runnable="StopLightActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP6" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
       <customProperties key="[ConstraintInclude] Requires Targets with FPU">
         <value xsi:type="am:ReferenceObject" value="FPU?type=CoreClassifier"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="VehicleStateMonitor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuDecelerationSensor?type=Runnable"/>
@@ -110,36 +110,36 @@
           <items xsi:type="am:RunnableCall" runnable="BrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP7" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="VehicleSpeedSensorDiagnosis?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP8" stimuli="Timer_10MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="DiagnosisArbiter?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_ESSP9" stimuli="Timer_5MS?type=PeriodicStimulus" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuWheelSpeedSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorTranslation?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="WheelSpeedSensorVoter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -149,10 +149,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -160,48 +160,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -209,20 +209,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" activations="Timer_20MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -233,19 +233,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -253,20 +253,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -277,47 +277,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -325,80 +325,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -412,19 +412,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -438,84 +438,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" activations="Timer_5MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -523,37 +523,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -561,17 +561,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" activations="Timer_10MS?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_Democar_EnergyEfficientMappingExample.amxmi b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_Democar_EnergyEfficientMappingExample.amxmi
index 2bbd6fc..867fb67 100644
--- a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_Democar_EnergyEfficientMappingExample.amxmi
+++ b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_Democar_EnergyEfficientMappingExample.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -14,7 +14,7 @@
   </commonElements>
   <swModel>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -24,10 +24,10 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
@@ -35,48 +35,48 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
@@ -84,20 +84,20 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -108,19 +108,19 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
@@ -128,20 +128,20 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -152,47 +152,47 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
@@ -200,80 +200,80 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -287,19 +287,19 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -313,84 +313,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
@@ -398,37 +398,37 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
@@ -436,17 +436,17 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_HVAC_EnergyEfficientMapping_Example.amxmi b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_HVAC_EnergyEfficientMapping_Example.amxmi
index d3e28c6..e180276 100644
--- a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_HVAC_EnergyEfficientMapping_Example.amxmi
+++ b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/AMALTHEA_HVAC_EnergyEfficientMapping_Example.amxmi
@@ -1,18 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <runnables name="hVAC_YSCT__drvTempAdapter__runCycle" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1531"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hmi__drvTempTicks?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__coordinator__tmpMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__drvTempAdapter__temp?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__coordinator__runCycle" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="4119"/>
         </items>
@@ -22,40 +22,40 @@
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__coordinator__states?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__coordinator__tmpMode?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__blowerCtrl__blwPower?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__hvacFlaps__setFlaps" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="939313"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__coordinator__airFlaps?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__drvTempFlapCtrl__flap?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempFlapCtrl__flap?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__hmi__receiveFromUI" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="419925"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hmi__switches?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hmi__drvTempTicks?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hmi__passTempTicks?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__passTempAdapter__runCycle" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1488"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hmi__passTempTicks?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__coordinator__tmpMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempAdapter__temp?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__hmi__sendToUI" activations="20+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1450"/>
         </items>
@@ -64,20 +64,20 @@
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempAdapter__temp?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__blowerCtrl__blwPower?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hvacItos__interiorTemp?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__drvTempFlapCtrl__runCycle" activations="100+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1256"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__drvTempAdapter__temp?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__drvTempFlapCtrl__flap?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hvacItos__interiorTemp?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__blowerCtrl__runCycle" activations="100+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1275"/>
         </items>
@@ -86,33 +86,33 @@
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempAdapter__temp?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__blowerCtrl__blwPower?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hvacItos__interiorTemp?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__hvacBlower__setPower" activations="100+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="825"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__blowerCtrl__blwPower?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__hvacItos__readTemp" activations="100+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="13575"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hvacItos__interiorTemp?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="hVAC_YSCT__passTempFlapCtrl__runCycle" activations="100+ms?type=PeriodicActivation" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="1231"/>
         </items>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempAdapter__temp?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__passTempFlapCtrl__flap?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="hVAC_YSCT__hvacItos__interiorTemp?type=Label" access="read" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="hVAC_YSCT__hmi__switches" constant="false" bVolatile="false" dataStability="noProtection"/>
     <labels name="hVAC_YSCT__hmi__drvTempTicks" constant="false" bVolatile="false" dataStability="noProtection"/>
diff --git a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/IMX6.amxmi b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/IMX6.amxmi
index eaafdba..75daee2 100644
--- a/examples/app4mc.example.tool.mapping/modelEnergyEfficient/IMX6.amxmi
+++ b/examples/app4mc.example.tool.mapping/modelEnergyEfficient/IMX6.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <hwModel>
     <definitions xsi:type="am:ProcessingUnitDefinition" name="Cortex-A9" puType="CPU" features="Instructions/IPC_1?type=HwFeature">
       <customProperties key="EnEf-Volt_High">
diff --git a/examples/app4mc.example.tool.mapping/pom.xml b/examples/app4mc.example.tool.mapping/pom.xml
index 6c3008c..9e3e188 100644
--- a/examples/app4mc.example.tool.mapping/pom.xml
+++ b/examples/app4mc.example.tool.mapping/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.tool.validation/META-INF/MANIFEST.MF b/examples/app4mc.example.tool.validation/META-INF/MANIFEST.MF
index 4f7c2dd..defaaee 100644
--- a/examples/app4mc.example.tool.validation/META-INF/MANIFEST.MF
+++ b/examples/app4mc.example.tool.validation/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Java Example
 Bundle-SymbolicName: app4mc.example.tool.validation
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.ui,
diff --git a/examples/app4mc.example.tool.validation/model-input/democar.amxmi b/examples/app4mc.example.tool.validation/model-input/democar.amxmi
index 9ed980e..a4291e8 100644
--- a/examples/app4mc.example.tool.validation/model-input/democar.amxmi
+++ b/examples/app4mc.example.tool.validation/model-input/democar.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -17,7 +17,7 @@
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
@@ -53,23 +53,23 @@
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
@@ -81,10 +81,10 @@
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -94,10 +94,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -105,48 +105,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -154,20 +154,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -178,19 +178,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -198,20 +198,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -222,47 +222,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -270,80 +270,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -357,19 +357,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -383,84 +383,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -468,37 +468,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -506,17 +506,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.validation/pom.xml b/examples/app4mc.example.tool.validation/pom.xml
index 499edea..004d1bb 100644
--- a/examples/app4mc.example.tool.validation/pom.xml
+++ b/examples/app4mc.example.tool.validation/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/examples/app4mc.example.tool.workflow/META-INF/MANIFEST.MF b/examples/app4mc.example.tool.workflow/META-INF/MANIFEST.MF
index 11a298f..9792664 100644
--- a/examples/app4mc.example.tool.workflow/META-INF/MANIFEST.MF
+++ b/examples/app4mc.example.tool.workflow/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Workflow Example
 Bundle-SymbolicName: app4mc.example.tool.workflow
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/examples/app4mc.example.tool.workflow/model/AMALTHEA_Components.amxmi b/examples/app4mc.example.tool.workflow/model/AMALTHEA_Components.amxmi
index bb6d9b0..3324e36 100644
--- a/examples/app4mc.example.tool.workflow/model/AMALTHEA_Components.amxmi
+++ b/examples/app4mc.example.tool.workflow/model/AMALTHEA_Components.amxmi
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <componentsModel>
     <components name="Component1">
-      <ports xsi:type="am:InterfacePort" name="Port1" kind="provides"/>
+      <ports name="Port1" kind="provides"/>
     </components>
     <components xsi:type="am:Composite" name="Composite1">
       <componentInstances name="instance1" type="Component1?type=Component"/>
diff --git a/examples/app4mc.example.tool.workflow/model/AMALTHEA_Democar.amxmi b/examples/app4mc.example.tool.workflow/model/AMALTHEA_Democar.amxmi
index 9ed980e..a4291e8 100644
--- a/examples/app4mc.example.tool.workflow/model/AMALTHEA_Democar.amxmi
+++ b/examples/app4mc.example.tool.workflow/model/AMALTHEA_Democar.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <commonElements>
     <tags name="SwcEngineController" tagType="SOFTWARE_COMPONENT"/>
     <tags name="SwcActuators" tagType="SOFTWARE_COMPONENT"/>
@@ -17,7 +17,7 @@
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="CheckPlausability?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="BrakeActuatorMonitor?type=Runnable"/>
@@ -53,23 +53,23 @@
           <items xsi:type="am:RunnableCall" runnable="IgnitionTiming?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="IgnitionTimeActuation?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_20MS" stimuli="Timer_20MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="BrakeForceArbiter?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="Task_5MS" stimuli="Timer_5MS?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="10">
       <customProperties key="priority">
         <value xsi:type="am:StringObject" value="10"/>
       </customProperties>
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Group" name="CallSequence" ordered="true">
           <items xsi:type="am:RunnableCall" runnable="EcuBrakeActuator?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="EcuStopLightActuator?type=Runnable"/>
@@ -81,10 +81,10 @@
           <items xsi:type="am:RunnableCall" runnable="ThrottleSensor?type=Runnable"/>
           <items xsi:type="am:RunnableCall" runnable="MassAirFlowSensor?type=Runnable"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="ABSCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="read" dataStability="inherited"/>
@@ -94,10 +94,10 @@
         </items>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -105,48 +105,48 @@
         </items>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="APedVoter" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="APedPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="APedPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BaseFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeActuatorMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceActuation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ABSActivation?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ABSMode?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -154,20 +154,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceArbiter" tags="SwcBrakeForceArbiter?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeForceCalculation" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -178,19 +178,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="CalculatedBrakeForce?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeMonitorLevel?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -198,20 +198,20 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakePedalSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="BrakeSafetyMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceFeedback?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
@@ -222,47 +222,47 @@
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyLevel?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeSafetyState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CaliperPositionCalculation" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakeForceCurrent?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="CaliperPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CheckPlausability" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedBrakePedalPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="CylNumObserver" tags="SwcCylNumObserver?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="CylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -270,80 +270,80 @@
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DecelerationSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DecelerationRate1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationRate2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedDecelerationRate?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="DiagnosisArbiter" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedDiagnosisRequest?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakeActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeForceVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuBrakePedalSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="BrakePedalPositionVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuDecelerationSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="144000" upperBound="176000" average="160000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="DecelerationVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuStopLightActuator" tags="SwcActuators?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuVehicleSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="EcuWheelSpeedSensor" tags="SwcSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -357,19 +357,19 @@
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime7?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="IgnitionTime8?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="IgnitionTiming" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFRate?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="IgnitionTime?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="InjectionTimeActuation" tags="SwcInjIgnActuation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TriggeredCylinderNumber?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="InjectionTime1?type=Label" access="read" dataStability="inherited"/>
@@ -383,84 +383,84 @@
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="MassAirFlowSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="MAFSensorVoltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MassAirFlow?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="StopLightActuator" tags="SwcABSCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ArbitratedBrakeForce?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="BrakeApplication?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleActuator" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePositionVoltage?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleController" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VotedAPedPosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="DesiredThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="ThrottleSensor" tags="SwcEngineSensors?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor1Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="ThrottleSensor2Voltage?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="ThrottlePosition?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TotalFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TotalFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="TransientFuelMass" tags="SwcEngineController?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="BaseFuelMassPerStroke?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="TransientFuelMassPerStroke?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -468,37 +468,37 @@
         </items>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="VehicleSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedVehicleSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="VehicleStateMonitor" tags="SwcBrakeForceCalculation?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="MonitoredVehicleState?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorDiagnosis" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorTranslation" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeedVoltage2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
@@ -506,17 +506,17 @@
         </items>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="write" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="WheelSpeedSensorVoter" tags="SwcSensorPostprocessing?type=Tag" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="WheelSpeed1?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:LabelAccess" data="WheelSpeed2?type=Label" access="read" dataStability="inherited"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="72000" upperBound="88000" average="80000.0" pRemainPromille="0.5"/>
         </items>
         <items xsi:type="am:LabelAccess" data="VotedWheelSpeed?type=Label" access="write" dataStability="inherited"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="ABSActivation" constant="false" bVolatile="false" dataStability="noProtection">
       <size value="8" unit="bit"/>
diff --git a/examples/app4mc.example.tool.workflow/pom.xml b/examples/app4mc.example.tool.workflow/pom.xml
index b20ac75..897173d 100644
--- a/examples/app4mc.example.tool.workflow/pom.xml
+++ b/examples/app4mc.example.tool.workflow/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 	
 	<properties>
diff --git a/features/org.eclipse.app4mc.amalthea.edit.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.edit.sdk/feature.xml
index 3d7cdd9..82b8570 100644
--- a/features/org.eclipse.app4mc.amalthea.edit.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.edit.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.edit.sdk"
       label="APP4MC AMALTHEA Edit Support SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.edit/feature.xml b/features/org.eclipse.app4mc.amalthea.edit/feature.xml
index 739e8b2..f18df26 100644
--- a/features/org.eclipse.app4mc.amalthea.edit/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.edit/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.edit"
       label="APP4MC AMALTHEA Edit Support"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.editors.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.editors.sdk/feature.xml
index 76a1151..58ee400 100644
--- a/features/org.eclipse.app4mc.amalthea.editors.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.editors.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.editors.sdk"
       label="APP4MC AMALTHEA Editors SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.editors/feature.xml b/features/org.eclipse.app4mc.amalthea.editors/feature.xml
index dd60be1..a16fa79 100644
--- a/features/org.eclipse.app4mc.amalthea.editors/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.editors/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.editors"
       label="APP4MC AMALTHEA Editors"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.export.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.export.sdk/feature.xml
index d4c8775..c0d3769 100644
--- a/features/org.eclipse.app4mc.amalthea.export.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.export.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.export.sdk"
       label="APP4MC AMALTHEA Export SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.export/feature.xml b/features/org.eclipse.app4mc.amalthea.export/feature.xml
index 41f26f7..498dcff 100644
--- a/features/org.eclipse.app4mc.amalthea.export/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.export/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.export"
       label="APP4MC AMALTHEA Export"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.import.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.import.sdk/feature.xml
index 53068e5..82d9791 100644
--- a/features/org.eclipse.app4mc.amalthea.import.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.import.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.import.sdk"
       label="APP4MC AMALTHEA Import SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.import/feature.xml b/features/org.eclipse.app4mc.amalthea.import/feature.xml
index 5deaaf4..d2255a9 100644
--- a/features/org.eclipse.app4mc.amalthea.import/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.import/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.import"
       label="APP4MC AMALTHEA Import"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.models.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.models.sdk/feature.xml
index d665da2..258d069 100644
--- a/features/org.eclipse.app4mc.amalthea.models.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.models.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.models.sdk"
       label="APP4MC AMALTHEA Models SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.models/feature.xml b/features/org.eclipse.app4mc.amalthea.models/feature.xml
index 0a0b3ec..d0d550a 100644
--- a/features/org.eclipse.app4mc.amalthea.models/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.models/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.models"
       label="APP4MC AMALTHEA Models"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.visualizations.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.visualizations.sdk/feature.xml
index 6fa9695..80b835e 100644
--- a/features/org.eclipse.app4mc.amalthea.visualizations.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.visualizations.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.visualizations.sdk"
       label="APP4MC AMALTHEA Visualizations SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.visualizations/feature.xml b/features/org.eclipse.app4mc.amalthea.visualizations/feature.xml
index 8ccfe1a..e438d94 100644
--- a/features/org.eclipse.app4mc.amalthea.visualizations/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.visualizations/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.visualizations"
       label="APP4MC AMALTHEA Visualizations"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk/feature.xml
index 6c404ff..1a813df 100644
--- a/features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.workflow.mwe.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.workflow.mwe.sdk"
       label="APP4MC AMALTHEA Workflow MWE SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.workflow.mwe/feature.xml b/features/org.eclipse.app4mc.amalthea.workflow.mwe/feature.xml
index b0417d4..ad4ebc6 100644
--- a/features/org.eclipse.app4mc.amalthea.workflow.mwe/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.workflow.mwe/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.workflow.mwe"
       label="APP4MC AMALTHEA Workflow MWE"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk/feature.xml b/features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk/feature.xml
index 699e40a..9e62e8a 100644
--- a/features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.workflow.scripting.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.workflow.scripting.sdk"
       label="APP4MC AMALTHEA Workflow Scripting SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.amalthea.workflow.scripting/feature.xml b/features/org.eclipse.app4mc.amalthea.workflow.scripting/feature.xml
index 4c227ad..392e3d5 100644
--- a/features/org.eclipse.app4mc.amalthea.workflow.scripting/feature.xml
+++ b/features/org.eclipse.app4mc.amalthea.workflow.scripting/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.amalthea.workflow.scripting"
       label="APP4MC AMALTHEA Workflow Scripting"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.docu.sdk/feature.xml b/features/org.eclipse.app4mc.docu.sdk/feature.xml
index 941db70..b767e96 100644
--- a/features/org.eclipse.app4mc.docu.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.docu.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.docu.sdk"
       label="APP4MC Documentation SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.docu/feature.xml b/features/org.eclipse.app4mc.docu/feature.xml
index 3923aac..1c721b4 100644
--- a/features/org.eclipse.app4mc.docu/feature.xml
+++ b/features/org.eclipse.app4mc.docu/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.docu"
       label="APP4MC Documentation"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.examples.sdk/feature.xml b/features/org.eclipse.app4mc.examples.sdk/feature.xml
index d24e39f..8dbb454 100644
--- a/features/org.eclipse.app4mc.examples.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.examples.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.examples.sdk"
       label="APP4MC AMALTHEA Model Examples SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.examples/feature.xml b/features/org.eclipse.app4mc.examples/feature.xml
index 71319a5..fc78b22 100644
--- a/features/org.eclipse.app4mc.examples/feature.xml
+++ b/features/org.eclipse.app4mc.examples/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.examples"
       label="APP4MC AMALTHEA Model Examples"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.multicore.sdk/feature.xml b/features/org.eclipse.app4mc.multicore.sdk/feature.xml
index fdcb364..271d99c 100644
--- a/features/org.eclipse.app4mc.multicore.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.multicore.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.multicore.sdk"
       label="APP4MC Multicore Support SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.multicore/feature.xml b/features/org.eclipse.app4mc.multicore/feature.xml
index bfbb051..8cd3786 100644
--- a/features/org.eclipse.app4mc.multicore/feature.xml
+++ b/features/org.eclipse.app4mc.multicore/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.multicore"
       label="APP4MC Multicore Support"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.platform.3rdparty/feature.xml b/features/org.eclipse.app4mc.platform.3rdparty/feature.xml
index 4d704c1..58de69e 100644
--- a/features/org.eclipse.app4mc.platform.3rdparty/feature.xml
+++ b/features/org.eclipse.app4mc.platform.3rdparty/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.platform.3rdparty"
       label="APP4MC Tool Platform 3rd Party Plug-ins"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.platform.sdk/feature.xml b/features/org.eclipse.app4mc.platform.sdk/feature.xml
index 58395c2..959dc30 100644
--- a/features/org.eclipse.app4mc.platform.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.platform.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.platform.sdk"
       label="APP4MC Tool Platform SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.platform/feature.xml b/features/org.eclipse.app4mc.platform/feature.xml
index 69c6cb9..9d398ee 100644
--- a/features/org.eclipse.app4mc.platform/feature.xml
+++ b/features/org.eclipse.app4mc.platform/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.platform"
       label="APP4MC Tool Platform"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       plugin="org.eclipse.app4mc.platform.ide"
       license-feature="org.eclipse.license"
diff --git a/features/org.eclipse.app4mc.tracing.sdk/feature.xml b/features/org.eclipse.app4mc.tracing.sdk/feature.xml
index d00eca8..cebb95c 100644
--- a/features/org.eclipse.app4mc.tracing.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.tracing.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.tracing.sdk"
       label="APP4MC Tracing SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.tracing/feature.xml b/features/org.eclipse.app4mc.tracing/feature.xml
index 90e6caa..e8b223d 100644
--- a/features/org.eclipse.app4mc.tracing/feature.xml
+++ b/features/org.eclipse.app4mc.tracing/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.tracing"
       label="APP4MC Tracing"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.validation.sdk/feature.xml b/features/org.eclipse.app4mc.validation.sdk/feature.xml
index 7f004be..11fc69e 100644
--- a/features/org.eclipse.app4mc.validation.sdk/feature.xml
+++ b/features/org.eclipse.app4mc.validation.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.validation.sdk"
       label="APP4MC Validation SDK"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/org.eclipse.app4mc.validation/feature.xml b/features/org.eclipse.app4mc.validation/feature.xml
index d69b83a..192fdae 100644
--- a/features/org.eclipse.app4mc.validation/feature.xml
+++ b/features/org.eclipse.app4mc.validation/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.app4mc.validation"
       label="APP4MC Validation"
-      version="0.9.6.qualifier"
+      version="0.9.7.qualifier"
       provider-name="Eclipse APP4MC"
       license-feature="org.eclipse.license"
       license-feature-version="2.0.2.qualifier">
diff --git a/features/pom.xml b/features/pom.xml
index 4d28e74..3871185 100644
--- a/features/pom.xml
+++ b/features/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.features</artifactId>
diff --git a/plugins/com.mxgraph/pom.xml b/plugins/com.mxgraph/pom.xml
index 9c422e2..7a5d55b 100644
--- a/plugins/com.mxgraph/pom.xml
+++ b/plugins/com.mxgraph/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>com.mxgraph</artifactId>
diff --git a/plugins/net.sourceforge.plantuml/pom.xml b/plugins/net.sourceforge.plantuml/pom.xml
index 82da706..4245599 100644
--- a/plugins/net.sourceforge.plantuml/pom.xml
+++ b/plugins/net.sourceforge.plantuml/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>net.sourceforge.plantuml</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.edit.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.edit.help/META-INF/MANIFEST.MF
index f260de8..fe6eb18 100644
--- a/plugins/org.eclipse.app4mc.amalthea.edit.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.edit.help/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Edit Help
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.edit.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.help
diff --git a/plugins/org.eclipse.app4mc.amalthea.edit.help/pictures/user_guide_editor_search_result1.png b/plugins/org.eclipse.app4mc.amalthea.edit.help/pictures/user_guide_editor_search_result1.png
index 69e9e9a..47a929a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.edit.help/pictures/user_guide_editor_search_result1.png
+++ b/plugins/org.eclipse.app4mc.amalthea.edit.help/pictures/user_guide_editor_search_result1.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.edit.help/pom.xml b/plugins/org.eclipse.app4mc.amalthea.edit.help/pom.xml
index 9752fe4..87c0993 100644
--- a/plugins/org.eclipse.app4mc.amalthea.edit.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.edit.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.amalthea.edit.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.editors.help/META-INF/MANIFEST.MF
index 6470741..2cfc559 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.help/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Editors Help
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.editors.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
  org.eclipse.help
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.help/pom.xml b/plugins/org.eclipse.app4mc.amalthea.editors.help/pom.xml
index 41b0625..20a49bc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.amalthea.editors.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/META-INF/MANIFEST.MF
index 7a1f4ec..7e02a9a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Sirius Editors
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.editors.sirius.design;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea.editors.sirius.design.Activator
 Require-Bundle: org.eclipse.xtext.xbase,
  org.eclipse.ui,
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/RunnableService.java b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/RunnableService.java
index 14f906f..794e5a5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/RunnableService.java
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/RunnableService.java
@@ -18,7 +18,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
@@ -45,7 +45,7 @@
 		return result;
 	}
 
-	private List<Label> getLabelAccessesForRunnableItems(final List<CallGraphItem> items,
+	private List<Label> getLabelAccessesForRunnableItems(final List<ActivityGraphItem> items,
 			final LabelAccessEnum accessType) {
 		final List<Label> result = new ArrayList<>();
 		final TreeIterator<EObject> iter = EcoreUtil.getAllContents(items);
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskService.java b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskService.java
index c6feb76..ff9a9cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskService.java
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.sirius.design/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskService.java
@@ -48,8 +48,8 @@
 
 	public List<Runnable> getRunnablesFromTask(final Task task) {
 		final List<Runnable> result = new ArrayList<>();
-		if (null != task && null != task.getCallGraph()) {
-			final TreeIterator<EObject> iter = EcoreUtil.getAllContents(task.getCallGraph().getItems());
+		if (null != task && null != task.getActivityGraph()) {
+			final TreeIterator<EObject> iter = EcoreUtil.getAllContents(task.getActivityGraph().getItems());
 			while (iter.hasNext()) {
 				final EObject item = iter.next();
 				if (item instanceof RunnableCall && null != ((RunnableCall) item).getRunnable()) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.editors.sirius/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.editors.sirius/META-INF/MANIFEST.MF
index 908ca32..3d4463e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.editors.sirius/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.editors.sirius/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Sirius
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.editors.sirius;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea.editors.sirius.Activator
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.amalthea.emf.util/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.emf.util/META-INF/MANIFEST.MF
index 20a00f1..da98a68 100644
--- a/plugins/org.eclipse.app4mc.amalthea.emf.util/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.emf.util/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea EMF Util
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.emf.util
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea.emf.util.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore,
diff --git a/plugins/org.eclipse.app4mc.amalthea.examples.installer/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.examples.installer/META-INF/MANIFEST.MF
index 3a2dd67..f19afe6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.examples.installer/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.examples.installer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Examples Installer
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.examples.installer;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.common.ui
diff --git a/plugins/org.eclipse.app4mc.amalthea.import.atdb/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.import.atdb/META-INF/MANIFEST.MF
index 3808c9b..6f5c816 100644
--- a/plugins/org.eclipse.app4mc.amalthea.import.atdb/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.import.atdb/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea ATDB Importer
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.import.atdb;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea._import.atdb.Activator
 Require-Bundle: org.sqlite.jdbc,
  org.eclipse.ui,
diff --git a/plugins/org.eclipse.app4mc.amalthea.import.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.import.help/META-INF/MANIFEST.MF
index 339a3b7..1dbe4b8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.import.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.import.help/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Import Help
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.import.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Require-Bundle: org.eclipse.help
 Bundle-Vendor: Eclipse APP4MC
diff --git a/plugins/org.eclipse.app4mc.amalthea.import.help/pom.xml b/plugins/org.eclipse.app4mc.amalthea.import.help/pom.xml
index 2e8b3de..270c4ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.import.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.import.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.amalthea.import.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.model.edit/META-INF/MANIFEST.MF
index 73faf4c..568a06a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.model.edit;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.app4mc.amalthea.model.provider.AmaltheaEditPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/CallGraph.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ActivityGraph.gif
similarity index 100%
rename from plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/CallGraph.gif
rename to plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ActivityGraph.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/InterfacePort.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ComponentPort.gif
similarity index 100%
rename from plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/InterfacePort.gif
rename to plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ComponentPort.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ComponentStructure.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ComponentStructure.gif
new file mode 100644
index 0000000..f5410df
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/ComponentStructure.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/InterfaceChannel.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/InterfaceChannel.gif
new file mode 100644
index 0000000..eb178e2
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/InterfaceChannel.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/MainInterface.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/MainInterface.gif
new file mode 100644
index 0000000..b16829d
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/MainInterface.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/Namespace.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/Namespace.gif
new file mode 100644
index 0000000..2869f9f
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/Namespace.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/SubInterface.gif b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/SubInterface.gif
new file mode 100644
index 0000000..f797712
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/icons/full/obj16/SubInterface.gif
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
index cedc37d..376d0dc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.properties
@@ -1,5 +1,5 @@
 # *******************************************************************************
-#  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+#  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
 # 
 #  This program and the accompanying materials are made
 #  available under the terms of the Eclipse Public License 2.0
@@ -53,6 +53,11 @@
 _UI_AccessPrecedenceType_enforceRW_literal = enforceRW
 _UI_AccessPrecedenceType_ignoreWR_literal = ignoreWR
 _UI_Activation_type = Activation
+_UI_ActivityGraphItem_containingActivityGraph_feature = Containing Activity Graph
+_UI_ActivityGraphItem_containingProcess_feature = Containing Process
+_UI_ActivityGraphItem_containingRunnable_feature = Containing Runnable
+_UI_ActivityGraphItem_type = Activity Graph Item
+_UI_ActivityGraph_type = Activity Graph
 _UI_AffinityConstraint_type = Affinity Constraint
 _UI_Algorithm_type = Algorithm
 _UI_Alias_alias_feature = Alias
@@ -88,6 +93,7 @@
 _UI_BaseObject_type = Base Object
 _UI_BaseTypeDefinition_aliases_feature = Aliases
 _UI_BaseTypeDefinition_type = Base Type Definition
+_UI_BasicPropertyCategory = Basic
 _UI_BigIntegerObject_type = Big Integer Object
 _UI_BigIntegerObject_value_feature = Value
 _UI_BlockingType__undefined__literal = <blocking>
@@ -128,13 +134,8 @@
 _UI_Cache_definition_feature = Definition
 _UI_Cache_type = Cache
 _UI_CallArgument_containingCall_feature = Containing Call
-_UI_CallArgument_dependsOn_feature = Depends On
 _UI_CallArgument_parameter_feature = Parameter
 _UI_CallArgument_type = Call Argument
-_UI_CallGraphItem_containingProcess_feature = Containing Process
-_UI_CallGraphItem_containingRunnable_feature = Containing Runnable
-_UI_CallGraphItem_type = Call Graph Item
-_UI_CallGraph_type = Call Graph
 _UI_ChainedProcessPrototype_apply_feature = Apply
 _UI_ChainedProcessPrototype_offset_feature = Offset
 _UI_ChainedProcessPrototype_prototype_feature = Prototype
@@ -165,7 +166,6 @@
 _UI_Classification_condition_feature = Condition
 _UI_Classification_grouping_feature = Grouping
 _UI_Classification_type = Classification
-_UI_Classifier_description_feature = Description
 _UI_Classifier_type = Classifier
 _UI_ClearEvent_counter_feature = Counter
 _UI_ClearEvent_eventMask_feature = Event Mask
@@ -188,6 +188,7 @@
 _UI_CoherencyDirection_output_literal = output
 _UI_CommonElements_coreClassifiers_feature = Core Classifiers
 _UI_CommonElements_memoryClassifiers_feature = Memory Classifiers
+_UI_CommonElements_namespaces_feature = Namespaces
 _UI_CommonElements_tags_feature = Tags
 _UI_CommonElements_type = Common Elements
 _UI_ComponentEventType__all__literal = _all_
@@ -196,18 +197,30 @@
 _UI_ComponentEvent_entity_feature = Entity
 _UI_ComponentEvent_eventType_feature = Event Type
 _UI_ComponentEvent_type = Component Event
+_UI_ComponentInstance_containingSystem_feature = Containing System
 _UI_ComponentInstance_type = Component Instance
 _UI_ComponentInstance_type_feature = Type
+_UI_ComponentInterface_datatype_feature = Datatype
+_UI_ComponentInterface_subInterfaces_feature = Sub Interfaces
+_UI_ComponentInterface_type = Component Interface
+_UI_ComponentPort_containingComponent_feature = Containing Component
+_UI_ComponentPort_interface_feature = Interface
+_UI_ComponentPort_kind_feature = Kind
+_UI_ComponentPort_type = Component Port
 _UI_ComponentScope_component_feature = Component
 _UI_ComponentScope_type = Component Scope
+_UI_ComponentStructure_memberObjects_feature = Member Objects
+_UI_ComponentStructure_structureType_feature = Structure Type
+_UI_ComponentStructure_subStructures_feature = Sub Structure
+_UI_ComponentStructure_type = Component Structure
 _UI_Component_labels_feature = Labels
 _UI_Component_osEvents_feature = OS Events
-_UI_Component_ports_feature = Ports
+_UI_Component_ports_feature = Port
 _UI_Component_runnables_feature = Runnables
 _UI_Component_semaphores_feature = Semaphores
 _UI_Component_tasks_feature = Tasks
 _UI_Component_type = Component
-_UI_ComponentsModel_components_feature = Components
+_UI_ComponentsModel_structures_feature = Structure
 _UI_ComponentsModel_systems_feature = Systems
 _UI_ComponentsModel_type = Components
 _UI_Composite_type = Composite
@@ -221,7 +234,7 @@
 _UI_Condition_excludes_literal = excludes
 _UI_Condition_requires_literal = requires
 _UI_ConfigModel_eventsToTrace_feature = Events To Trace
-_UI_ConfigModel_type = Configuration
+_UI_ConfigModel_type = Configurations
 _UI_ConnectionHandlerDefinition_dataRate_feature = Data Rate
 _UI_ConnectionHandlerDefinition_maxBurstSize_feature = Max Burst Size
 _UI_ConnectionHandlerDefinition_maxConcurrentTransfers_feature = Max Concurrent Transfers
@@ -232,6 +245,8 @@
 _UI_ConnectionHandler_definition_feature = Definition
 _UI_ConnectionHandler_internalConnections_feature = Internal Connections
 _UI_ConnectionHandler_type = Connection Handler
+_UI_Connector_containingSystem_feature = Containing System
+_UI_Connector_implementedInterfaces_feature = Implemented Interface
 _UI_Connector_sourcePort_feature = Source Port
 _UI_Connector_targetPort_feature = Target Port
 _UI_Connector_type = Connector
@@ -300,9 +315,9 @@
 _UI_CustomEvent_eventType_feature = Event Type
 _UI_CustomEvent_explicitTriggers_feature = Explicit Triggers
 _UI_CustomEvent_type = Custom Event
-_UI_CustomProperty_key_feature = Key
+_UI_CustomProperty_key_feature = Property Name (key)
 _UI_CustomProperty_type = Custom Property
-_UI_CustomProperty_value_feature = Value
+_UI_CustomProperty_value_feature = Property Value (value)
 _UI_CustomStimulus_type = Custom Stimulus
 _UI_DataAgeConstraint_dataAge_feature = Data Age
 _UI_DataAgeConstraint_label_feature = Label
@@ -719,18 +734,29 @@
 _UI_HwStructure_structureType_feature = Structure Type
 _UI_HwStructure_structures_feature = Structures
 _UI_HwStructure_type = Hw Structure
+_UI_IActivityGraphItemContainer_items_feature = Items
+_UI_IActivityGraphItemContainer_type = IActivity Graph Item Container
 _UI_IAnnotatable_customProperties_feature = Custom Properties
 _UI_IAnnotatable_type = IAnnotatable
-_UI_ICallGraphItemContainer_items_feature = Items
-_UI_ICallGraphItemContainer_type = ICall Graph Item Container
+_UI_IComponentContainer_components_feature = Components
+_UI_IComponentContainer_type = IComponent Container
+_UI_IComponentStructureMember_structure_feature = Structure
+_UI_IComponentStructureMember_type = IComponent Structure Member
 _UI_IContinuousValueDeviation_type = IContinuous Value Deviation
+_UI_IDependsOn_dependsOn_feature = Depends On
+_UI_IDependsOn_type = IDepends On
 _UI_IDescription_description_feature = Description
 _UI_IDescription_type = IDescription
 _UI_IDiscreteValueDeviation_type = IDiscrete Value Deviation
 _UI_IDisplayName_displayName_feature = Display Name
 _UI_IDisplayName_type = IDisplay Name
+_UI_IInterfaceContainer_interfaces_feature = Interface
+_UI_IInterfaceContainer_type = IInterface Container
 _UI_INamed_name_feature = Name
+_UI_INamed_qualifiedName_feature = Qualified Name
 _UI_INamed_type = INamed
+_UI_INamespaceMember_namespace_feature = Namespace
+_UI_INamespaceMember_type = INamespace Member
 _UI_IReferable_type = IReferable
 _UI_IReferable_uniqueName_feature = Unique Name
 _UI_ISRAllocation_controller_feature = Controller
@@ -744,12 +770,13 @@
 _UI_ISR_type = ISR
 _UI_ISystem_componentInstances_feature = Component Instances
 _UI_ISystem_connectors_feature = Connectors
-_UI_ISystem_groundedPorts_feature = Grounded Ports
+_UI_ISystem_groundedPorts_feature = Grounded Port
 _UI_ISystem_innerPorts_feature = Inner Ports
 _UI_ISystem_type = ISystem
 _UI_ITaggable_tags_feature = Tags
 _UI_ITaggable_type = ITaggable
 _UI_ITimeDeviation_type = ITime Deviation
+_UI_IncludedSWElementsPropertyCategory = Included SW Elements
 _UI_IntegerObject_type = Integer Object
 _UI_IntegerObject_value_feature = Value
 _UI_InterProcessStimulus_counter_feature = Counter
@@ -758,13 +785,13 @@
 _UI_InterProcessTrigger_counter_feature = Counter
 _UI_InterProcessTrigger_stimulus_feature = Inter Process Stimulus
 _UI_InterProcessTrigger_type = Inter Process Trigger
+_UI_InterfaceChannel_key_feature = Interface (key)
+_UI_InterfaceChannel_type = Interface Channel
+_UI_InterfaceChannel_value_feature = Channel (value)
 _UI_InterfaceKind__undefined__literal = <kind>
 _UI_InterfaceKind_provides_literal = PROVIDES
 _UI_InterfaceKind_provides_requires_literal = PROVIDES+REQUIRES
 _UI_InterfaceKind_requires_literal = REQUIRES
-_UI_InterfacePort_interfaceName_feature = Interface Name
-_UI_InterfacePort_kind_feature = Kind
-_UI_InterfacePort_type = Interface Port
 _UI_InterruptController_isrAllocations_feature = ISR Allocations
 _UI_InterruptController_schedulingAlgorithm_feature = Scheduling Algorithm
 _UI_InterruptController_type = Interrupt Controller
@@ -788,7 +815,6 @@
 _UI_LabelAccess_access_feature = Access
 _UI_LabelAccess_dataStability_feature = Data Stability
 _UI_LabelAccess_data_feature = Data
-_UI_LabelAccess_dependsOn_feature = Depends On
 _UI_LabelAccess_implementation_feature = Implementation
 _UI_LabelAccess_statistic_feature = Statistic
 _UI_LabelAccess_transmissionPolicy_feature = Transmission Policy
@@ -829,7 +855,8 @@
 _UI_ListObject_values_feature = Values
 _UI_LongObject_type = Long Object
 _UI_LongObject_value_feature = Value
-_UI_MainPropertyCategory = Main
+_UI_MainInterface_type = Main Interface
+_UI_MainInterface_version_feature = Version
 _UI_MappingModel_addressMappingType_feature = Address Mapping Type
 _UI_MappingModel_isrAllocation_feature = ISR Allocation
 _UI_MappingModel_memoryMapping_feature = Memory Mapping
@@ -837,7 +864,7 @@
 _UI_MappingModel_runnableAllocation_feature = Runnable Allocation
 _UI_MappingModel_schedulerAllocation_feature = Scheduler Allocation
 _UI_MappingModel_taskAllocation_feature = Task Allocation
-_UI_MappingModel_type = Mapping
+_UI_MappingModel_type = Mappings
 _UI_MappingType_OneToOne_literal = OneToOne
 _UI_MappingType_Reaction_literal = Reaction
 _UI_MappingType_UniqueReaction_literal = UniqueReaction
@@ -897,6 +924,9 @@
 _UI_ModeLabelAccess_step_feature = Step
 _UI_ModeLabelAccess_type = Mode Label Access
 _UI_ModeLabelAccess_value_feature = Value
+_UI_ModeLabelCondition_label1_feature = Label1
+_UI_ModeLabelCondition_label2_feature = Label2
+_UI_ModeLabelCondition_type = Mode Label Condition
 _UI_ModeLabel_initialValue_feature = Initial Value
 _UI_ModeLabel_mode_feature = Mode
 _UI_ModeLabel_type = Mode Label
@@ -908,18 +938,23 @@
 _UI_ModeSwitch_defaultEntry_feature = Default Entry
 _UI_ModeSwitch_entries_feature = Entries
 _UI_ModeSwitch_type = <> Mode Switch
+_UI_ModeValueCondition_type = Mode Value Condition
 _UI_ModeValueList_entries_feature = Entries
 _UI_ModeValueList_type = Mode Value List
-_UI_ModeValueMapEntry_key_feature = Key
+_UI_ModeValueMapEntry_key_feature = Mode Label (key)
 _UI_ModeValueMapEntry_type = Mode Value Map Entry
-_UI_ModeValueMapEntry_value_feature = Value
+_UI_ModeValueMapEntry_value_feature = String (value)
 _UI_ModeValue_label_feature = Label
 _UI_ModeValue_type = Mode Value
 _UI_ModeValue_value_feature = Value
 _UI_Mode_type = Mode
-_UI_NeedEntry_key_feature = Key
+_UI_Namespace_memberObjects_feature = Member Objects
+_UI_Namespace_nextSegments_feature = Next Segment
+_UI_Namespace_previousSegment_feature = Previous Segment
+_UI_Namespace_type = Namespace
+_UI_NeedEntry_key_feature = Name of HwFeatureCategory (key)
 _UI_NeedEntry_type = Need Entry
-_UI_NeedEntry_value_feature = Value
+_UI_NeedEntry_value_feature = Deviation (value)
 _UI_NonAtomicDataCoherency_accessMultiplicity_feature = Access Multiplicity
 _UI_NonAtomicDataCoherency_algorithm_feature = Algorithm
 _UI_NonAtomicDataCoherency_enabled_feature = Enabled
@@ -983,9 +1018,9 @@
 _UI_OsOverhead_isrCategory2Overhead_feature = ISR Category2 Overhead
 _UI_OsOverhead_type = OS Overhead
 _UI_PairingConstraint_type = Pairing Constraint
-_UI_ParameterExtension_key_feature = Key
+_UI_ParameterExtension_key_feature = Parameter Name (key)
 _UI_ParameterExtension_type = Parameter Extension
-_UI_ParameterExtension_value_feature = Value
+_UI_ParameterExtension_value_feature = Parameter Value (value)
 _UI_PartlyEarlyReleaseFairPD2_type = Partly Early Release Fair PD2
 _UI_PartlyPFairPD2_type = Partly PFair PD2
 _UI_PercentageMetric_CacheHitRatio_literal = CacheHitRatio
@@ -1045,8 +1080,6 @@
 _UI_PortType__undefined__literal = <port type>
 _UI_PortType_initiator_literal = initiator
 _UI_PortType_responder_literal = responder
-_UI_Port_containingComponent_feature = Containing Component
-_UI_Port_type = Port
 _UI_PowerDomain_defaultValue_feature = Default Value
 _UI_PowerDomain_powerGating_feature = Power Gating
 _UI_PowerDomain_type = Power Domain
@@ -1113,7 +1146,7 @@
 _UI_ProcessScope_type = Process Scope
 _UI_ProcessSeparationConstraint_groups_feature = Groups
 _UI_ProcessSeparationConstraint_type = Process Separation Constraint
-_UI_Process_callGraph_feature = Call Graph
+_UI_Process_activityGraph_feature = Activity Graph
 _UI_Process_stimuli_feature = Stimuli
 _UI_Process_type = Process
 _UI_ProcessingUnitDefinition_classifiers_feature = Classifiers
@@ -1206,7 +1239,6 @@
 _UI_RunnablePairingConstraint_type = Runnable Pairing Constraint
 _UI_RunnableParameter_containingRunnable_feature = Containing Runnable
 _UI_RunnableParameter_dataType_feature = Data Type
-_UI_RunnableParameter_dependsOn_feature = Depends On
 _UI_RunnableParameter_direction_feature = Direction
 _UI_RunnableParameter_type = Runnable Parameter
 _UI_RunnableRequirement_runnable_feature = Runnable
@@ -1220,8 +1252,8 @@
 _UI_RunnableSequencingConstraint_runnableGroups_feature = Runnable Groups
 _UI_RunnableSequencingConstraint_type = Runnable Sequencing Constraint
 _UI_Runnable_activations_feature = Activations
+_UI_Runnable_activityGraph_feature = Activity Graph
 _UI_Runnable_asilLevel_feature = ASIL Level
-_UI_Runnable_callGraph_feature = Call Graph
 _UI_Runnable_callback_feature = Callback
 _UI_Runnable_executionCondition_feature = Execution Condition
 _UI_Runnable_parameters_feature = Runnable Parameters
@@ -1233,7 +1265,7 @@
 _UI_SWModel_activations_feature = Activations
 _UI_SWModel_channels_feature = Channels
 _UI_SWModel_customEntities_feature = Custom Entities
-_UI_SWModel_events_feature = Events
+_UI_SWModel_events_feature = OS Event
 _UI_SWModel_isrs_feature = Isrs
 _UI_SWModel_labels_feature = Labels
 _UI_SWModel_modeLabels_feature = Mode Labels
@@ -1366,6 +1398,8 @@
 _UI_StructureType_System_literal = System
 _UI_StructureType__undefined__literal = <structure type>
 _UI_SubEventChain_type = Sub Event Chain
+_UI_SubInterface_containingInterface_feature = Containing Interface
+_UI_SubInterface_type = Sub Interface
 _UI_SynchronizationConstraint_multipleOccurrencesAllowed_feature = Multiple Occurrences Allowed
 _UI_SynchronizationConstraint_tolerance_feature = Tolerance
 _UI_SynchronizationConstraint_type = Synchronization Constraint
@@ -1407,9 +1441,9 @@
 _UI_Task_type = Task
 _UI_TerminateProcess_counter_feature = Counter
 _UI_TerminateProcess_type = Terminate Process
-_UI_TicksEntry_key_feature = Key
+_UI_TicksEntry_key_feature = Definition of ProcessingUnit (key)
 _UI_TicksEntry_type = Ticks Entry
-_UI_TicksEntry_value_feature = Value
+_UI_TicksEntry_value_feature = Deviation (value)
 _UI_Ticks_default_feature = Default
 _UI_Ticks_extended_feature = Extended
 _UI_Ticks_type = Ticks
@@ -1492,7 +1526,6 @@
 _UI_UserSpecificSchedulingAlgorithm_parameterExtensions_feature = Parameter Extensions
 _UI_UserSpecificSchedulingAlgorithm_type = User Specific Scheduling Algorithm
 _UI_Value_type = Value
-_UI_VariableRateActivation_description_feature = Description
 _UI_VariableRateActivation_occurrencesPerStep_feature = Occurrences Per Step
 _UI_VariableRateActivation_step_feature = Step
 _UI_VariableRateActivation_type = Variable Rate Activation
@@ -1528,7 +1561,4 @@
 _UI_WriteStrategy_none_literal = none
 _UI_WriteStrategy_writeback_literal = writeback
 _UI_WriteStrategy_writethrough_literal = writethrough
-_UI_ModeValueCondition_type = Mode Value Condition
-_UI_ModeLabelCondition_type = Mode Label Condition
-_UI_ModeLabelCondition_label1_feature = Label1
-_UI_ModeLabelCondition_label2_feature = Label2
+_UI_Component_processes_feature = Processes
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.xml b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.xml
index 43371a7..32914ae 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/plugin.xml
@@ -19,7 +19,7 @@
    <extension point="org.eclipse.emf.edit.itemProviderAdapterFactories">
       <!-- @generated amalthea -->
       <factory
-            uri="http://app4mc.eclipse.org/amalthea/0.9.6"
+            uri="http://app4mc.eclipse.org/amalthea/0.9.7"
             class="org.eclipse.app4mc.amalthea.model.provider.AmaltheaItemProviderAdapterFactory"
             supportedTypes=
               "org.eclipse.emf.edit.provider.IEditingDomainItemProvider
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AbstractEventChainItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AbstractEventChainItemProvider.java
index f28c23e..f4c94c5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AbstractEventChainItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AbstractEventChainItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addStimulusPropertyDescriptor(object);
 			addResponsePropertyDescriptor(object);
 			addItemTypePropertyDescriptor(object);
@@ -87,7 +88,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -247,6 +270,7 @@
 
 		switch (notification.getFeatureID(AbstractEventChain.class)) {
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__NAME:
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME:
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__ITEM_TYPE:
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__MIN_ITEMS_COMPLETED:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemItemProvider.java
similarity index 68%
rename from plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemItemProvider.java
index 5abf4f7..a314a16 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemItemProvider.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -27,19 +27,19 @@
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.CallGraphItem} object.
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class CallGraphItemItemProvider extends BaseObjectItemProvider {
+public class ActivityGraphItemItemProvider extends BaseObjectItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public CallGraphItemItemProvider(AdapterFactory adapterFactory) {
+	public ActivityGraphItemItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -56,6 +56,7 @@
 
 			addContainingProcessPropertyDescriptor(object);
 			addContainingRunnablePropertyDescriptor(object);
+			addContainingActivityGraphPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -71,9 +72,9 @@
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_CallGraphItem_containingProcess_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CallGraphItem_containingProcess_feature", "_UI_CallGraphItem_type"),
-				 AmaltheaPackage.eINSTANCE.getCallGraphItem_ContainingProcess(),
+				 getString("_UI_ActivityGraphItem_containingProcess_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ActivityGraphItem_containingProcess_feature", "_UI_ActivityGraphItem_type"),
+				 AmaltheaPackage.eINSTANCE.getActivityGraphItem_ContainingProcess(),
 				 false,
 				 false,
 				 false,
@@ -95,9 +96,33 @@
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_CallGraphItem_containingRunnable_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CallGraphItem_containingRunnable_feature", "_UI_CallGraphItem_type"),
-				 AmaltheaPackage.eINSTANCE.getCallGraphItem_ContainingRunnable(),
+				 getString("_UI_ActivityGraphItem_containingRunnable_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ActivityGraphItem_containingRunnable_feature", "_UI_ActivityGraphItem_type"),
+				 AmaltheaPackage.eINSTANCE.getActivityGraphItem_ContainingRunnable(),
+				 false,
+				 false,
+				 false,
+				 null,
+				 getString("_UI_ReadonlyPropertyCategory"),
+				 new String[] {
+					"org.eclipse.ui.views.properties.expert"
+				 }));
+	}
+
+	/**
+	 * This adds a property descriptor for the Containing Activity Graph feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addContainingActivityGraphPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ActivityGraphItem_containingActivityGraph_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ActivityGraphItem_containingActivityGraph_feature", "_UI_ActivityGraphItem_type"),
+				 AmaltheaPackage.eINSTANCE.getActivityGraphItem_ContainingActivityGraph(),
 				 false,
 				 false,
 				 false,
@@ -126,7 +151,7 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_CallGraphItem_type");
+		return getString("_UI_ActivityGraphItem_type");
 	}
 
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemProvider.java
similarity index 74%
rename from plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemProvider.java
index 4b96926..a829299 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ActivityGraphItemProvider.java
@@ -1,15 +1,15 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
  *  which is available at https://www.eclipse.org/legal/epl-2.0/
  * 
  *  SPDX-License-Identifier: EPL-2.0
- *
+ * 
  *     Generated using Eclipse EMF
- *
+ * 
  * *******************************************************************************
  */
 package org.eclipse.app4mc.amalthea.model.provider;
@@ -18,9 +18,9 @@
 import java.util.Collection;
 import java.util.List;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
@@ -31,19 +31,19 @@
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.CallGraph} object.
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ActivityGraph} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class CallGraphItemProvider extends BaseObjectItemProvider {
+public class ActivityGraphItemProvider extends BaseObjectItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public CallGraphItemProvider(AdapterFactory adapterFactory) {
+	public ActivityGraphItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -74,7 +74,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items());
 		}
 		return childrenFeatures;
 	}
@@ -93,14 +93,14 @@
 	}
 
 	/**
-	 * This returns CallGraph.gif.
+	 * This returns ActivityGraph.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/CallGraph"));
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ActivityGraph"));
 	}
 
 	/**
@@ -121,9 +121,9 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_CallGraph_type");
+		return getString("_UI_ActivityGraph_type");
 	}
-	
+
 
 	/**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
@@ -136,8 +136,8 @@
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(CallGraph.class)) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+		switch (notification.getFeatureID(ActivityGraph.class)) {
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -157,122 +157,122 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeSwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createProbabilitySwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createWaitEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSetEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createClearEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createInterProcessTrigger()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createEnforcedMigration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSchedulePoint()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTerminateProcess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createExecutionNeed()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTicks()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelSend()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelReceive()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSemaphoreAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverRead()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverWrite()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createAsynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGetResultServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createRunnableCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createCustomEventTrigger()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AmaltheaItemProviderAdapterFactory.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AmaltheaItemProviderAdapterFactory.java
index 3835a3b..087425f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AmaltheaItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/AmaltheaItemProviderAdapterFactory.java
@@ -153,6 +153,29 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.Namespace} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NamespaceItemProvider namespaceItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.Namespace}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createNamespaceAdapter() {
+		if (namespaceItemProvider == null) {
+			namespaceItemProvider = new NamespaceItemProvider(this);
+		}
+
+		return namespaceItemProvider;
+	}
+
+	/**
 	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.CoreClassifier} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1326,6 +1349,98 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.MainInterface} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MainInterfaceItemProvider mainInterfaceItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.MainInterface}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createMainInterfaceAdapter() {
+		if (mainInterfaceItemProvider == null) {
+			mainInterfaceItemProvider = new MainInterfaceItemProvider(this);
+		}
+
+		return mainInterfaceItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.SubInterface} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SubInterfaceItemProvider subInterfaceItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.SubInterface}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createSubInterfaceAdapter() {
+		if (subInterfaceItemProvider == null) {
+			subInterfaceItemProvider = new SubInterfaceItemProvider(this);
+		}
+
+		return subInterfaceItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.ComponentPort} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComponentPortItemProvider componentPortItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentPort}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createComponentPortAdapter() {
+		if (componentPortItemProvider == null) {
+			componentPortItemProvider = new ComponentPortItemProvider(this);
+		}
+
+		return componentPortItemProvider;
+	}
+
+	/**
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.ComponentStructure} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComponentStructureItemProvider componentStructureItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentStructure}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createComponentStructureAdapter() {
+		if (componentStructureItemProvider == null) {
+			componentStructureItemProvider = new ComponentStructureItemProvider(this);
+		}
+
+		return componentStructureItemProvider;
+	}
+
+	/**
 	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.Component} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1441,6 +1556,29 @@
 	}
 
 	/**
+	 * This keeps track of the one adapter used for all {@link java.util.Map.Entry} instances.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected InterfaceChannelItemProvider interfaceChannelItemProvider;
+
+	/**
+	 * This creates an adapter for a {@link java.util.Map.Entry}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Adapter createInterfaceChannelAdapter() {
+		if (interfaceChannelItemProvider == null) {
+			interfaceChannelItemProvider = new InterfaceChannelItemProvider(this);
+		}
+
+		return interfaceChannelItemProvider;
+	}
+
+	/**
 	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.QualifiedPort} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1464,29 +1602,6 @@
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.InterfacePort} instances.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected InterfacePortItemProvider interfacePortItemProvider;
-
-	/**
-	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.InterfacePort}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Adapter createInterfacePortAdapter() {
-		if (interfacePortItemProvider == null) {
-			interfacePortItemProvider = new InterfacePortItemProvider(this);
-		}
-
-		return interfacePortItemProvider;
-	}
-
-	/**
 	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.ConfigModel} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -4891,26 +5006,26 @@
 	}
 
 	/**
-	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.CallGraph} instances.
+	 * This keeps track of the one adapter used for all {@link org.eclipse.app4mc.amalthea.model.ActivityGraph} instances.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected CallGraphItemProvider callGraphItemProvider;
+	protected ActivityGraphItemProvider activityGraphItemProvider;
 
 	/**
-	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.CallGraph}.
+	 * This creates an adapter for a {@link org.eclipse.app4mc.amalthea.model.ActivityGraph}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
-	public Adapter createCallGraphAdapter() {
-		if (callGraphItemProvider == null) {
-			callGraphItemProvider = new CallGraphItemProvider(this);
+	public Adapter createActivityGraphAdapter() {
+		if (activityGraphItemProvider == null) {
+			activityGraphItemProvider = new ActivityGraphItemProvider(this);
 		}
 
-		return callGraphItemProvider;
+		return activityGraphItemProvider;
 	}
 
 	/**
@@ -6539,6 +6654,7 @@
 		if (amaltheaItemProvider != null) amaltheaItemProvider.dispose();
 		if (commonElementsItemProvider != null) commonElementsItemProvider.dispose();
 		if (tagItemProvider != null) tagItemProvider.dispose();
+		if (namespaceItemProvider != null) namespaceItemProvider.dispose();
 		if (coreClassifierItemProvider != null) coreClassifierItemProvider.dispose();
 		if (memoryClassifierItemProvider != null) memoryClassifierItemProvider.dispose();
 		if (transmissionPolicyItemProvider != null) transmissionPolicyItemProvider.dispose();
@@ -6590,13 +6706,17 @@
 		if (enumModeItemProvider != null) enumModeItemProvider.dispose();
 		if (modeLiteralItemProvider != null) modeLiteralItemProvider.dispose();
 		if (componentsModelItemProvider != null) componentsModelItemProvider.dispose();
+		if (mainInterfaceItemProvider != null) mainInterfaceItemProvider.dispose();
+		if (subInterfaceItemProvider != null) subInterfaceItemProvider.dispose();
+		if (componentPortItemProvider != null) componentPortItemProvider.dispose();
+		if (componentStructureItemProvider != null) componentStructureItemProvider.dispose();
 		if (componentItemProvider != null) componentItemProvider.dispose();
 		if (compositeItemProvider != null) compositeItemProvider.dispose();
 		if (systemItemProvider != null) systemItemProvider.dispose();
 		if (componentInstanceItemProvider != null) componentInstanceItemProvider.dispose();
 		if (connectorItemProvider != null) connectorItemProvider.dispose();
+		if (interfaceChannelItemProvider != null) interfaceChannelItemProvider.dispose();
 		if (qualifiedPortItemProvider != null) qualifiedPortItemProvider.dispose();
-		if (interfacePortItemProvider != null) interfacePortItemProvider.dispose();
 		if (configModelItemProvider != null) configModelItemProvider.dispose();
 		if (eventConfigItemProvider != null) eventConfigItemProvider.dispose();
 		if (constraintsModelItemProvider != null) constraintsModelItemProvider.dispose();
@@ -6745,7 +6865,7 @@
 		if (swModelItemProvider != null) swModelItemProvider.dispose();
 		if (customEntityItemProvider != null) customEntityItemProvider.dispose();
 		if (processChainItemProvider != null) processChainItemProvider.dispose();
-		if (callGraphItemProvider != null) callGraphItemProvider.dispose();
+		if (activityGraphItemProvider != null) activityGraphItemProvider.dispose();
 		if (modeSwitchItemProvider != null) modeSwitchItemProvider.dispose();
 		if (modeSwitchEntryItemProvider != null) modeSwitchEntryItemProvider.dispose();
 		if (modeSwitchDefaultItemProvider != null) modeSwitchDefaultItemProvider.dispose();
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/BaseTypeDefinitionItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/BaseTypeDefinitionItemProvider.java
index 08955db..d1c5f37 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/BaseTypeDefinitionItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/BaseTypeDefinitionItemProvider.java
@@ -111,7 +111,7 @@
 	 * @generated
 	 */
 	public String getTextGen(Object object) {
-		String label = ((BaseTypeDefinition)object).getName();
+		String label = ((BaseTypeDefinition)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_BaseTypeDefinition_type") :
 			getString("_UI_BaseTypeDefinition_type") + " " + label;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallArgumentItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallArgumentItemProvider.java
index 526f784..5bdae2b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallArgumentItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallArgumentItemProvider.java
@@ -103,7 +103,7 @@
 				 false,
 				 true,
 				 null,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
 				 null));
 	}
 
@@ -145,7 +145,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getCallArgument_DependsOn());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn());
 		}
 		return childrenFeatures;
 	}
@@ -254,7 +254,7 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getCallArgument_DependsOn(),
+				(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn(),
 				 AmaltheaFactory.eINSTANCE.createDataDependency()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelAccessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelAccessItemProvider.java
index fbe6d64..21803fa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelAccessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelAccessItemProvider.java
@@ -38,7 +38,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class ChannelAccessItemProvider extends CallGraphItemItemProvider {
+public class ChannelAccessItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelItemProvider.java
index 4788b10..e9da749 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ChannelItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addDisplayNamePropertyDescriptor(object);
+			addNamespacePropertyDescriptor(object);
 			addDefaultElementsPropertyDescriptor(object);
 			addMaxElementsPropertyDescriptor(object);
 			addChannelAccessesPropertyDescriptor(object);
@@ -91,6 +92,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Default Elements feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -217,7 +240,7 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((Channel)object).getName();
+		String label = ((Channel)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Channel_type") :
 			getString("_UI_Channel_type") + " " + label;
@@ -237,6 +260,7 @@
 
 		switch (notification.getFeatureID(Channel.class)) {
 			case AmaltheaPackage.CHANNEL__DISPLAY_NAME:
+			case AmaltheaPackage.CHANNEL__NAMESPACE:
 			case AmaltheaPackage.CHANNEL__DEFAULT_ELEMENTS:
 			case AmaltheaPackage.CHANNEL__MAX_ELEMENTS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ClearEventItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ClearEventItemProvider.java
index bae67e7..d6743b8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ClearEventItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ClearEventItemProvider.java
@@ -33,7 +33,7 @@
  * 
  * @generated
  */
-public class ClearEventItemProvider extends CallGraphItemItemProvider {
+public class ClearEventItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CommonElementsItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CommonElementsItemProvider.java
index f3e8e1f..38d20e5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CommonElementsItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CommonElementsItemProvider.java
@@ -75,6 +75,7 @@
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getCommonElements_Tags());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getCommonElements_Namespaces());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getCommonElements_CoreClassifiers());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getCommonElements_MemoryClassifiers());
 		}
@@ -140,6 +141,7 @@
 
 		switch (notification.getFeatureID(CommonElements.class)) {
 			case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 			case AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
@@ -166,6 +168,11 @@
 
 		newChildDescriptors.add
 			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getCommonElements_Namespaces(),
+				 AmaltheaFactory.eINSTANCE.createNamespace()));
+
+		newChildDescriptors.add
+			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getCommonElements_CoreClassifiers(),
 				 AmaltheaFactory.eINSTANCE.createCoreClassifier()));
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInstanceItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInstanceItemProvider.java
index b368d8e..7a0dd52 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInstanceItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInstanceItemProvider.java
@@ -53,6 +53,7 @@
 			super.getPropertyDescriptors(object);
 
 			addTagsPropertyDescriptor(object);
+			addContainingSystemPropertyDescriptor(object);
 			addTypePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -80,6 +81,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Containing System feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addContainingSystemPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentInstance_containingSystem_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentInstance_containingSystem_feature", "_UI_ComponentInstance_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentInstance_ContainingSystem(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Type feature.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
 	 * @generated
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInterfaceItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInterfaceItemProvider.java
new file mode 100644
index 0000000..fdc6308
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentInterfaceItemProvider.java
@@ -0,0 +1,203 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentInterface} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComponentInterfaceItemProvider extends ReferableBaseObjectItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentInterfaceItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addTagsPropertyDescriptor(object);
+			addDatatypePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Tags feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addTagsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ITaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ITaggable_tags_feature", "_UI_ITaggable_type"),
+				 AmaltheaPackage.eINSTANCE.getITaggable_Tags(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Datatype feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addDatatypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentInterface_datatype_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentInterface_datatype_feature", "_UI_ComponentInterface_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentInterface_Datatype(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getComponentInterface_SubInterfaces());
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((ComponentInterface)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ComponentInterface_type") :
+			getString("_UI_ComponentInterface_type") + " " + label;
+	}
+
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void notifyChanged(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ComponentInterface.class)) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getComponentInterface_SubInterfaces(),
+				 AmaltheaFactory.eINSTANCE.createSubInterface()));
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentItemProvider.java
index daa92f3..48e2492 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentItemProvider.java
@@ -60,7 +60,9 @@
 			super.getPropertyDescriptors(object);
 
 			addTagsPropertyDescriptor(object);
-			addTasksPropertyDescriptor(object);
+			addNamespacePropertyDescriptor(object);
+			addStructurePropertyDescriptor(object);
+			addProcessesPropertyDescriptor(object);
 			addRunnablesPropertyDescriptor(object);
 			addLabelsPropertyDescriptor(object);
 			addSemaphoresPropertyDescriptor(object);
@@ -92,19 +94,41 @@
 	}
 
 	/**
-	 * This adds a property descriptor for the Tasks feature.
+	 * This adds a property descriptor for the Namespace feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addTasksPropertyDescriptor(Object object) {
+	protected void addNamespacePropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_Component_tasks_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_Component_tasks_feature", "_UI_Component_type"),
-				 AmaltheaPackage.eINSTANCE.getComponent_Tasks(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Structure feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStructurePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IComponentStructureMember_structure_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_IComponentStructureMember_structure_feature", "_UI_IComponentStructureMember_type"),
+				 AmaltheaPackage.eINSTANCE.getIComponentStructureMember_Structure(),
 				 true,
 				 false,
 				 true,
@@ -114,6 +138,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Processes feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addProcessesPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Component_processes_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Component_processes_feature", "_UI_Component_type"),
+				 AmaltheaPackage.eINSTANCE.getComponent_Processes(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_IncludedSWElementsPropertyCategory"),
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Runnables feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -131,7 +177,7 @@
 				 false,
 				 true,
 				 null,
-				 null,
+				 getString("_UI_IncludedSWElementsPropertyCategory"),
 				 null));
 	}
 
@@ -153,7 +199,7 @@
 				 false,
 				 true,
 				 null,
-				 null,
+				 getString("_UI_IncludedSWElementsPropertyCategory"),
 				 null));
 	}
 
@@ -175,7 +221,7 @@
 				 false,
 				 true,
 				 null,
-				 null,
+				 getString("_UI_IncludedSWElementsPropertyCategory"),
 				 null));
 	}
 
@@ -197,7 +243,7 @@
 				 false,
 				 true,
 				 null,
-				 null,
+				 getString("_UI_IncludedSWElementsPropertyCategory"),
 				 null));
 	}
 
@@ -258,14 +304,21 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public String getText(Object object) {
-		String label = ((Component)object).getName();
+	public String getTextGen(Object object) {
+		String label = ((Component)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Component_type") :
 			getString("_UI_Component_type") + " " + label;
 	}
-	
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(final Object object) {
+		// delegate to custom item provider
+		return CustomItemProviderService.getComponentItemProviderText(object, getTextGen(object));
+	}
 
 	/**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
@@ -279,6 +332,9 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(Component.class)) {
+			case AmaltheaPackage.COMPONENT__NAMESPACE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
 			case AmaltheaPackage.COMPONENT__PORTS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
@@ -300,7 +356,7 @@
 		newChildDescriptors.add
 			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getComponent_Ports(),
-				 AmaltheaFactory.eINSTANCE.createInterfacePort()));
+				 AmaltheaFactory.eINSTANCE.createComponentPort()));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfacePortItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentPortItemProvider.java
similarity index 60%
rename from plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfacePortItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentPortItemProvider.java
index 125e94a..c865427 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfacePortItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentPortItemProvider.java
@@ -1,15 +1,15 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
  *  which is available at https://www.eclipse.org/legal/epl-2.0/
  * 
  *  SPDX-License-Identifier: EPL-2.0
- *
+ * 
  *     Generated using Eclipse EMF
- *
+ * 
  * *******************************************************************************
  */
 package org.eclipse.app4mc.amalthea.model.provider;
@@ -19,7 +19,7 @@
 import java.util.List;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
@@ -30,19 +30,19 @@
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.InterfacePort} object.
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentPort} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class InterfacePortItemProvider extends PortItemProvider {
+public class ComponentPortItemProvider extends ReferableBaseObjectItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public InterfacePortItemProvider(AdapterFactory adapterFactory) {
+	public ComponentPortItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -57,31 +57,55 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addInterfaceNamePropertyDescriptor(object);
+			addTagsPropertyDescriptor(object);
+			addContainingComponentPropertyDescriptor(object);
 			addKindPropertyDescriptor(object);
+			addInterfacePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Interface Name feature.
+	 * This adds a property descriptor for the Tags feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInterfaceNamePropertyDescriptor(Object object) {
+	protected void addTagsPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_InterfacePort_interfaceName_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_InterfacePort_interfaceName_feature", "_UI_InterfacePort_type"),
-				 AmaltheaPackage.eINSTANCE.getInterfacePort_InterfaceName(),
+				 getString("_UI_ITaggable_tags_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ITaggable_tags_feature", "_UI_ITaggable_type"),
+				 AmaltheaPackage.eINSTANCE.getITaggable_Tags(),
 				 true,
 				 false,
-				 false,
-				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 true,
 				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Containing Component feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addContainingComponentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentPort_containingComponent_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentPort_containingComponent_feature", "_UI_ComponentPort_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentPort_ContainingComponent(),
+				 false,
+				 false,
+				 false,
+				 null,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -96,9 +120,9 @@
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_InterfacePort_kind_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_InterfacePort_kind_feature", "_UI_InterfacePort_type"),
-				 AmaltheaPackage.eINSTANCE.getInterfacePort_Kind(),
+				 getString("_UI_ComponentPort_kind_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentPort_kind_feature", "_UI_ComponentPort_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentPort_Kind(),
 				 true,
 				 false,
 				 false,
@@ -108,14 +132,36 @@
 	}
 
 	/**
-	 * This returns InterfacePort.gif.
+	 * This adds a property descriptor for the Interface feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addInterfacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentPort_interface_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentPort_interface_feature", "_UI_ComponentPort_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentPort_Interface(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns ComponentPort.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
 	public Object getImage(Object object) {
-		return overlayImage(object, getResourceLocator().getImage("full/obj16/InterfacePort"));
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ComponentPort"));
 	}
 
 	/**
@@ -135,10 +181,10 @@
 	 * @generated
 	 */
 	public String getTextGen(Object object) {
-		String label = ((InterfacePort)object).getName();
+		String label = ((ComponentPort)object).getName();
 		return label == null || label.length() == 0 ?
-			getString("_UI_InterfacePort_type") :
-			getString("_UI_InterfacePort_type") + " " + label;
+			getString("_UI_ComponentPort_type") :
+			getString("_UI_ComponentPort_type") + " " + label;
 	}
 
 	/**
@@ -150,7 +196,7 @@
 	@Override
 	public String getText(Object object) {
 		// delegate to custom item provider
-		return CustomItemProviderService.getInterfacePortItemProviderText(object, getTextGen(object));
+		return CustomItemProviderService.getComponentPortItemProviderText(object, getTextGen(object));
 	}
 
 	/**
@@ -164,9 +210,8 @@
 	public void notifyChanged(Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(InterfacePort.class)) {
-			case AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME:
-			case AmaltheaPackage.INTERFACE_PORT__KIND:
+		switch (notification.getFeatureID(ComponentPort.class)) {
+			case AmaltheaPackage.COMPONENT_PORT__KIND:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentStructureItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentStructureItemProvider.java
new file mode 100644
index 0000000..f6a76ec
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentStructureItemProvider.java
@@ -0,0 +1,243 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentStructure} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class ComponentStructureItemProvider 
+	extends ReferableObjectItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentStructureItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addStructureTypePropertyDescriptor(object);
+			addMemberObjectsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Structure Type feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStructureTypePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentStructure_structureType_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentStructure_structureType_feature", "_UI_ComponentStructure_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentStructure_StructureType(),
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Member Objects feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMemberObjectsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_ComponentStructure_memberObjects_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_ComponentStructure_memberObjects_feature", "_UI_ComponentStructure_type"),
+				 AmaltheaPackage.eINSTANCE.getComponentStructure_MemberObjects(),
+				 false,
+				 false,
+				 false,
+				 null,
+				 getString("_UI_ReadonlyPropertyCategory"),
+				 new String[] {
+					"org.eclipse.ui.views.properties.expert"
+				 }));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getComponentStructure_SubStructures());
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns ComponentStructure.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/ComponentStructure"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTextGen(Object object) {
+		String label = ((ComponentStructure)object).getQualifiedName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_ComponentStructure_type") :
+			getString("_UI_ComponentStructure_type") + " " + label;
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(final Object object) {
+		// delegate to custom item provider
+		return CustomItemProviderService.getComponentStructureItemProviderText(object, getTextGen(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChangedGen(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ComponentStructure.class)) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService
+				.getComponentStructureItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getComponentStructure_SubStructures(),
+				 AmaltheaFactory.eINSTANCE.createComponentStructure()));
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentsModelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentsModelItemProvider.java
index c5dcbe0..09d1241 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentsModelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComponentsModelItemProvider.java
@@ -74,7 +74,9 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getComponentsModel_Components());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIComponentContainer_Components());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIInterfaceContainer_Interfaces());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getComponentsModel_Structures());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getComponentsModel_Systems());
 		}
 		return childrenFeatures;
@@ -139,6 +141,8 @@
 
 		switch (notification.getFeatureID(ComponentsModel.class)) {
 			case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
@@ -159,16 +163,26 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getComponentsModel_Components(),
+				(AmaltheaPackage.eINSTANCE.getIComponentContainer_Components(),
 				 AmaltheaFactory.eINSTANCE.createComponent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getComponentsModel_Components(),
+				(AmaltheaPackage.eINSTANCE.getIComponentContainer_Components(),
 				 AmaltheaFactory.eINSTANCE.createComposite()));
 
 		newChildDescriptors.add
 			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getIInterfaceContainer_Interfaces(),
+				 AmaltheaFactory.eINSTANCE.createMainInterface()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getComponentsModel_Structures(),
+				 AmaltheaFactory.eINSTANCE.createComponentStructure()));
+
+		newChildDescriptors.add
+			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getComponentsModel_Systems(),
 				 AmaltheaFactory.eINSTANCE.createSystem()));
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CompositeItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CompositeItemProvider.java
index 400cadc..0a9c74d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CompositeItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CompositeItemProvider.java
@@ -147,14 +147,21 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public String getText(Object object) {
+	public String getTextGen(Object object) {
 		String label = ((Composite)object).getName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Composite_type") :
 			getString("_UI_Composite_type") + " " + label;
 	}
-	
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(final Object object) {
+		// delegate to custom item provider
+		return CustomItemProviderService.getCompositeItemProviderText(object, getTextGen(object));
+	}
 
 	/**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
@@ -163,8 +170,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public void notifyChanged(Notification notification) {
+	public void notifyChangedGen(Notification notification) {
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(Composite.class)) {
@@ -178,6 +184,23 @@
 	}
 
 	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService.getCompositeItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+
+		super.notifyChanged(notification);
+	}
+
+	/**
 	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComputationItemItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComputationItemItemProvider.java
index d136006..62d91e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComputationItemItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ComputationItemItemProvider.java
@@ -29,7 +29,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class ComputationItemItemProvider extends CallGraphItemItemProvider {
+public class ComputationItemItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ConnectorItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ConnectorItemProvider.java
index 4655108..2c5a4f7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ConnectorItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ConnectorItemProvider.java
@@ -56,7 +56,9 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addTagsPropertyDescriptor(object);
+			addContainingSystemPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -78,7 +80,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -104,6 +128,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Containing System feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addContainingSystemPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Connector_containingSystem_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Connector_containingSystem_feature", "_UI_Connector_type"),
+				 AmaltheaPackage.eINSTANCE.getConnector_ContainingSystem(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
 	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -117,6 +163,7 @@
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getConnector_SourcePort());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getConnector_TargetPort());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getConnector_ImplementedInterfaces());
 		}
 		return childrenFeatures;
 	}
@@ -186,10 +233,12 @@
 
 		switch (notification.getFeatureID(Connector.class)) {
 			case AmaltheaPackage.CONNECTOR__NAME:
+			case AmaltheaPackage.CONNECTOR__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -215,6 +264,11 @@
 			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getConnector_TargetPort(),
 				 AmaltheaFactory.eINSTANCE.createQualifiedPort()));
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getConnector_ImplementedInterfaces(),
+				 AmaltheaFactory.eINSTANCE.create(AmaltheaPackage.eINSTANCE.getInterfaceChannel())));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CustomEventTriggerItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CustomEventTriggerItemProvider.java
index 89108ca..ed550d9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CustomEventTriggerItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CustomEventTriggerItemProvider.java
@@ -33,7 +33,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class CustomEventTriggerItemProvider extends CallGraphItemItemProvider {
+public class CustomEventTriggerItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/DataTypeDefinitionItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/DataTypeDefinitionItemProvider.java
index 17fd151..e2542d0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/DataTypeDefinitionItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/DataTypeDefinitionItemProvider.java
@@ -111,7 +111,7 @@
 	 * @generated
 	 */
 	public String getTextGen(Object object) {
-		String label = ((DataTypeDefinition)object).getName();
+		String label = ((DataTypeDefinition)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_DataTypeDefinition_type") :
 			getString("_UI_DataTypeDefinition_type") + " " + label;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EnforcedMigrationItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EnforcedMigrationItemProvider.java
index 78feb5a..a8e06e0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EnforcedMigrationItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EnforcedMigrationItemProvider.java
@@ -32,7 +32,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class EnforcedMigrationItemProvider extends CallGraphItemItemProvider {
+public class EnforcedMigrationItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EventConfigItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EventConfigItemProvider.java
index 84721f8..7ac9afa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EventConfigItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/EventConfigItemProvider.java
@@ -56,6 +56,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addEventPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -79,7 +80,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -160,6 +183,7 @@
 
 		switch (notification.getFeatureID(EventConfig.class)) {
 			case AmaltheaPackage.EVENT_CONFIG__NAME:
+			case AmaltheaPackage.EVENT_CONFIG__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ExecutionNeedItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ExecutionNeedItemProvider.java
index aaf1f0e..23220af 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ExecutionNeedItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ExecutionNeedItemProvider.java
@@ -36,7 +36,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class ExecutionNeedItemProvider extends CallGraphItemItemProvider {
+public class ExecutionNeedItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/GroupItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/GroupItemProvider.java
index 574ea94..a816d4b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/GroupItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/GroupItemProvider.java
@@ -35,7 +35,7 @@
  * --> <!-- end-user-doc -->
  * @generated
  */
-public class GroupItemProvider extends CallGraphItemItemProvider {
+public class GroupItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
@@ -56,6 +56,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addOrderedPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -79,7 +80,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -116,7 +139,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items());
 		}
 		return childrenFeatures;
 	}
@@ -195,6 +218,7 @@
 
 		switch (notification.getFeatureID(Group.class)) {
 			case AmaltheaPackage.GROUP__NAME:
+			case AmaltheaPackage.GROUP__QUALIFIED_NAME:
 			case AmaltheaPackage.GROUP__ORDERED:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
@@ -217,122 +241,122 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeSwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createProbabilitySwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createWaitEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSetEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createClearEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createInterProcessTrigger()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createEnforcedMigration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSchedulePoint()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTerminateProcess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createExecutionNeed()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTicks()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelSend()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelReceive()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSemaphoreAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverRead()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverWrite()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createAsynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGetResultServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createRunnableCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createCustomEventTrigger()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessElementItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessElementItemProvider.java
index b4f667f..d5148f9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessElementItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessElementItemProvider.java
@@ -78,6 +78,7 @@
 
 			addTagsPropertyDescriptor(object);
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addSourcePropertyDescriptor(object);
 			addDestinationPropertyDescriptor(object);
 		}
@@ -124,7 +125,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -260,6 +283,7 @@
 
 		switch (notification.getFeatureID(HwAccessElement.class)) {
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__NAME:
+			case AmaltheaPackage.HW_ACCESS_ELEMENT__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__ACCESS_PATH:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessPathItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessPathItemProvider.java
index f5274bb..e768f2e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessPathItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/HwAccessPathItemProvider.java
@@ -58,6 +58,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addContainingAccessElementPropertyDescriptor(object);
 			addPathElementsPropertyDescriptor(object);
 			addStartAddressPropertyDescriptor(object);
@@ -85,7 +86,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -255,6 +278,7 @@
 
 		switch (notification.getFeatureID(HwAccessPath.class)) {
 			case AmaltheaPackage.HW_ACCESS_PATH__NAME:
+			case AmaltheaPackage.HW_ACCESS_PATH__QUALIFIED_NAME:
 			case AmaltheaPackage.HW_ACCESS_PATH__START_ADDRESS:
 			case AmaltheaPackage.HW_ACCESS_PATH__END_ADDRESS:
 			case AmaltheaPackage.HW_ACCESS_PATH__MEM_OFFSET:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterProcessTriggerItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterProcessTriggerItemProvider.java
index 4b57dda..bb80d6c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterProcessTriggerItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterProcessTriggerItemProvider.java
@@ -34,7 +34,7 @@
  *
  * @generated
  */
-public class InterProcessTriggerItemProvider extends CallGraphItemItemProvider {
+public class InterProcessTriggerItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfaceChannelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfaceChannelItemProvider.java
new file mode 100644
index 0000000..ccf472d
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/InterfaceChannelItemProvider.java
@@ -0,0 +1,218 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+
+import org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedItemProviderAdapter;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.ResourceLocator;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IEditingDomainItemProvider;
+import org.eclipse.emf.edit.provider.IItemLabelProvider;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.IItemPropertySource;
+import org.eclipse.emf.edit.provider.IStructuredItemContentProvider;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link java.util.Map.Entry} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class InterfaceChannelItemProvider 
+	extends AmaltheaExtendedItemProviderAdapter
+	implements
+		IEditingDomainItemProvider,
+		IStructuredItemContentProvider,
+		ITreeItemContentProvider,
+		IItemLabelProvider,
+		IItemPropertySource {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public InterfaceChannelItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addKeyPropertyDescriptor(object);
+			addValuePropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Key feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addKeyPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_InterfaceChannel_key_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_InterfaceChannel_key_feature", "_UI_InterfaceChannel_type"),
+				 AmaltheaPackage.eINSTANCE.getInterfaceChannel_Key(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Value feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addValuePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_InterfaceChannel_value_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_InterfaceChannel_value_feature", "_UI_InterfaceChannel_type"),
+				 AmaltheaPackage.eINSTANCE.getInterfaceChannel_Value(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns InterfaceChannel.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/InterfaceChannel"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTextGen(Object object) {
+		Map.Entry<?, ?> interfaceChannel = (Map.Entry<?, ?>)object;
+		return "" + interfaceChannel.getKey() + " -> " + interfaceChannel.getValue();
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(final Object object) {
+		// delegate to custom item provider
+		return CustomItemProviderService.getInterfaceChannelItemProviderText(object, getTextGen(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChangedGen(Notification notification) {
+		updateChildren(notification);
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+	
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService.getInterfaceChannelItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+	
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+	/**
+	 * Return the resource locator for this item provider's resources.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ResourceLocator getResourceLocator() {
+		return AmaltheaEditPlugin.INSTANCE;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelAccessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelAccessItemProvider.java
index da66caf..8cafb52 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelAccessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelAccessItemProvider.java
@@ -185,9 +185,9 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getLabelAccess_Statistic());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getLabelAccess_TransmissionPolicy());
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getLabelAccess_DependsOn());
 		}
 		return childrenFeatures;
 	}
@@ -261,9 +261,9 @@
 			case AmaltheaPackage.LABEL_ACCESS__IMPLEMENTATION:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
 			case AmaltheaPackage.LABEL_ACCESS__STATISTIC:
 			case AmaltheaPackage.LABEL_ACCESS__TRANSMISSION_POLICY:
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -300,6 +300,11 @@
 
 		newChildDescriptors.add
 			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn(),
+				 AmaltheaFactory.eINSTANCE.createDataDependency()));
+
+		newChildDescriptors.add
+			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getLabelAccess_Statistic(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccessStatistic()));
 
@@ -307,11 +312,6 @@
 			(createChildParameter
 				(AmaltheaPackage.eINSTANCE.getLabelAccess_TransmissionPolicy(),
 				 AmaltheaFactory.eINSTANCE.createTransmissionPolicy()));
-
-		newChildDescriptors.add
-			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getLabelAccess_DependsOn(),
-				 AmaltheaFactory.eINSTANCE.createDataDependency()));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelItemProvider.java
index 0d5f647..9cac584 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/LabelItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addDisplayNamePropertyDescriptor(object);
+			addNamespacePropertyDescriptor(object);
 			addConstantPropertyDescriptor(object);
 			addBVolatilePropertyDescriptor(object);
 			addDataStabilityPropertyDescriptor(object);
@@ -95,6 +96,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Constant feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -311,7 +334,7 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((Label)object).getName();
+		String label = ((Label)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Label_type") :
 			getString("_UI_Label_type") + " " + label;
@@ -331,6 +354,7 @@
 
 		switch (notification.getFeatureID(Label.class)) {
 			case AmaltheaPackage.LABEL__DISPLAY_NAME:
+			case AmaltheaPackage.LABEL__NAMESPACE:
 			case AmaltheaPackage.LABEL__CONSTANT:
 			case AmaltheaPackage.LABEL__BVOLATILE:
 			case AmaltheaPackage.LABEL__DATA_STABILITY:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/MainInterfaceItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/MainInterfaceItemProvider.java
new file mode 100644
index 0000000..a3887ea
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/MainInterfaceItemProvider.java
@@ -0,0 +1,216 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
+
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.MainInterface} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class MainInterfaceItemProvider extends ComponentInterfaceItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public MainInterfaceItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addNamespacePropertyDescriptor(object);
+			addStructurePropertyDescriptor(object);
+			addVersionPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Structure feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addStructurePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_IComponentStructureMember_structure_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_IComponentStructureMember_structure_feature", "_UI_IComponentStructureMember_type"),
+				 AmaltheaPackage.eINSTANCE.getIComponentStructureMember_Structure(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Version feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addVersionPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_MainInterface_version_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_MainInterface_version_feature", "_UI_MainInterface_type"),
+				 AmaltheaPackage.eINSTANCE.getMainInterface_Version(),
+				 true,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 null,
+				 null));
+	}
+
+	/**
+	 * This returns MainInterface.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/MainInterface"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getText(Object object) {
+		String label = ((MainInterface)object).getQualifiedName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_MainInterface_type") :
+			getString("_UI_MainInterface_type") + " " + label;
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChangedGen(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(MainInterface.class)) {
+			case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
+			case AmaltheaPackage.MAIN_INTERFACE__VERSION:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService.getMainInterfaceItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeLabelAccessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeLabelAccessItemProvider.java
index 9a9c84e..97a9594 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeLabelAccessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeLabelAccessItemProvider.java
@@ -34,7 +34,7 @@
  * 
  * @generated
  */
-public class ModeLabelAccessItemProvider extends CallGraphItemItemProvider {
+public class ModeLabelAccessItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchDefaultItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchDefaultItemProvider.java
index fc42a37..5affe41 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchDefaultItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchDefaultItemProvider.java
@@ -72,7 +72,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items());
 		}
 		return childrenFeatures;
 	}
@@ -162,122 +162,122 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeSwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createProbabilitySwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createWaitEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSetEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createClearEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createInterProcessTrigger()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createEnforcedMigration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSchedulePoint()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTerminateProcess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createExecutionNeed()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTicks()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelSend()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelReceive()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSemaphoreAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverRead()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverWrite()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createAsynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGetResultServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createRunnableCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createCustomEventTrigger()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchEntryItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchEntryItemProvider.java
index 094f425..70ae0b1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchEntryItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchEntryItemProvider.java
@@ -55,6 +55,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -77,7 +78,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -93,7 +116,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getModeSwitchEntry_Condition());
 		}
 		return childrenFeatures;
@@ -163,6 +186,7 @@
 
 		switch (notification.getFeatureID(ModeSwitchEntry.class)) {
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__NAME:
+			case AmaltheaPackage.MODE_SWITCH_ENTRY__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS:
@@ -215,122 +239,122 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeSwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createProbabilitySwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createWaitEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSetEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createClearEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createInterProcessTrigger()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createEnforcedMigration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSchedulePoint()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTerminateProcess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createExecutionNeed()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTicks()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelSend()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelReceive()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSemaphoreAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverRead()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverWrite()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createAsynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGetResultServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createRunnableCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createCustomEventTrigger()));
 
 		newChildDescriptors.add
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchItemProvider.java
index 955030f..ae4225e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ModeSwitchItemProvider.java
@@ -33,7 +33,7 @@
  *
  * @generated
  */
-public class ModeSwitchItemProvider extends CallGraphItemItemProvider {
+public class ModeSwitchItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/NamespaceItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/NamespaceItemProvider.java
new file mode 100644
index 0000000..91624cf
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/NamespaceItemProvider.java
@@ -0,0 +1,238 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.provider;
+
+
+import java.util.Collection;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.Namespace;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
+import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+/**
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.Namespace} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class NamespaceItemProvider 
+	extends ReferableObjectItemProvider {
+	/**
+	 * This constructs an instance from a factory and a notifier.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NamespaceItemProvider(AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * This returns the property descriptors for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+		if (itemPropertyDescriptors == null) {
+			super.getPropertyDescriptors(object);
+
+			addPreviousSegmentPropertyDescriptor(object);
+			addMemberObjectsPropertyDescriptor(object);
+		}
+		return itemPropertyDescriptors;
+	}
+
+	/**
+	 * This adds a property descriptor for the Member Objects feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addMemberObjectsPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Namespace_memberObjects_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Namespace_memberObjects_feature", "_UI_Namespace_type"),
+				 AmaltheaPackage.eINSTANCE.getNamespace_MemberObjects(),
+				 false,
+				 false,
+				 false,
+				 null,
+				 getString("_UI_ReadonlyPropertyCategory"),
+				 new String[] {
+					"org.eclipse.ui.views.properties.expert"
+				 }));
+	}
+
+	/**
+	 * This adds a property descriptor for the Previous Segment feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addPreviousSegmentPropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_Namespace_previousSegment_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_Namespace_previousSegment_feature", "_UI_Namespace_type"),
+				 AmaltheaPackage.eINSTANCE.getNamespace_PreviousSegment(),
+				 false,
+				 false,
+				 false,
+				 null,
+				 getString("_UI_ReadonlyPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
+	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
+	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+		if (childrenFeatures == null) {
+			super.getChildrenFeatures(object);
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getNamespace_NextSegments());
+		}
+		return childrenFeatures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EStructuralFeature getChildFeature(Object object, Object child) {
+		// Check the type of the specified child object and return the proper feature to use for
+		// adding (see {@link AddCommand}) it as a child.
+
+		return super.getChildFeature(object, child);
+	}
+
+	/**
+	 * This returns Namespace.gif.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/Namespace"));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected boolean shouldComposeCreationImage() {
+		return true;
+	}
+
+	/**
+	 * This returns the label text for the adapted class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public String getTextGen(Object object) {
+		String label = ((Namespace)object).getName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_Namespace_type") :
+			getString("_UI_Namespace_type") + " " + label;
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public String getText(final Object object) {
+		// delegate to custom item provider
+		return CustomItemProviderService.getNamespaceItemProviderText(object, getTextGen(object));
+	}
+
+	/**
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void notifyChangedGen(Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(Namespace.class)) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
+				return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+	
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService.getNamespaceItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+	
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
+	 * that can be created under this object.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+
+		newChildDescriptors.add
+			(createChildParameter
+				(AmaltheaPackage.eINSTANCE.getNamespace_NextSegments(),
+				 AmaltheaFactory.eINSTANCE.createNamespace()));
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/OperatingSystemItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/OperatingSystemItemProvider.java
index ded6a98..b98c8f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/OperatingSystemItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/OperatingSystemItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addOverheadPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -84,7 +85,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -191,6 +214,7 @@
 
 		switch (notification.getFeatureID(OperatingSystem.class)) {
 			case AmaltheaPackage.OPERATING_SYSTEM__NAME:
+			case AmaltheaPackage.OPERATING_SYSTEM__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case AmaltheaPackage.OPERATING_SYSTEM__TASK_SCHEDULERS:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PhysicalSectionMappingItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PhysicalSectionMappingItemProvider.java
index 395f514..b2c0b5f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PhysicalSectionMappingItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PhysicalSectionMappingItemProvider.java
@@ -80,7 +80,7 @@
 				 false,
 				 true,
 				 null,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
 				 null));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PortItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PortItemProvider.java
index 8656ae9..51fd96b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PortItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/PortItemProvider.java
@@ -19,7 +19,7 @@
 import java.util.List;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.Port;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
@@ -28,7 +28,7 @@
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.Port} object.
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.ComponentPort} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
@@ -96,7 +96,7 @@
 				 getResourceLocator(),
 				 getString("_UI_Port_containingComponent_feature"),
 				 getString("_UI_PropertyDescriptor_description", "_UI_Port_containingComponent_feature", "_UI_Port_type"),
-				 AmaltheaPackage.eINSTANCE.getPort_ContainingComponent(),
+				 AmaltheaPackage.eINSTANCE.getComponentPort_ContainingComponent(),
 				 false,
 				 false,
 				 false,
@@ -123,7 +123,7 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((Port)object).getName();
+		String label = ((ComponentPort)object).getName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Port_type") :
 			getString("_UI_Port_type") + " " + label;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchEntryItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchEntryItemProvider.java
index d6b9d0e..11a8fc6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchEntryItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchEntryItemProvider.java
@@ -97,7 +97,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items());
 		}
 		return childrenFeatures;
 	}
@@ -184,122 +184,122 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeSwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createProbabilitySwitch()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createWaitEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSetEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createClearEvent()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createInterProcessTrigger()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createEnforcedMigration()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSchedulePoint()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTerminateProcess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createExecutionNeed()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createTicks()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createModeLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createLabelAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelSend()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createChannelReceive()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSemaphoreAccess()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverRead()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSenderReceiverWrite()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createSynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createAsynchronousServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGetResultServerCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createGroup()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createRunnableCall()));
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getICallGraphItemContainer_Items(),
+				(AmaltheaPackage.eINSTANCE.getIActivityGraphItemContainer_Items(),
 				 AmaltheaFactory.eINSTANCE.createCustomEventTrigger()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchItemProvider.java
index b09e835..d2ce10f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProbabilitySwitchItemProvider.java
@@ -36,7 +36,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class ProbabilitySwitchItemProvider extends CallGraphItemItemProvider {
+public class ProbabilitySwitchItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
index a27b2e7..0081dde 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ProcessItemProvider.java
@@ -97,7 +97,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getProcess_CallGraph());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getProcess_ActivityGraph());
 		}
 		return childrenFeatures;
 	}
@@ -152,7 +152,7 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(org.eclipse.app4mc.amalthea.model.Process.class)) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -172,8 +172,8 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getProcess_CallGraph(),
-				 AmaltheaFactory.eINSTANCE.createCallGraph()));
+				(AmaltheaPackage.eINSTANCE.getProcess_ActivityGraph(),
+				 AmaltheaFactory.eINSTANCE.createActivityGraph()));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableBaseObjectItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableBaseObjectItemProvider.java
index 0aa1d86..f3fe37b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableBaseObjectItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableBaseObjectItemProvider.java
@@ -76,6 +76,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addUniqueNamePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -99,7 +100,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -195,6 +218,7 @@
 
 		switch (notification.getFeatureID(ReferableBaseObject.class)) {
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__NAME:
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT__QUALIFIED_NAME:
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__UNIQUE_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableObjectItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableObjectItemProvider.java
index 0757185..86c5f04 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableObjectItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ReferableObjectItemProvider.java
@@ -74,6 +74,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addUniqueNamePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -97,7 +98,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -163,6 +186,7 @@
 
 		switch (notification.getFeatureID(ReferableObject.class)) {
 			case AmaltheaPackage.REFERABLE_OBJECT__NAME:
+			case AmaltheaPackage.REFERABLE_OBJECT__QUALIFIED_NAME:
 			case AmaltheaPackage.REFERABLE_OBJECT__UNIQUE_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RequirementItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RequirementItemProvider.java
index 54de205..fbc58c4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RequirementItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RequirementItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 			addSeverityPropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
@@ -84,7 +85,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -178,6 +201,7 @@
 
 		switch (notification.getFeatureID(Requirement.class)) {
 			case AmaltheaPackage.REQUIREMENT__NAME:
+			case AmaltheaPackage.REQUIREMENT__QUALIFIED_NAME:
 			case AmaltheaPackage.REQUIREMENT__SEVERITY:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableCallItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableCallItemProvider.java
index 1c0cce9..74126a4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableCallItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableCallItemProvider.java
@@ -34,7 +34,7 @@
  * 
  * @generated
  */
-public class RunnableCallItemProvider extends CallGraphItemItemProvider {
+public class RunnableCallItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
index 8f0ac6e..5dda834 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableItemProvider.java
@@ -59,6 +59,7 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addNamespacePropertyDescriptor(object);
 			addActivationsPropertyDescriptor(object);
 			addCallbackPropertyDescriptor(object);
 			addServicePropertyDescriptor(object);
@@ -71,6 +72,28 @@
 	}
 
 	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
 	 * This adds a property descriptor for the Activations feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -242,7 +265,7 @@
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_ExecutionCondition());
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_Parameters());
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_CallGraph());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnable_ActivityGraph());
 		}
 		return childrenFeatures;
 	}
@@ -289,7 +312,7 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		String label = ((org.eclipse.app4mc.amalthea.model.Runnable)object).getName();
+		String label = ((org.eclipse.app4mc.amalthea.model.Runnable)object).getQualifiedName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_Runnable_type") :
 			getString("_UI_Runnable_type") + " " + label;
@@ -308,6 +331,7 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(org.eclipse.app4mc.amalthea.model.Runnable.class)) {
+			case AmaltheaPackage.RUNNABLE__NAMESPACE:
 			case AmaltheaPackage.RUNNABLE__CALLBACK:
 			case AmaltheaPackage.RUNNABLE__SERVICE:
 			case AmaltheaPackage.RUNNABLE__ASIL_LEVEL:
@@ -315,7 +339,7 @@
 				return;
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
 		}
@@ -345,8 +369,8 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getRunnable_CallGraph(),
-				 AmaltheaFactory.eINSTANCE.createCallGraph()));
+				(AmaltheaPackage.eINSTANCE.getRunnable_ActivityGraph(),
+				 AmaltheaFactory.eINSTANCE.createActivityGraph()));
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableParameterItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableParameterItemProvider.java
index 412650b..430ec24 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableParameterItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/RunnableParameterItemProvider.java
@@ -145,7 +145,7 @@
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
-			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getRunnableParameter_DependsOn());
+			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn());
 		}
 		return childrenFeatures;
 	}
@@ -179,11 +179,10 @@
 	@Override
 	public Object getImage(final Object object) {
 		// delegate to custom item provider
-		final String name = CustomItemProviderService.getRunnableParameterItemProviderImageName(object, "Group");
+		final String name = CustomItemProviderService.getRunnableParameterItemProviderImageName(object, "RunnableParameter");
 		return overlayImage(object, getResourceLocator().getImage("full/obj16/" + name));
 	}
 
-
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -244,7 +243,7 @@
 
 		newChildDescriptors.add
 			(createChildParameter
-				(AmaltheaPackage.eINSTANCE.getRunnableParameter_DependsOn(),
+				(AmaltheaPackage.eINSTANCE.getIDependsOn_DependsOn(),
 				 AmaltheaFactory.eINSTANCE.createDataDependency()));
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SchedulePointItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SchedulePointItemProvider.java
index 9ced3da..ef59e7f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SchedulePointItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SchedulePointItemProvider.java
@@ -29,7 +29,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class SchedulePointItemProvider extends CallGraphItemItemProvider {
+public class SchedulePointItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SemaphoreAccessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SemaphoreAccessItemProvider.java
index 8b33dc5..30847c0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SemaphoreAccessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SemaphoreAccessItemProvider.java
@@ -34,7 +34,7 @@
  * 
  * @generated
  */
-public class SemaphoreAccessItemProvider extends CallGraphItemItemProvider {
+public class SemaphoreAccessItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SenderReceiverCommunicationItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SenderReceiverCommunicationItemProvider.java
index 9e782ba..f943636 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SenderReceiverCommunicationItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SenderReceiverCommunicationItemProvider.java
@@ -35,7 +35,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class SenderReceiverCommunicationItemProvider extends CallGraphItemItemProvider {
+public class SenderReceiverCommunicationItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ServerCallItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ServerCallItemProvider.java
index 0c1ef48..49c61cb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ServerCallItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/ServerCallItemProvider.java
@@ -32,7 +32,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class ServerCallItemProvider extends CallGraphItemItemProvider {
+public class ServerCallItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SetEventItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SetEventItemProvider.java
index e6363d2..10e06f8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SetEventItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SetEventItemProvider.java
@@ -34,7 +34,7 @@
  * 
  * @generated
  */
-public class SetEventItemProvider extends CallGraphItemItemProvider {
+public class SetEventItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/StructEntryItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/StructEntryItemProvider.java
index ee86733..cb0f374 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/StructEntryItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/StructEntryItemProvider.java
@@ -61,6 +61,7 @@
 			super.getPropertyDescriptors(object);
 
 			addNamePropertyDescriptor(object);
+			addQualifiedNamePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
@@ -83,7 +84,29 @@
 				 false,
 				 false,
 				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
-				 getString("_UI_MainPropertyCategory"),
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
+	 * This adds a property descriptor for the Qualified Name feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addQualifiedNamePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamed_qualifiedName_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamed_qualifiedName_feature", "_UI_INamed_type"),
+				 AmaltheaPackage.eINSTANCE.getINamed_QualifiedName(),
+				 false,
+				 false,
+				 false,
+				 ItemPropertyDescriptor.GENERIC_VALUE_IMAGE,
+				 getString("_UI_ReadonlyPropertyCategory"),
 				 null));
 	}
 
@@ -166,6 +189,7 @@
 
 		switch (notification.getFeatureID(StructEntry.class)) {
 			case AmaltheaPackage.STRUCT_ENTRY__NAME:
+			case AmaltheaPackage.STRUCT_ENTRY__QUALIFIED_NAME:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
 				return;
 			case AmaltheaPackage.STRUCT_ENTRY__DATA_TYPE:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SubInterfaceItemProvider.java
similarity index 64%
copy from plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java
copy to plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SubInterfaceItemProvider.java
index 5abf4f7..5e65c6d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/CallGraphItemItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SubInterfaceItemProvider.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -19,27 +19,29 @@
 import java.util.List;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
 
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
+import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.CallGraphItem} object.
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.SubInterface} object.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  * @generated
  */
-public class CallGraphItemItemProvider extends BaseObjectItemProvider {
+public class SubInterfaceItemProvider extends ComponentInterfaceItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public CallGraphItemItemProvider(AdapterFactory adapterFactory) {
+	public SubInterfaceItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -54,58 +56,42 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
-			addContainingProcessPropertyDescriptor(object);
-			addContainingRunnablePropertyDescriptor(object);
+			addContainingInterfacePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
-	 * This adds a property descriptor for the Containing Process feature.
+	 * This adds a property descriptor for the Containing Interface feature.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addContainingProcessPropertyDescriptor(Object object) {
+	protected void addContainingInterfacePropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
 				 getResourceLocator(),
-				 getString("_UI_CallGraphItem_containingProcess_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CallGraphItem_containingProcess_feature", "_UI_CallGraphItem_type"),
-				 AmaltheaPackage.eINSTANCE.getCallGraphItem_ContainingProcess(),
+				 getString("_UI_SubInterface_containingInterface_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_SubInterface_containingInterface_feature", "_UI_SubInterface_type"),
+				 AmaltheaPackage.eINSTANCE.getSubInterface_ContainingInterface(),
 				 false,
 				 false,
 				 false,
 				 null,
 				 getString("_UI_ReadonlyPropertyCategory"),
-				 new String[] {
-					"org.eclipse.ui.views.properties.expert"
-				 }));
+				 null));
 	}
 
 	/**
-	 * This adds a property descriptor for the Containing Runnable feature.
+	 * This returns SubInterface.gif.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addContainingRunnablePropertyDescriptor(Object object) {
-		itemPropertyDescriptors.add
-			(createItemPropertyDescriptor
-				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
-				 getResourceLocator(),
-				 getString("_UI_CallGraphItem_containingRunnable_feature"),
-				 getString("_UI_PropertyDescriptor_description", "_UI_CallGraphItem_containingRunnable_feature", "_UI_CallGraphItem_type"),
-				 AmaltheaPackage.eINSTANCE.getCallGraphItem_ContainingRunnable(),
-				 false,
-				 false,
-				 false,
-				 null,
-				 getString("_UI_ReadonlyPropertyCategory"),
-				 new String[] {
-					"org.eclipse.ui.views.properties.expert"
-				 }));
+	@Override
+	public Object getImage(Object object) {
+		return overlayImage(object, getResourceLocator().getImage("full/obj16/SubInterface"));
 	}
 
 	/**
@@ -126,10 +112,12 @@
 	 */
 	@Override
 	public String getText(Object object) {
-		return getString("_UI_CallGraphItem_type");
+		String label = ((SubInterface)object).getQualifiedName();
+		return label == null || label.length() == 0 ?
+			getString("_UI_SubInterface_type") :
+			getString("_UI_SubInterface_type") + " " + label;
 	}
 
-
 	/**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
@@ -137,13 +125,29 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public void notifyChanged(Notification notification) {
+	public void notifyChangedGen(Notification notification) {
 		updateChildren(notification);
 		super.notifyChanged(notification);
 	}
 
 	/**
+	 * @generated NOT
+	 */
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		// delegate to custom item provider and execute locally
+		final ViewerNotification vn = CustomItemProviderService.getSubInterfaceItemProviderNotification(notification);
+		if (vn != null) {
+			fireNotifyChanged(vn);
+			return;
+		}
+
+		super.notifyChanged(notification);
+	}
+
+	/**
 	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SystemItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SystemItemProvider.java
index 527a6a2..f1aaefa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SystemItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/SystemItemProvider.java
@@ -1,11 +1,11 @@
 /**
  * *******************************************************************************
  *  Copyright (c) 2015-2018 Robert Bosch GmbH and others.
- * 
+ *
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
+ *  which is available at https://www.eclipse.org/legal/epl-2.0
+ *
  *  SPDX-License-Identifier: EPL-2.0
  *
  *     Generated using Eclipse EMF
@@ -14,22 +14,20 @@
  */
 package org.eclipse.app4mc.amalthea.model.provider;
 
-
-import java.util.Collection;
-import java.util.List;
-
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
-
 import org.eclipse.emf.ecore.EStructuralFeature;
-
 import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
+import java.util.Collection;
+import java.util.List;
+
+
 /**
  * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.System} object.
  * <!-- begin-user-doc -->
@@ -37,24 +35,24 @@
  * @generated
  */
 public class SystemItemProvider extends ReferableBaseObjectItemProvider {
-	/**
+    /**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public SystemItemProvider(AdapterFactory adapterFactory) {
+    public SystemItemProvider(AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
-	/**
+    /**
 	 * This returns the property descriptors for the adapted class.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
+    @Override
+    public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
@@ -64,13 +62,13 @@
 		return itemPropertyDescriptors;
 	}
 
-	/**
+    /**
 	 * This adds a property descriptor for the Tags feature.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addTagsPropertyDescriptor(Object object) {
+    protected void addTagsPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
@@ -86,13 +84,13 @@
 				 null));
 	}
 
-	/**
+    /**
 	 * This adds a property descriptor for the Inner Ports feature.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected void addInnerPortsPropertyDescriptor(Object object) {
+    protected void addInnerPortsPropertyDescriptor(Object object) {
 		itemPropertyDescriptors.add
 			(createItemPropertyDescriptor
 				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
@@ -110,16 +108,17 @@
 				 }));
 	}
 
-	/**
+    /**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
 	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
+    @Override
+    public Collection<? extends EStructuralFeature> getChildrenFeatures(
+        Object object) {
 		if (childrenFeatures == null) {
 			super.getChildrenFeatures(object);
 			childrenFeatures.add(AmaltheaPackage.eINSTANCE.getISystem_ComponentInstances());
@@ -129,64 +128,62 @@
 		return childrenFeatures;
 	}
 
-	/**
+    /**
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	protected EStructuralFeature getChildFeature(Object object, Object child) {
+    @Override
+    protected EStructuralFeature getChildFeature(Object object, Object child) {
 		// Check the type of the specified child object and return the proper feature to use for
 		// adding (see {@link AddCommand}) it as a child.
 
 		return super.getChildFeature(object, child);
 	}
 
-	/**
+    /**
 	 * This returns System.gif.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public Object getImage(Object object) {
+    @Override
+    public Object getImage(Object object) {
 		return overlayImage(object, getResourceLocator().getImage("full/obj16/System"));
 	}
 
-	/**
+    /**
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	protected boolean shouldComposeCreationImage() {
+    @Override
+    protected boolean shouldComposeCreationImage() {
 		return true;
 	}
 
-	/**
+    /**
 	 * This returns the label text for the adapted class.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public String getText(Object object) {
+    @Override
+    public String getText(Object object) {
 		String label = ((org.eclipse.app4mc.amalthea.model.System)object).getName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_System_type") :
 			getString("_UI_System_type") + " " + label;
 	}
-	
 
-	/**
+    /**
 	 * This handles model notifications by calling {@link #updateChildren} to update any cached
 	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public void notifyChanged(Notification notification) {
+    public void notifyChangedGen(Notification notification) {
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(org.eclipse.app4mc.amalthea.model.System.class)) {
@@ -199,15 +196,35 @@
 		super.notifyChanged(notification);
 	}
 
-	/**
+    /**
+     * @generated NOT
+     */
+    @Override
+    public void notifyChanged(final Notification notification) {
+        updateChildren(notification);
+
+        // delegate to custom item provider and execute locally
+        final ViewerNotification vn = CustomItemProviderService.getSystemItemProviderNotification(notification);
+
+        if (vn != null) {
+            fireNotifyChanged(vn);
+
+            return;
+        }
+
+        super.notifyChanged(notification);
+    }
+
+    /**
 	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
 	 * that can be created under this object.
 	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
+     * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
+    @Override
+    protected void collectNewChildDescriptors(
+        Collection<Object> newChildDescriptors, Object object) {
 		super.collectNewChildDescriptors(newChildDescriptors, object);
 
 		newChildDescriptors.add
@@ -225,5 +242,4 @@
 				(AmaltheaPackage.eINSTANCE.getISystem_GroundedPorts(),
 				 AmaltheaFactory.eINSTANCE.createQualifiedPort()));
 	}
-
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TerminateProcessItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TerminateProcessItemProvider.java
index 52b795f..42cd994 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TerminateProcessItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TerminateProcessItemProvider.java
@@ -34,7 +34,7 @@
  * <!-- end-user-doc -->
  * @generated
  */
-public class TerminateProcessItemProvider extends CallGraphItemItemProvider {
+public class TerminateProcessItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TypeDefinitionItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TypeDefinitionItemProvider.java
index 73e5ea6..e8f0334 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TypeDefinitionItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/TypeDefinitionItemProvider.java
@@ -1,15 +1,15 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
  *  which is available at https://www.eclipse.org/legal/epl-2.0/
  * 
  *  SPDX-License-Identifier: EPL-2.0
- *
+ * 
  *     Generated using Eclipse EMF
- *
+ * 
  * *******************************************************************************
  */
 package org.eclipse.app4mc.amalthea.model.provider;
@@ -21,22 +21,27 @@
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.TypeDefinition;
+
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.common.notify.Notification;
+
 import org.eclipse.emf.ecore.EStructuralFeature;
+
+import org.eclipse.emf.edit.provider.ComposeableAdapterFactory;
 import org.eclipse.emf.edit.provider.IItemPropertyDescriptor;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
 /**
- * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.TypeDefinition} object. <!--
- * begin-user-doc --> <!-- end-user-doc -->
- * 
+ * This is the item provider adapter for a {@link org.eclipse.app4mc.amalthea.model.TypeDefinition} object.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
  * @generated
  */
 public class TypeDefinitionItemProvider extends ReferableBaseObjectItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	public TypeDefinitionItemProvider(AdapterFactory adapterFactory) {
@@ -45,7 +50,8 @@
 
 	/**
 	 * This returns the property descriptors for the adapted class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
@@ -53,11 +59,34 @@
 		if (itemPropertyDescriptors == null) {
 			super.getPropertyDescriptors(object);
 
+			addNamespacePropertyDescriptor(object);
 		}
 		return itemPropertyDescriptors;
 	}
 
 	/**
+	 * This adds a property descriptor for the Namespace feature.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected void addNamespacePropertyDescriptor(Object object) {
+		itemPropertyDescriptors.add
+			(createItemPropertyDescriptor
+				(((ComposeableAdapterFactory)adapterFactory).getRootAdapterFactory(),
+				 getResourceLocator(),
+				 getString("_UI_INamespaceMember_namespace_feature"),
+				 getString("_UI_PropertyDescriptor_description", "_UI_INamespaceMember_namespace_feature", "_UI_INamespaceMember_type"),
+				 AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace(),
+				 true,
+				 false,
+				 true,
+				 null,
+				 getString("_UI_BasicPropertyCategory"),
+				 null));
+	}
+
+	/**
 	 * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an
 	 * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or
 	 * {@link org.eclipse.emf.edit.command.MoveCommand} in {@link #createCommand}.
@@ -88,7 +117,8 @@
 	}
 
 	/**
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
@@ -98,30 +128,24 @@
 
 	/**
 	 * This returns the label text for the adapted class.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String getTextGen(Object object) {
+	@Override
+	public String getText(Object object) {
 		String label = ((TypeDefinition)object).getName();
 		return label == null || label.length() == 0 ?
 			getString("_UI_TypeDefinition_type") :
 			getString("_UI_TypeDefinition_type") + " " + label;
 	}
 
-	/**
-	 * @generated NOT
-	 */
-	@Override
-	public String getText(final Object object) {
-		// delegate to custom item provider
-		return CustomItemProviderService.getTypeDefinitionItemProviderText(object, getTextGen(object));
-	}
 
 	/**
-	 * This handles model notifications by calling {@link #updateChildren} to update any cached children and by creating
-	 * a viewer notification, which it passes to {@link #fireNotifyChanged}. <!-- begin-user-doc --> <!-- end-user-doc
-	 * -->
-	 * 
+	 * This handles model notifications by calling {@link #updateChildren} to update any cached
+	 * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
@@ -129,6 +153,9 @@
 		updateChildren(notification);
 
 		switch (notification.getFeatureID(TypeDefinition.class)) {
+			case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE:
+				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), false, true));
+				return;
 			case AmaltheaPackage.TYPE_DEFINITION__SIZE:
 				fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, false));
 				return;
@@ -139,7 +166,8 @@
 	/**
 	 * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children
 	 * that can be created under this object.
-	 * <!-- begin-user-doc --> <!-- end-user-doc -->
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
 	 * @generated
 	 */
 	@Override
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/WaitEventItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/WaitEventItemProvider.java
index 84f7832..c221a12 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/WaitEventItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src-gen/org/eclipse/app4mc/amalthea/model/provider/WaitEventItemProvider.java
@@ -36,7 +36,7 @@
  * 
  * @generated
  */
-public class WaitEventItemProvider extends CallGraphItemItemProvider {
+public class WaitEventItemProvider extends ActivityGraphItemItemProvider {
 	/**
 	 * This constructs an instance from a factory and a notifier.
 	 * <!-- begin-user-doc --> <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.xtend b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.xtend
index 7f022fb..aa7812f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.xtend
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.xtend
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -41,8 +41,12 @@
 import org.eclipse.app4mc.amalthea.model.ChannelSend
 import org.eclipse.app4mc.amalthea.model.ClearEvent
 import org.eclipse.app4mc.amalthea.model.CoherencyDirection
+import org.eclipse.app4mc.amalthea.model.Component
 import org.eclipse.app4mc.amalthea.model.ComponentInstance
+import org.eclipse.app4mc.amalthea.model.ComponentPort
 import org.eclipse.app4mc.amalthea.model.ComponentScope
+import org.eclipse.app4mc.amalthea.model.ComponentStructure
+import org.eclipse.app4mc.amalthea.model.Composite
 import org.eclipse.app4mc.amalthea.model.Condition
 import org.eclipse.app4mc.amalthea.model.Connector
 import org.eclipse.app4mc.amalthea.model.CoreClassification
@@ -84,12 +88,12 @@
 import org.eclipse.app4mc.amalthea.model.IntegerObject
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger
 import org.eclipse.app4mc.amalthea.model.InterfaceKind
-import org.eclipse.app4mc.amalthea.model.InterfacePort
 import org.eclipse.app4mc.amalthea.model.LabelAccess
 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum
 import org.eclipse.app4mc.amalthea.model.LimitType
 import org.eclipse.app4mc.amalthea.model.ListObject
 import org.eclipse.app4mc.amalthea.model.LongObject
+import org.eclipse.app4mc.amalthea.model.MainInterface
 import org.eclipse.app4mc.amalthea.model.MemoryClassification
 import org.eclipse.app4mc.amalthea.model.MemoryMapping
 import org.eclipse.app4mc.amalthea.model.MinAvgMaxStatistic
@@ -104,6 +108,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeSwitchEntry
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition
 import org.eclipse.app4mc.amalthea.model.ModeValueList
+import org.eclipse.app4mc.amalthea.model.Namespace
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency
 import org.eclipse.app4mc.amalthea.model.OrderPrecedenceSpec
 import org.eclipse.app4mc.amalthea.model.OrderType
@@ -141,6 +146,7 @@
 import org.eclipse.app4mc.amalthea.model.SingleValueStatistic
 import org.eclipse.app4mc.amalthea.model.StringObject
 import org.eclipse.app4mc.amalthea.model.SubEventChain
+import org.eclipse.app4mc.amalthea.model.SubInterface
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall
 import org.eclipse.app4mc.amalthea.model.TagGroup
 import org.eclipse.app4mc.amalthea.model.TaskAllocation
@@ -151,7 +157,6 @@
 import org.eclipse.app4mc.amalthea.model.TimeRequirementLimit
 import org.eclipse.app4mc.amalthea.model.TimeUnit
 import org.eclipse.app4mc.amalthea.model.TransmissionPolicy
-import org.eclipse.app4mc.amalthea.model.TypeDefinition
 import org.eclipse.app4mc.amalthea.model.TypeRef
 import org.eclipse.app4mc.amalthea.model.Value
 import org.eclipse.app4mc.amalthea.model.Voltage
@@ -159,6 +164,7 @@
 import org.eclipse.app4mc.amalthea.model.WaitEvent
 import org.eclipse.app4mc.amalthea.model.WaitingBehaviour
 import org.eclipse.app4mc.amalthea.model.impl.CustomPropertyImpl
+import org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl
 import org.eclipse.app4mc.amalthea.model.impl.NeedEntryImpl
 import org.eclipse.app4mc.amalthea.model.impl.TicksEntryImpl
 import org.eclipse.emf.common.notify.AdapterFactory
@@ -674,6 +680,30 @@
 	}
 
 	/*****************************************************************************
+	 * 						NamespaceItemProvider
+	 *****************************************************************************/
+	def static String getNamespaceItemProviderText(Object object, String defaultText) {
+		if (object instanceof Namespace) {
+			val longname = object?.qualifiedName
+			return if(longname.isNullOrEmpty) "<namespace>" else "Namespace " + longname
+		} else {
+			return defaultText
+		}
+	}
+
+	def static ViewerNotification getNamespaceItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(Namespace)) {
+			case AmaltheaPackage::NAMESPACE__NAME,
+			case AmaltheaPackage::NAMESPACE__QUALIFIED_NAME,
+			case AmaltheaPackage::NAMESPACE__UNIQUE_NAME:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+			case AmaltheaPackage::NAMESPACE__NEXT_SEGMENTS:
+				return new ViewerNotification(notification, notification.getNotifier(), true, false)
+		}
+		return null
+	}
+
+	/*****************************************************************************
 	 * 						TransmissionPolicyItemProvider
 	 *****************************************************************************/
 	def static String getTransmissionPolicyItemProviderText(Object object, String defaultText) {
@@ -704,12 +734,93 @@
 ///// 
 
 	/*****************************************************************************
+	 * 						SystemItemProvider
+	 *****************************************************************************/
+	def static ViewerNotification getSystemItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(System)) {
+			case AmaltheaPackage::SYSTEM__NAME:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+			case AmaltheaPackage::SYSTEM__COMPONENT_INSTANCES,
+			case AmaltheaPackage::SYSTEM__CONNECTORS,
+			case AmaltheaPackage::SYSTEM__GROUNDED_PORTS:
+				return new ViewerNotification(notification, notification.getNotifier(), true, false)
+		}
+		return null
+	}
+
+	/*****************************************************************************
+	 * 						ComponentStructureProvider
+	 *****************************************************************************/
+	def static String getComponentStructureItemProviderText(Object object, String defaultText) {
+		if (object instanceof ComponentStructure) {
+			val name = object?.qualifiedName
+			val typeName = object?.structureType
+			val s1 = ppName(typeName, "")
+			val s2 = if (s1.empty) "" else " "
+			val s3 = ppName(name, "<structure>")
+			return s1 + s2 + s3
+		} else {
+			return defaultText
+		}
+	}
+
+	def static ViewerNotification getComponentStructureItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(ComponentStructure)) {
+			case AmaltheaPackage::COMPONENT_STRUCTURE__STRUCTURE_TYPE,
+			case AmaltheaPackage::COMPONENT_STRUCTURE__NAME:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+			case AmaltheaPackage::COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				return new ViewerNotification(notification, notification.getNotifier(), true, false)
+		}
+		return null
+	}
+
+	/*****************************************************************************
+	 * 						ComponentItemProvider
+	 *****************************************************************************/
+	def static String getComponentItemProviderText(Object object, String defaultText) {
+		if (object instanceof Component) {
+			val name = object?.qualifiedName
+
+			return if(name.isNullOrEmpty) "<component>" else "Component " + name
+		} else {
+			return defaultText
+		}
+	}
+
+	/*****************************************************************************
+	 * 						CompositeItemProvider
+	 *****************************************************************************/
+	def static String getCompositeItemProviderText(Object object, String defaultText) {
+		if (object instanceof Composite) {
+			val name = object?.qualifiedName
+
+			return if(name.isNullOrEmpty) "<composite>" else "Composite " + name
+		} else {
+			return defaultText
+		}
+	}
+
+	def static ViewerNotification getCompositeItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(Composite)) {
+			case AmaltheaPackage::COMPOSITE__NAME,
+			case AmaltheaPackage::COMPOSITE__NAMESPACE:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+			case AmaltheaPackage::COMPOSITE__COMPONENT_INSTANCES,
+			case AmaltheaPackage::COMPOSITE__CONNECTORS,
+			case AmaltheaPackage::COMPOSITE__GROUNDED_PORTS:
+				return new ViewerNotification(notification, notification.getNotifier(), true, false)
+		}
+		return null
+	}
+
+	/*****************************************************************************
 	 * 						ComponentInstanceItemProvider
 	 *****************************************************************************/
 	def static String getComponentInstanceItemProviderText(Object object, String defaultText) {
 		if (object instanceof ComponentInstance) {
-			val name = object?.name
-			val typeName = object?.type?.name
+			val name = object?.qualifiedName
+			val typeName = object?.type?.qualifiedName
 			val s1 = ppName(name, "<component instance>")
 			val s2 = ppName(typeName)
 			return s1 + " (type: " + s2 + ")"
@@ -743,11 +854,11 @@
 	}
 
 	/*****************************************************************************
-	 * 						InterfacePortItemProvider
+	 * 						ComponentPortItemProvider
 	 *****************************************************************************/
-	def static String getInterfacePortItemProviderText(Object object, String defaultText) {
-		if (object instanceof InterfacePort) {
-			val cName = object?.containingComponent.name
+	def static String getComponentPortItemProviderText(Object object, String defaultText) {
+		if (object instanceof ComponentPort) {
+			val cName = object?.containingComponent.qualifiedName
 			val kind = object?.kind
 			val name = object?.name
 			val s1 = ppName(cName, "<component>")
@@ -764,14 +875,14 @@
 	 *****************************************************************************/
 	def static String getQualifiedPortItemProviderText(Object object, String defaultText) {
 		if (object instanceof QualifiedPort) {
-			val instName = object?.instance?.name
+			val instName = object?.instance?.qualifiedName
 			val portName = object?.port?.name
 			var String s2 = ""
 			var String s4 = ""
 			if (object?.instance === null) {
 				s4 = " (enclosing composite)"
 			} else {
-				s2 = if(instName.isNullOrEmpty) "??? / " else instName + " / "
+				s2 = if(instName.isNullOrEmpty) "??? / " else instName + " - "
 			}
 			val s3 = if(portName.isNullOrEmpty) "<port>" else portName
 			return getContainingFeatureName(object) + s2 + s3 + s4
@@ -789,6 +900,54 @@
 		return null
 	}
 
+
+	/*****************************************************************************
+	 * 						MainInterfaceItemProvider
+	 *****************************************************************************/
+	def static ViewerNotification getMainInterfaceItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(MainInterface)) {
+			case AmaltheaPackage::MAIN_INTERFACE__NAME,
+			case AmaltheaPackage::MAIN_INTERFACE__NAMESPACE:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+		}
+		return null
+	}
+
+	/*****************************************************************************
+	 * 						SubInterfaceItemProvider
+	 *****************************************************************************/
+	def static ViewerNotification getSubInterfaceItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(SubInterface)) {
+			case AmaltheaPackage::SUB_INTERFACE__NAME:
+				return new ViewerNotification(notification, notification.getNotifier(), true, true)
+		}
+		return null
+	}
+
+	/*****************************************************************************
+	 * 						InterfaceChannelItemProvider
+	 *****************************************************************************/
+	def static String getInterfaceChannelItemProviderText(Object object, String defaultText) {
+		if (object instanceof InterfaceChannelImpl) {
+			val key = object?.getKey()
+			val value = object?.getValue()
+			val s1 = if(key === null || key.name.isNullOrEmpty) "<interface>" else "Interface " + key.name
+			val s2 = if(value === null || value.name.isNullOrEmpty) "<channel>" else "Channel " + value.name
+			return s1 + " -> " + s2
+		} else {
+			return defaultText
+		}
+	}
+
+	def static ViewerNotification getInterfaceChannelItemProviderNotification(Notification notification) {
+		switch notification.getFeatureID(typeof(Map.Entry)) {
+			case AmaltheaPackage::INTERFACE_CHANNEL__KEY,
+			case AmaltheaPackage::INTERFACE_CHANNEL__VALUE:
+				return new ViewerNotification(notification, notification.getNotifier(), false, true)
+		}
+		return null
+	}
+
 ///// 
 ///// _________________________ Config _________________________
 ///// 
@@ -2092,8 +2251,8 @@
 	 *****************************************************************************/
 	def static String getAsynchronousServerCallItemProviderText(Object object, String defaultText) {
 		if (object instanceof AsynchronousServerCall) {
-			val serverRun = object?.serverRunnable?.name
-			val resultRun = object?.resultRunnable?.name
+			val serverRun = object?.serverRunnable?.qualifiedName
+			val resultRun = object?.resultRunnable?.qualifiedName
 			val s1 = ppName(serverRun, "<runnable>")
 			val s2 = ppName(resultRun, "<runnable>")
 			return "call server: " + s1 + " (async - result: " + s2 + ")"
@@ -2116,7 +2275,7 @@
 	 *****************************************************************************/
 	def static String getSynchronousServerCallItemProviderText(Object object, String defaultText) {
 		if (object instanceof SynchronousServerCall) {
-			val serverRun = object?.serverRunnable?.name
+			val serverRun = object?.serverRunnable?.qualifiedName
 			val waiting = object?.waitingBehaviour
 			val s1 = ppName(serverRun, "<runnable>")
 			val s2 = if(waiting === null || waiting == WaitingBehaviour::_UNDEFINED_) "undefined" else waiting.literal
@@ -2140,7 +2299,7 @@
 	 *****************************************************************************/
 	def static String getGetResultServerCallItemProviderText(Object object, String defaultText) {
 		if (object instanceof GetResultServerCall) {
-			val serverRun = object?.serverRunnable?.name
+			val serverRun = object?.serverRunnable?.qualifiedName
 			val blocking = object?.blockingType
 			val s1 = ppName(serverRun, "<runnable>")
 			val s2 = if(blocking === null || blocking == BlockingType::_UNDEFINED_) "undefined" else blocking.literal.replace("_", " ")
@@ -2324,7 +2483,7 @@
 	def static String getLabelAccessItemProviderText(Object object, String defaultText) {
 		if (object instanceof LabelAccess) {
 			val access = object?.access
-			val labelName = object?.data?.name
+			val labelName = object?.data?.qualifiedName
 			val s1 = if(access === null || access == LabelAccessEnum::_UNDEFINED_) "<access>" else access.literal
 			val s2 = ppName(labelName, "<label>")
 			return s1 + " " + s2
@@ -2363,7 +2522,7 @@
 	 *****************************************************************************/
 	def static String getChannelReceiveItemProviderText(Object object, String defaultText) {
 		if (object instanceof ChannelReceive) {
-			val data = object?.data?.name
+			val data = object?.data?.qualifiedName
 
 			val s1 = ppName(data, "<channel>")
 			return "receive from " + s1
@@ -2377,7 +2536,7 @@
 	 *****************************************************************************/
 	def static String getChannelSendItemProviderText(Object object, String defaultText) {
 		if (object instanceof ChannelSend) {
-			val data = object?.data?.name
+			val data = object?.data?.qualifiedName
 
 			val s1 = ppName(data, "<channel>")
 			return "send to " + s1
@@ -2511,7 +2670,7 @@
 	 *****************************************************************************/
 	def static String getRunnableCallItemProviderText(Object object, String defaultText) {
 		if (object instanceof RunnableCall) {
-			val runName = object?.runnable?.name
+			val runName = object?.runnable?.qualifiedName
 			val s1 = ppName(runName, "<runnable>")
 			return "call " + s1
 		} else {
@@ -2557,7 +2716,7 @@
 	 *****************************************************************************/
 	def static String getSenderReceiverReadItemProviderText(Object object, String defaultText) {
 		if (object instanceof SenderReceiverRead) {
-			val labelName = object?.label?.name
+			val labelName = object?.label?.qualifiedName
 			val s1 = if(labelName.isNullOrEmpty) "<label>" else "Label " + labelName
 			return "Sender Receiver - Read " + s1
 		} else {
@@ -2578,7 +2737,7 @@
 	 *****************************************************************************/
 	def static String getSenderReceiverWriteItemProviderText(Object object, String defaultText) {
 		if (object instanceof SenderReceiverWrite) {
-			val labelName = object?.label?.name
+			val labelName = object?.label?.qualifiedName
 			val s1 = if(labelName.isNullOrEmpty) "<label>" else "Label " + labelName
 			return "Sender Receiver - Write " + s1
 		} else {
@@ -2644,7 +2803,7 @@
 	 *****************************************************************************/
 	def static String getBaseTypeDefinitionItemProviderText(Object object, String defaultText) {
 		if (object instanceof BaseTypeDefinition) {
-			val name = object?.name
+			val name = object?.qualifiedName
 			val s1 = ppName(name, "<type definition>")
 			return "BaseType " + s1
 		} else {
@@ -2653,13 +2812,13 @@
 	}
 
 	/*****************************************************************************
-	 * 						TypeDefinitionItemProvider
+	 * 						DataTypeDefinitionItemProvider
 	 *****************************************************************************/
-	def static String getTypeDefinitionItemProviderText(Object object, String defaultText) {
-		if (object instanceof TypeDefinition) {
-			val name = object?.name
+	def static String getDataTypeDefinitionItemProviderText(Object object, String defaultText) {
+		if (object instanceof DataTypeDefinition) {
+			val name = object?.qualifiedName
 			val s1 = ppName(name, "<type definition>")
-			return "Type " + s1
+			return "DataType " + s1
 		} else {
 			return defaultText
 		}
@@ -2670,7 +2829,7 @@
 	 *****************************************************************************/
 	def static String getTypeRefItemProviderText(Object object, String defaultText) {
 		if (object instanceof TypeRef) {
-			val typeName = object?.typeDef?.name
+			val typeName = object?.typeDef?.qualifiedName
 			val s1 = ppName(typeName, "<type definition>")
 			return "TypeRef " + s1
 		} else {
@@ -2702,19 +2861,6 @@
 	}
 
 	/*****************************************************************************
-	 * 						DataTypeDefinitionItemProvider
-	 *****************************************************************************/
-	def static String getDataTypeDefinitionItemProviderText(Object object, String defaultText) {
-		if (object instanceof DataTypeDefinition) {
-			val name = object?.name
-			val s1 = ppName(name)
-			return "DataType " + s1
-		} else {
-			return defaultText
-		}
-	}
-
-	/*****************************************************************************
 	 * 						RunnableParameterProvider
 	 *****************************************************************************/
 	def static String getRunnableParameterItemProviderImageName(Object object, String defaultName) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.xtend b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.xtend
index 6e18673..e7bd253 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.xtend
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.xtend
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2018-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -27,14 +27,15 @@
 import org.eclipse.app4mc.amalthea.model.ModeLabelAccess
 import org.eclipse.app4mc.amalthea.model.ModeValue
 import org.eclipse.app4mc.amalthea.model.NumericMode
+import org.eclipse.app4mc.amalthea.model.Process
 import org.eclipse.app4mc.amalthea.model.Runnable
+import org.eclipse.app4mc.amalthea.model.RunnableCall
 import org.eclipse.app4mc.amalthea.model.RunnableParameter
+import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil
 import org.eclipse.emf.common.util.BasicEList
 import org.eclipse.emf.common.util.UniqueEList
 import org.eclipse.emf.ecore.EObject
 import org.eclipse.sphinx.emf.util.EObjectUtil
-import org.eclipse.app4mc.amalthea.model.util.SoftwareUtil
-import org.eclipse.app4mc.amalthea.model.RunnableCall
 
 class CustomPropertyDescriptorService {
 
@@ -70,7 +71,8 @@
 			choiceOfValues.add(null)
 			
 			// parameters of called runnable
-			choiceOfValues.addAll(object.containingCall?.runnable?.parameters)
+			val params = object.containingCall?.runnable?.parameters
+			choiceOfValues.addAll(params ?: emptyList )
 			
 			return choiceOfValues
 		}
@@ -103,11 +105,14 @@
 		if (object instanceof DataDependency) {
 			val choiceOfValues = new BasicEList<CallArgument>();
 			
-			// CallArguments (out, inout) of contained calls
+			// CallArguments (out, inout) of calls in the same graph
 			val runnable = AmaltheaServices.getContainerOfType(object, Runnable)
-			if (runnable !== null) {
+			val process = AmaltheaServices.getContainerOfType(object, Process)
+			val activityGraph = runnable?.activityGraph ?: process?.activityGraph
+			
+			if (activityGraph !== null) {
 				choiceOfValues.addAll(
-					SoftwareUtil.collectCallGraphItems(runnable.callGraph, null, [e | e instanceof RunnableCall])
+					SoftwareUtil.collectActivityGraphItems(activityGraph, null, [e | e instanceof RunnableCall])
 					.map[e | (e as RunnableCall).arguments]
 					.flatten
 					.filter[e | e.parameter?.direction == DirectionType::OUT || e.parameter?.direction == DirectionType::INOUT]
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/EcoreGenericsHelper.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/EcoreGenericsHelper.java
index acd8ed0..ea891f9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/EcoreGenericsHelper.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/src/org/eclipse/app4mc/amalthea/model/provider/EcoreGenericsHelper.java
@@ -140,42 +140,4 @@
 		newChildDescriptors.removeAll(childDescriptorsToRemove);
 	}
 
-	/**
-	 * Collects the superset of child descriptors for the following objects:
-	 * ModeSwitchDefault, ModeSwitchEntry and ProbabilitySwitchEntry.
-	 * 
-	 * @param feature
-	 * @param newChildDescriptors
-	 */
-	public static void collectNewChildDescriptorsForSwitchEntry(Object feature, Collection<Object> newChildDescriptors) {
-		ArrayList<EObject> childObjects = new ArrayList<EObject>();
-		AmaltheaFactory factory = AmaltheaFactory.eINSTANCE;
-		
-		// see RunnableItemProvider
-		childObjects.add(factory.createGroup());
-		childObjects.add(factory.createExecutionNeed());
-		childObjects.add(factory.createTicks());
-		childObjects.add(factory.createLabelAccess());
-		childObjects.add(factory.createModeLabelAccess());
-		childObjects.add(factory.createRunnableCall());
-		childObjects.add(factory.createModeSwitch());
-		childObjects.add(factory.createProbabilitySwitch());
-		childObjects.add(factory.createSemaphoreAccess());
-		childObjects.add(factory.createSenderReceiverRead());
-		childObjects.add(factory.createSenderReceiverWrite());
-		childObjects.add(factory.createAsynchronousServerCall());
-		childObjects.add(factory.createSynchronousServerCall());
-		childObjects.add(factory.createChannelReceive());
-		childObjects.add(factory.createChannelSend());
-		childObjects.add(factory.createCustomEventTrigger());
-
-		// see CallGraphItemProvider
-		childObjects.add(factory.createModeSwitch());
-		childObjects.add(factory.createProbabilitySwitch());
-	
-		for (EObject child : childObjects) {
-			newChildDescriptors.add(new CommandParameter(null, feature, child));			
-		}
-	}
-
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.java
index b10ceb2..aa18428 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomItemProviderService.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -47,7 +47,11 @@
 import org.eclipse.app4mc.amalthea.model.CoherencyDirection;
 import org.eclipse.app4mc.amalthea.model.Component;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.Condition;
 import org.eclipse.app4mc.amalthea.model.Connector;
 import org.eclipse.app4mc.amalthea.model.CoreClassification;
@@ -99,7 +103,6 @@
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
 import org.eclipse.app4mc.amalthea.model.InterfaceKind;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
@@ -107,6 +110,7 @@
 import org.eclipse.app4mc.amalthea.model.LimitType;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.Memory;
 import org.eclipse.app4mc.amalthea.model.MemoryClassification;
 import org.eclipse.app4mc.amalthea.model.MemoryClassifier;
@@ -125,6 +129,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeSwitchEntry;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.OrderPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.OrderType;
@@ -137,7 +142,6 @@
 import org.eclipse.app4mc.amalthea.model.PercentageRequirementLimit;
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionConstraint;
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.ProcessAllocationConstraint;
 import org.eclipse.app4mc.amalthea.model.ProcessChain;
 import org.eclipse.app4mc.amalthea.model.ProcessChainRequirement;
@@ -171,6 +175,7 @@
 import org.eclipse.app4mc.amalthea.model.StringObject;
 import org.eclipse.app4mc.amalthea.model.StructureType;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
 import org.eclipse.app4mc.amalthea.model.Tag;
 import org.eclipse.app4mc.amalthea.model.TagGroup;
@@ -192,6 +197,7 @@
 import org.eclipse.app4mc.amalthea.model.WaitEvent;
 import org.eclipse.app4mc.amalthea.model.WaitingBehaviour;
 import org.eclipse.app4mc.amalthea.model.impl.CustomPropertyImpl;
+import org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl;
 import org.eclipse.app4mc.amalthea.model.impl.NeedEntryImpl;
 import org.eclipse.app4mc.amalthea.model.impl.TicksEntryImpl;
 import org.eclipse.app4mc.amalthea.model.provider.CustomDeviationItemProviderService;
@@ -1041,6 +1047,59 @@
   }
   
   /**
+   * NamespaceItemProvider
+   */
+  public static String getNamespaceItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof Namespace)) {
+      String _qualifiedName = null;
+      if (((Namespace)object)!=null) {
+        _qualifiedName=((Namespace)object).getQualifiedName();
+      }
+      final String longname = _qualifiedName;
+      String _xifexpression = null;
+      boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(longname);
+      if (_isNullOrEmpty) {
+        _xifexpression = "<namespace>";
+      } else {
+        _xifexpression = ("Namespace " + longname);
+      }
+      return _xifexpression;
+    } else {
+      return defaultText;
+    }
+  }
+  
+  public static ViewerNotification getNamespaceItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(Namespace.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.NAMESPACE__NAME)) {
+      _matched=true;
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.NAMESPACE__QUALIFIED_NAME)) {
+        _matched=true;
+      }
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.NAMESPACE__UNIQUE_NAME)) {
+        _matched=true;
+      }
+    }
+    if (_matched) {
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS)) {
+        _matched=true;
+        Object _notifier_1 = notification.getNotifier();
+        return new ViewerNotification(notification, _notifier_1, true, false);
+      }
+    }
+    return null;
+  }
+  
+  /**
    * TransmissionPolicyItemProvider
    */
   public static String getTransmissionPolicyItemProviderText(final Object object, final String defaultText) {
@@ -1086,24 +1145,196 @@
   }
   
   /**
+   * SystemItemProvider
+   */
+  public static ViewerNotification getSystemItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(System.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.SYSTEM__NAME)) {
+      _matched=true;
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.SYSTEM__COMPONENT_INSTANCES)) {
+        _matched=true;
+      }
+      if (!_matched) {
+        if (Objects.equal(_featureID, AmaltheaPackage.SYSTEM__CONNECTORS)) {
+          _matched=true;
+        }
+      }
+      if (!_matched) {
+        if (Objects.equal(_featureID, AmaltheaPackage.SYSTEM__GROUNDED_PORTS)) {
+          _matched=true;
+        }
+      }
+      if (_matched) {
+        Object _notifier_1 = notification.getNotifier();
+        return new ViewerNotification(notification, _notifier_1, true, false);
+      }
+    }
+    return null;
+  }
+  
+  /**
+   * ComponentStructureProvider
+   */
+  public static String getComponentStructureItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof ComponentStructure)) {
+      String _qualifiedName = null;
+      if (((ComponentStructure)object)!=null) {
+        _qualifiedName=((ComponentStructure)object).getQualifiedName();
+      }
+      final String name = _qualifiedName;
+      String _structureType = null;
+      if (((ComponentStructure)object)!=null) {
+        _structureType=((ComponentStructure)object).getStructureType();
+      }
+      final String typeName = _structureType;
+      final String s1 = CustomItemProviderService.ppName(typeName, "");
+      String _xifexpression = null;
+      boolean _isEmpty = s1.isEmpty();
+      if (_isEmpty) {
+        _xifexpression = "";
+      } else {
+        _xifexpression = " ";
+      }
+      final String s2 = _xifexpression;
+      final String s3 = CustomItemProviderService.ppName(name, "<structure>");
+      return ((s1 + s2) + s3);
+    } else {
+      return defaultText;
+    }
+  }
+  
+  public static ViewerNotification getComponentStructureItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(ComponentStructure.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE)) {
+      _matched=true;
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.COMPONENT_STRUCTURE__NAME)) {
+        _matched=true;
+      }
+    }
+    if (_matched) {
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES)) {
+        _matched=true;
+        Object _notifier_1 = notification.getNotifier();
+        return new ViewerNotification(notification, _notifier_1, true, false);
+      }
+    }
+    return null;
+  }
+  
+  /**
+   * ComponentItemProvider
+   */
+  public static String getComponentItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof Component)) {
+      String _qualifiedName = null;
+      if (((Component)object)!=null) {
+        _qualifiedName=((Component)object).getQualifiedName();
+      }
+      final String name = _qualifiedName;
+      String _xifexpression = null;
+      boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(name);
+      if (_isNullOrEmpty) {
+        _xifexpression = "<component>";
+      } else {
+        _xifexpression = ("Component " + name);
+      }
+      return _xifexpression;
+    } else {
+      return defaultText;
+    }
+  }
+  
+  /**
+   * CompositeItemProvider
+   */
+  public static String getCompositeItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof Composite)) {
+      String _qualifiedName = null;
+      if (((Composite)object)!=null) {
+        _qualifiedName=((Composite)object).getQualifiedName();
+      }
+      final String name = _qualifiedName;
+      String _xifexpression = null;
+      boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(name);
+      if (_isNullOrEmpty) {
+        _xifexpression = "<composite>";
+      } else {
+        _xifexpression = ("Composite " + name);
+      }
+      return _xifexpression;
+    } else {
+      return defaultText;
+    }
+  }
+  
+  public static ViewerNotification getCompositeItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(Composite.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.COMPOSITE__NAME)) {
+      _matched=true;
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.COMPOSITE__NAMESPACE)) {
+        _matched=true;
+      }
+    }
+    if (_matched) {
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.COMPOSITE__COMPONENT_INSTANCES)) {
+        _matched=true;
+      }
+      if (!_matched) {
+        if (Objects.equal(_featureID, AmaltheaPackage.COMPOSITE__CONNECTORS)) {
+          _matched=true;
+        }
+      }
+      if (!_matched) {
+        if (Objects.equal(_featureID, AmaltheaPackage.COMPOSITE__GROUNDED_PORTS)) {
+          _matched=true;
+        }
+      }
+      if (_matched) {
+        Object _notifier_1 = notification.getNotifier();
+        return new ViewerNotification(notification, _notifier_1, true, false);
+      }
+    }
+    return null;
+  }
+  
+  /**
    * ComponentInstanceItemProvider
    */
   public static String getComponentInstanceItemProviderText(final Object object, final String defaultText) {
     if ((object instanceof ComponentInstance)) {
-      String _name = null;
+      String _qualifiedName = null;
       if (((ComponentInstance)object)!=null) {
-        _name=((ComponentInstance)object).getName();
+        _qualifiedName=((ComponentInstance)object).getQualifiedName();
       }
-      final String name = _name;
+      final String name = _qualifiedName;
       Component _type = null;
       if (((ComponentInstance)object)!=null) {
         _type=((ComponentInstance)object).getType();
       }
-      String _name_1 = null;
+      String _qualifiedName_1 = null;
       if (_type!=null) {
-        _name_1=_type.getName();
+        _qualifiedName_1=_type.getQualifiedName();
       }
-      final String typeName = _name_1;
+      final String typeName = _qualifiedName_1;
       final String s1 = CustomItemProviderService.ppName(name, "<component instance>");
       final String s2 = CustomItemProviderService.ppName(typeName);
       return (((s1 + " (type: ") + s2) + ")");
@@ -1155,23 +1386,23 @@
   }
   
   /**
-   * InterfacePortItemProvider
+   * ComponentPortItemProvider
    */
-  public static String getInterfacePortItemProviderText(final Object object, final String defaultText) {
-    if ((object instanceof InterfacePort)) {
+  public static String getComponentPortItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof ComponentPort)) {
       Component _containingComponent = null;
-      if (((InterfacePort)object)!=null) {
-        _containingComponent=((InterfacePort)object).getContainingComponent();
+      if (((ComponentPort)object)!=null) {
+        _containingComponent=((ComponentPort)object).getContainingComponent();
       }
-      final String cName = _containingComponent.getName();
+      final String cName = _containingComponent.getQualifiedName();
       InterfaceKind _kind = null;
-      if (((InterfacePort)object)!=null) {
-        _kind=((InterfacePort)object).getKind();
+      if (((ComponentPort)object)!=null) {
+        _kind=((ComponentPort)object).getKind();
       }
       final InterfaceKind kind = _kind;
       String _name = null;
-      if (((InterfacePort)object)!=null) {
-        _name=((InterfacePort)object).getName();
+      if (((ComponentPort)object)!=null) {
+        _name=((ComponentPort)object).getName();
       }
       final String name = _name;
       final String s1 = CustomItemProviderService.ppName(cName, "<component>");
@@ -1198,20 +1429,20 @@
       if (((QualifiedPort)object)!=null) {
         _instance=((QualifiedPort)object).getInstance();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_instance!=null) {
-        _name=_instance.getName();
+        _qualifiedName=_instance.getQualifiedName();
       }
-      final String instName = _name;
-      Port _port = null;
+      final String instName = _qualifiedName;
+      ComponentPort _port = null;
       if (((QualifiedPort)object)!=null) {
         _port=((QualifiedPort)object).getPort();
       }
-      String _name_1 = null;
+      String _name = null;
       if (_port!=null) {
-        _name_1=_port.getName();
+        _name=_port.getName();
       }
-      final String portName = _name_1;
+      final String portName = _name;
       String s2 = "";
       String s4 = "";
       ComponentInstance _instance_1 = null;
@@ -1227,7 +1458,7 @@
         if (_isNullOrEmpty) {
           _xifexpression = "??? / ";
         } else {
-          _xifexpression = (instName + " / ");
+          _xifexpression = (instName + " - ");
         }
         s2 = _xifexpression;
       }
@@ -1267,6 +1498,96 @@
   }
   
   /**
+   * MainInterfaceItemProvider
+   */
+  public static ViewerNotification getMainInterfaceItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(MainInterface.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.MAIN_INTERFACE__NAME)) {
+      _matched=true;
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.MAIN_INTERFACE__NAMESPACE)) {
+        _matched=true;
+      }
+    }
+    if (_matched) {
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    return null;
+  }
+  
+  /**
+   * SubInterfaceItemProvider
+   */
+  public static ViewerNotification getSubInterfaceItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(SubInterface.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.SUB_INTERFACE__NAME)) {
+      _matched=true;
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, true, true);
+    }
+    return null;
+  }
+  
+  /**
+   * InterfaceChannelItemProvider
+   */
+  public static String getInterfaceChannelItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof InterfaceChannelImpl)) {
+      ComponentInterface _key = null;
+      if (((InterfaceChannelImpl)object)!=null) {
+        _key=((InterfaceChannelImpl)object).getKey();
+      }
+      final ComponentInterface key = _key;
+      Channel _value = null;
+      if (((InterfaceChannelImpl)object)!=null) {
+        _value=((InterfaceChannelImpl)object).getValue();
+      }
+      final Channel value = _value;
+      String _xifexpression = null;
+      if (((key == null) || StringExtensions.isNullOrEmpty(key.getName()))) {
+        _xifexpression = "<interface>";
+      } else {
+        String _name = key.getName();
+        _xifexpression = ("Interface " + _name);
+      }
+      final String s1 = _xifexpression;
+      String _xifexpression_1 = null;
+      if (((value == null) || StringExtensions.isNullOrEmpty(value.getName()))) {
+        _xifexpression_1 = "<channel>";
+      } else {
+        String _name_1 = value.getName();
+        _xifexpression_1 = ("Channel " + _name_1);
+      }
+      final String s2 = _xifexpression_1;
+      return ((s1 + " -> ") + s2);
+    } else {
+      return defaultText;
+    }
+  }
+  
+  public static ViewerNotification getInterfaceChannelItemProviderNotification(final Notification notification) {
+    int _featureID = notification.getFeatureID(Map.Entry.class);
+    boolean _matched = false;
+    if (Objects.equal(_featureID, AmaltheaPackage.INTERFACE_CHANNEL__KEY)) {
+      _matched=true;
+    }
+    if (!_matched) {
+      if (Objects.equal(_featureID, AmaltheaPackage.INTERFACE_CHANNEL__VALUE)) {
+        _matched=true;
+      }
+    }
+    if (_matched) {
+      Object _notifier = notification.getNotifier();
+      return new ViewerNotification(notification, _notifier, false, true);
+    }
+    return null;
+  }
+  
+  /**
    * EventConfigItemProvider
    */
   public static String getEventConfigItemProviderText(final Object object, final String defaultText, final AdapterFactory rootAF) {
@@ -3886,20 +4207,20 @@
       if (((AsynchronousServerCall)object)!=null) {
         _serverRunnable=((AsynchronousServerCall)object).getServerRunnable();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_serverRunnable!=null) {
-        _name=_serverRunnable.getName();
+        _qualifiedName=_serverRunnable.getQualifiedName();
       }
-      final String serverRun = _name;
+      final String serverRun = _qualifiedName;
       org.eclipse.app4mc.amalthea.model.Runnable _resultRunnable = null;
       if (((AsynchronousServerCall)object)!=null) {
         _resultRunnable=((AsynchronousServerCall)object).getResultRunnable();
       }
-      String _name_1 = null;
+      String _qualifiedName_1 = null;
       if (_resultRunnable!=null) {
-        _name_1=_resultRunnable.getName();
+        _qualifiedName_1=_resultRunnable.getQualifiedName();
       }
-      final String resultRun = _name_1;
+      final String resultRun = _qualifiedName_1;
       final String s1 = CustomItemProviderService.ppName(serverRun, "<runnable>");
       final String s2 = CustomItemProviderService.ppName(resultRun, "<runnable>");
       return (((("call server: " + s1) + " (async - result: ") + s2) + ")");
@@ -3935,11 +4256,11 @@
       if (((SynchronousServerCall)object)!=null) {
         _serverRunnable=((SynchronousServerCall)object).getServerRunnable();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_serverRunnable!=null) {
-        _name=_serverRunnable.getName();
+        _qualifiedName=_serverRunnable.getQualifiedName();
       }
-      final String serverRun = _name;
+      final String serverRun = _qualifiedName;
       WaitingBehaviour _waitingBehaviour = null;
       if (((SynchronousServerCall)object)!=null) {
         _waitingBehaviour=((SynchronousServerCall)object).getWaitingBehaviour();
@@ -3986,11 +4307,11 @@
       if (((GetResultServerCall)object)!=null) {
         _serverRunnable=((GetResultServerCall)object).getServerRunnable();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_serverRunnable!=null) {
-        _name=_serverRunnable.getName();
+        _qualifiedName=_serverRunnable.getQualifiedName();
       }
-      final String serverRun = _name;
+      final String serverRun = _qualifiedName;
       BlockingType _blockingType = null;
       if (((GetResultServerCall)object)!=null) {
         _blockingType=((GetResultServerCall)object).getBlockingType();
@@ -4337,11 +4658,11 @@
       if (((LabelAccess)object)!=null) {
         _data=((LabelAccess)object).getData();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_data!=null) {
-        _name=_data.getName();
+        _qualifiedName=_data.getQualifiedName();
       }
-      final String labelName = _name;
+      final String labelName = _qualifiedName;
       String _xifexpression = null;
       if (((access == null) || Objects.equal(access, LabelAccessEnum._UNDEFINED_))) {
         _xifexpression = "<access>";
@@ -4418,11 +4739,11 @@
       if (((ChannelReceive)object)!=null) {
         _data=((ChannelReceive)object).getData();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_data!=null) {
-        _name=_data.getName();
+        _qualifiedName=_data.getQualifiedName();
       }
-      final String data = _name;
+      final String data = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(data, "<channel>");
       return ("receive from " + s1);
     } else {
@@ -4439,11 +4760,11 @@
       if (((ChannelSend)object)!=null) {
         _data=((ChannelSend)object).getData();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_data!=null) {
-        _name=_data.getName();
+        _qualifiedName=_data.getQualifiedName();
       }
-      final String data = _name;
+      final String data = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(data, "<channel>");
       return ("send to " + s1);
     } else {
@@ -4717,11 +5038,11 @@
       if (((RunnableCall)object)!=null) {
         _runnable=((RunnableCall)object).getRunnable();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_runnable!=null) {
-        _name=_runnable.getName();
+        _qualifiedName=_runnable.getQualifiedName();
       }
-      final String runName = _name;
+      final String runName = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(runName, "<runnable>");
       return ("call " + s1);
     } else {
@@ -4800,11 +5121,11 @@
       if (((SenderReceiverRead)object)!=null) {
         _label=((SenderReceiverRead)object).getLabel();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_label!=null) {
-        _name=_label.getName();
+        _qualifiedName=_label.getQualifiedName();
       }
-      final String labelName = _name;
+      final String labelName = _qualifiedName;
       String _xifexpression = null;
       boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(labelName);
       if (_isNullOrEmpty) {
@@ -4839,11 +5160,11 @@
       if (((SenderReceiverWrite)object)!=null) {
         _label=((SenderReceiverWrite)object).getLabel();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_label!=null) {
-        _name=_label.getName();
+        _qualifiedName=_label.getQualifiedName();
       }
-      final String labelName = _name;
+      final String labelName = _qualifiedName;
       String _xifexpression = null;
       boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(labelName);
       if (_isNullOrEmpty) {
@@ -4950,11 +5271,11 @@
    */
   public static String getBaseTypeDefinitionItemProviderText(final Object object, final String defaultText) {
     if ((object instanceof BaseTypeDefinition)) {
-      String _name = null;
+      String _qualifiedName = null;
       if (((BaseTypeDefinition)object)!=null) {
-        _name=((BaseTypeDefinition)object).getName();
+        _qualifiedName=((BaseTypeDefinition)object).getQualifiedName();
       }
-      final String name = _name;
+      final String name = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(name, "<type definition>");
       return ("BaseType " + s1);
     } else {
@@ -4963,17 +5284,17 @@
   }
   
   /**
-   * TypeDefinitionItemProvider
+   * DataTypeDefinitionItemProvider
    */
-  public static String getTypeDefinitionItemProviderText(final Object object, final String defaultText) {
-    if ((object instanceof TypeDefinition)) {
-      String _name = null;
-      if (((TypeDefinition)object)!=null) {
-        _name=((TypeDefinition)object).getName();
+  public static String getDataTypeDefinitionItemProviderText(final Object object, final String defaultText) {
+    if ((object instanceof DataTypeDefinition)) {
+      String _qualifiedName = null;
+      if (((DataTypeDefinition)object)!=null) {
+        _qualifiedName=((DataTypeDefinition)object).getQualifiedName();
       }
-      final String name = _name;
+      final String name = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(name, "<type definition>");
-      return ("Type " + s1);
+      return ("DataType " + s1);
     } else {
       return defaultText;
     }
@@ -4988,11 +5309,11 @@
       if (((TypeRef)object)!=null) {
         _typeDef=((TypeRef)object).getTypeDef();
       }
-      String _name = null;
+      String _qualifiedName = null;
       if (_typeDef!=null) {
-        _name=_typeDef.getName();
+        _qualifiedName=_typeDef.getQualifiedName();
       }
-      final String typeName = _name;
+      final String typeName = _qualifiedName;
       final String s1 = CustomItemProviderService.ppName(typeName, "<type definition>");
       return ("TypeRef " + s1);
     } else {
@@ -5035,23 +5356,6 @@
   }
   
   /**
-   * DataTypeDefinitionItemProvider
-   */
-  public static String getDataTypeDefinitionItemProviderText(final Object object, final String defaultText) {
-    if ((object instanceof DataTypeDefinition)) {
-      String _name = null;
-      if (((DataTypeDefinition)object)!=null) {
-        _name=((DataTypeDefinition)object).getName();
-      }
-      final String name = _name;
-      final String s1 = CustomItemProviderService.ppName(name);
-      return ("DataType " + s1);
-    } else {
-      return defaultText;
-    }
-  }
-  
-  /**
    * RunnableParameterProvider
    */
   public static String getRunnableParameterItemProviderImageName(final Object object, final String defaultName) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java b/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
index cb4ce61..dee692b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model.edit/xtend-gen/org/eclipse/app4mc/amalthea/model/provider/CustomPropertyDescriptorService.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2018-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -16,10 +16,12 @@
 import com.google.common.collect.Iterables;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.List;
 import java.util.function.Function;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AmaltheaServices;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.DataDependency;
 import org.eclipse.app4mc.amalthea.model.DirectionType;
 import org.eclipse.app4mc.amalthea.model.EnumMode;
@@ -38,6 +40,7 @@
 import org.eclipse.emf.common.util.UniqueEList;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.sphinx.emf.util.EObjectUtil;
+import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.Functions.Function1;
 import org.eclipse.xtext.xbase.lib.IterableExtensions;
 import org.eclipse.xtext.xbase.lib.ListExtensions;
@@ -74,7 +77,15 @@
       if (_runnable!=null) {
         _parameters=_runnable.getParameters();
       }
-      choiceOfValues.addAll(_parameters);
+      final EList<RunnableParameter> params = _parameters;
+      List<RunnableParameter> _elvis = null;
+      if (params != null) {
+        _elvis = params;
+      } else {
+        List<RunnableParameter> _emptyList = CollectionLiterals.<RunnableParameter>emptyList();
+        _elvis = _emptyList;
+      }
+      choiceOfValues.addAll(_elvis);
       return choiceOfValues;
     }
     return Collections.EMPTY_LIST;
@@ -103,11 +114,27 @@
     if ((object instanceof DataDependency)) {
       final BasicEList<CallArgument> choiceOfValues = new BasicEList<CallArgument>();
       final org.eclipse.app4mc.amalthea.model.Runnable runnable = AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Runnable>getContainerOfType(((EObject)object), org.eclipse.app4mc.amalthea.model.Runnable.class);
-      if ((runnable != null)) {
-        final Function<CallGraphItem, Boolean> _function = (CallGraphItem e) -> {
+      final org.eclipse.app4mc.amalthea.model.Process process = AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Process>getContainerOfType(((EObject)object), org.eclipse.app4mc.amalthea.model.Process.class);
+      ActivityGraph _elvis = null;
+      ActivityGraph _activityGraph = null;
+      if (runnable!=null) {
+        _activityGraph=runnable.getActivityGraph();
+      }
+      if (_activityGraph != null) {
+        _elvis = _activityGraph;
+      } else {
+        ActivityGraph _activityGraph_1 = null;
+        if (process!=null) {
+          _activityGraph_1=process.getActivityGraph();
+        }
+        _elvis = _activityGraph_1;
+      }
+      final ActivityGraph activityGraph = _elvis;
+      if ((activityGraph != null)) {
+        final Function<ActivityGraphItem, Boolean> _function = (ActivityGraphItem e) -> {
           return Boolean.valueOf((e instanceof RunnableCall));
         };
-        final Function1<CallGraphItem, EList<CallArgument>> _function_1 = (CallGraphItem e) -> {
+        final Function1<ActivityGraphItem, EList<CallArgument>> _function_1 = (ActivityGraphItem e) -> {
           return ((RunnableCall) e).getArguments();
         };
         final Function1<CallArgument, Boolean> _function_2 = (CallArgument e) -> {
@@ -132,7 +159,7 @@
           return Boolean.valueOf(_or);
         };
         Iterables.<CallArgument>addAll(choiceOfValues, 
-          IterableExtensions.<CallArgument>filter(Iterables.<CallArgument>concat(ListExtensions.<CallGraphItem, EList<CallArgument>>map(SoftwareUtil.collectCallGraphItems(runnable.getCallGraph(), null, _function), _function_1)), _function_2));
+          IterableExtensions.<CallArgument>filter(Iterables.<CallArgument>concat(ListExtensions.<ActivityGraphItem, EList<CallArgument>>map(SoftwareUtil.collectActivityGraphItems(activityGraph, null, _function), _function_1)), _function_2));
       }
       return choiceOfValues;
     }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.editor/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.model.editor/META-INF/MANIFEST.MF
index 32f4db5..37f6ac0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.editor/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.model.editor/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.model.editor;singleton:=true
 Automatic-Module-Name: org.eclipse.app4mc.amalthea.model.editor
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.app4mc.amalthea.model.presentation.AmaltheaEditorPlugin$Implementation
 Bundle-Vendor: %providerName
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.model.help/META-INF/MANIFEST.MF
index 0dc6632..e2dba11 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Model Help
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.model.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_details.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_details.textile
index 48d28df..7f29ba5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_details.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_details.textile
@@ -1,6 +1,13 @@
 
 h2. Model Details
 
+h3. Qualified name
+
+The following image shows the logical dependency between the name segments and describe the used notations. The details differ in terms of delimiters and encoding of the segments.
+
+!../pictures/dev_model_qualified_name.png!
+
+
 h3. Unique ID generation
 
 AMALTHEA uses a named based schema to reference other elements inside of a model.
@@ -12,7 +19,7 @@
 
 Samples:
 
-Referencing a Runnable element with name foo in a RunnableCall looks like the following snippet:
+Refering to a Runnable element with name foo in a RunnableCall looks like the following snippet:
 
 bc. 
 <items xsi:type="am:RunnableCall" runnable="foo?type=Runnable" />
@@ -32,11 +39,13 @@
 
 | |{text-align:center}. Reference | |
 | @ISystem@ |>. *innerPorts* &#8594; | @QualifiedPort@ |
+| @HwStructure@ |>. *innerPorts* &#8594; | @HwPort@ |
 | @HwPath@ |>. *source* &#8594; | @ProcessingUnit@ |
 | @HwPath@ |>. *destination* &#8594; | @HwDestination@ |
 | @TaskScheduler@ |>. *childSchedulers* &#8594; | @TaskScheduler@ |
 | @TaskScheduler@ |>. *parentScheduler* &#8594; | @TaskScheduler@ |
 
+
 h3. Transient back pointers
 
 AMALTHEA maintains a number of back pointers in the model. These transient references of an object 'point back' to the object referring to it. 
@@ -49,10 +58,16 @@
 By the prefix "containing" they clearly indicate that a containment is changed.
 
 | | Container reference |>. Containment reference | |
-| @Component@ |{color:green}. &#8592; *containingComponent* |>. *ports* &#8594; | @Port@ |
-| @Mode@ |{color:green}. &#8592; *containingMode* |>. *literals* &#8594; | @ModeLiteral@ |
+| @Component@ |{color:green}. &#8592; *containingComponent* |>. *ports* &#8594; | @ComponentPort@ |
+| @EnumMode@ |{color:green}. &#8592; *containingMode* |>. *literals* &#8594; | @ModeLiteral@ |
 | @HwFeatureCategory@ |{color:green}. &#8592; *containingCategory* |>. *features* &#8594; | @HwFeature@ |
 | @HwAccessElement@ |{color:green}. &#8592; *containingAccessElement* |>. *accessPath* &#8594; | @HwAccessPath@ |
+| @RunnableCall@ |{color:green}. &#8592; *containingCall* |>. *arguments* &#8594; | @CallArgument@ |
+| @ISystem@ |{color:green}. &#8592; *containingSystem* |>. *componentInstances* &#8594; | @ComponentInstance@ |
+| @ISystem@ |{color:green}. &#8592; *containingSystem* |>. *connectors* &#8594; | @Connector@ |
+| @Namespace@ |{color:green}. &#8592; *previousSegment* |>. *nextSegments* &#8594; | @Namespace@ |
+| @Runnable@ |{color:green}. &#8592; *containingRunnable* |>. *parameters* &#8594; | @RunnableParameter@ |
+| @ComponentInterface@ |{color:green}. &#8592; *containingInterface* |>. *subInterfaces* &#8594; | @SubInterface@ |
 
 The following references are specified as opposite references.
 
@@ -64,8 +79,10 @@
 The following container references are a special case. Because of the nested structure of sub elements the access to a dedicated container object is computed by traversing multiple eContainer references.
 
 | | Container reference (read only) |>. Containment reference | |
-| @Runnable@ |{color:green}. &#8592; *containingRunnable* |>. *callGraph ...* &#8594; | @CallGraphItem@ |
-| @Process@ |{color:green}. &#8592; *containingProcess* |>. *callGraph ...* &#8594; | @CallGraphItem@ |
+| @Runnable@ |{color:green}. &#8592; *containingRunnable* |>. *activityGraph ...* &#8594; | @ActivityGraphItem@ |
+| @Process@ |{color:green}. &#8592; *containingProcess* |>. *activityGraph ...* &#8594; | @ActivityGraphItem@ |
+| @ActivityGraph@ |{color:green}. &#8592; *containingActivityGraph* |>. *items ...* &#8594; | @ActivityGraphItem@ |
+| @Runnable@ |{color:green}. &#8592; *containingRunnable* |>. *...* &#8594; | @DataDependency@ |
 
 
 h4. References (via inverse index)
@@ -105,7 +122,7 @@
 | | Back pointer (read only) |>. Reference | |
 | @Component@ |{color:green}. &#8592; *referringComponents* |>. *labels* &#8594; | @Label@ |
 | @Component@ |{color:green}. &#8592; *referringComponents* |>. *runnables* &#8594; | @Runnable@ |
-| @Component@ |{color:green}. &#8592; *referringComponents* |>. *tasks* &#8594; | @AbstractProcess@ |
+| @Component@ |{color:green}. &#8592; *referringComponents* |>. *processes* &#8594; | @AbstractProcess@ |
 | @Component@ |{color:green}. &#8592; *referringComponents* |>. *semaphores* &#8594; | @Semaphore@ |
 | @Component@ |{color:green}. &#8592; *referringComponents* |>. *osEvents* &#8594; | @OsEvent@ |
 
@@ -123,6 +140,10 @@
 | @Process@ |{color:green}. &#8592; *affectedProcesses* |>. *stimuli* &#8594; | @Stimulus@ |
 | @ITaggable@ |{color:green}. &#8592; *taggedObjects* |>. *tags* &#8594; | @Tag@ |
 | @SchedulerAssociation@ |{color:green}. &#8592; *childAssociations* |>. *parent* &#8594; | @TaskScheduler@ |
+| @INamespaceMember@ |{color:green}. &#8592; *memberObjects* |>. *namespace* &#8594; | @Namespace@ |
+| @IComponentStructureMember@ |{color:green}. &#8592; *memberObjects* |>. *structure* &#8594; | @ComponentStructure@ |
+| @HwConnection@ |{color:green}. &#8592; *connections* |>. *port1* &#8594; | @HwPort@ |
+| @HwConnection@ |{color:green}. &#8592; *connections* |>. *port2* &#8594; | @HwPort@ |
 
 
 h4. Implementation
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_util.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_util.textile
index 45e6198..b588493 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_util.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/dev_model_util.textile
@@ -20,7 +20,7 @@
 
 __Specific__
 
-* "Software Utilities":../help-javadoc/model/util/SoftwareUtil.html  -  Call graph traversal, accesses, calls
+* "Software Utilities":../help-javadoc/model/util/SoftwareUtil.html  -  Activity graph traversal, accesses, calls
 * "Runtime Utilities":../help-javadoc/model/util/RuntimeUtil.html  -  Runtime, utilization, ticks
 * "Deployment Utilities":../help-javadoc/model/util/DeploymentUtil.html  -  Mapping of tasks to cores and data to memory
 * "Hardware Utilities":../help-javadoc/model/util/HardwareUtil.html  -  Access paths and latencies
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_basics.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_basics.textile
index 162d32c..72332c6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_basics.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_basics.textile
@@ -168,7 +168,7 @@
 
 Counters are available at the following elements:
 
-* Call graph items:
+* Activity graph items:
 ** __ClearEvent__
 ** __EnforcedMigration__
 ** __InterProcessActivation__
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_common.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_common.textile
index 9d8b1fc..f32806a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_common.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_common.textile
@@ -19,3 +19,9 @@
 
 !../pictures/model_common_classifier.png!
 
+
+h3(#common-namespaces). Namespaces
+
+Some elements in the data model can refer to a __Namespace__. A namespace provides a prefix to the name of the element.
+
+!../pictures/model_common_elements_namespace_member.png!
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_components.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_components.textile
index 432cc98..9570055 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_components.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_components.textile
@@ -5,11 +5,23 @@
 
 It holds the following types:
 
-* *Component* / *Composite*
-* *System*
+* *Components* / *Composites*
+* *Systems*
+* *Interfaces*
+* *Structures*
 
 !(scale)../pictures/model_components.png!
 
+h3. Component Interfaces
+
+!(scale)../pictures/model_components_interface.png!
+
+
+h3. Architecture of Systems / Composites
+
+The inner architecture of a System or a Composite is defined with the ISystem interface. Both elements contain component instances and connectors. The ports of the instances and the containing architecture can be identified as QualifiedPort.
+
+!(scale)../pictures/model_components_composition.png!
 
 h3. Components Model Elements
 
@@ -34,10 +46,10 @@
 Connection-instances and is used to define the architecture of a technical system. 
 
 A 'Composite' is a special component type to aggregate Component- and Connection-instances compositely.
-So it could be used to create hierarchical component structures.
+So it could be used to create hierarchical component architectures.
 
 System and Composite implement the interface 'ISystem'.
-The following diagram shows the main elements to represent the hierarchical structure.
+The following diagram shows the main elements to represent the hierarchical architecture.
 
 !../pictures/model_components_isystem.png!
 
@@ -45,21 +57,31 @@
 
 h4. ComponentInstance and Connector
 
-The 'ComponentInstance' and the 'Connector' can be created within a 'System' or a 'Composite'. 'ComponentInstances' are used to represent instances of component- or composite-types. The 'Connector' class is used to connect the component instances to each other via their Ports. The connector contains a source and target 'QualifiedPort'.
+The 'ComponentInstance' and the 'Connector' can be created within a 'System' or a 'Composite'. 'ComponentInstances' are used to represent instances of component- or composite-types. The 'Connector' class is used to connect the component instances to each other via their Ports. The connector contains a source and target 'QualifiedPort'. 
+
+!(scale)../pictures/model_components_connector.png!
+
+To specfiy the implementation details of a connection between ports it is possible to specify an interface/channel pair for each connector. This links additional information from the channel implementation like the access behavior to the connector. The connector can contain multiple interface/channel pairs since an interface can contain multiple sub-interfaces realized by multiple data types implemented by multiple channels.
+
+
 
 h4. QualifiedPort
 
-A 'qualified' port refers a 'ComponentInstance' and a 'Port'.
+A 'qualified' port refers a 'ComponentInstance' and a 'ComponentPort'.
 If the 'instance' link is null then the QualifiedPort refers to a port of the enclosing composite. 
 
-h4. InterfacePort
+h4. ComponentPort
 
-The 'InterfacePort' class contains the attribute 'kind' to set the port direction.
+The 'ComponentPort' class contains the attribute 'kind' to set the port direction.
 The attribute 'interface name' can be used to refer to an external definition, e.g. described in detail with the Franca IDL. 
 
+h4. Structures
+
+Structures enables structuring/ordering of components, composites and interfaces. In contrasts to namespaces the structure does not add to the qualified name but supports the design of a hierarchical structure to order the elements in a package/folder like scheme.
 
 h3. Example
 
+
 h4. Diagram
 
 The diagram of the example shows a composite 'A' that contains two component instances 'X' and 'Y' of type 'B'. The connections between the ports are named 'c1' to 'c4'. The grounded port 'in_3' of instance 'X' (intentionally left unconnected) is marked green. The second unconnected port 'in_2' of instance 'Y' is unspecified. It is marked red and has to be changed, either declared as grounded or connected to another port. 
@@ -71,17 +93,3 @@
 The same example is shown in the standard AMALTHEA editor.
 
 !../pictures/model_components_example_treeview.png!
-
-
-h3. Franca IDL
-
-Franca is a common interface definition  language (IDL). The initial version has been developed by the GENIVI consortium as part of the standardization of an In-Vehicle Infotainment (IVI) platform. The first public version of Franca was released in 2012 under the Eclipse Public License. Franca is approved as official Eclipse project.
-
-The Franca IDL files can be edited in a textual editor that is provided by Franca. 
-
-!../pictures/model_franca_editor_screenshot.png!
-
-AMALTHEA ports can specify the 'interface name' to refer to interfaces.
-
-!../pictures/model_components_Franca_IDL.png!
-
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_introduction.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_introduction.textile
index 50ac3d1..5e7092b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_introduction.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_introduction.textile
@@ -69,7 +69,7 @@
 * Existing EMF models from other Eclipse projects are reused and referenced instead of creating own definitions.
 * References are based on unique names within the same type of element.
 
-We also try to use cycles wherever possible and needed instead of direct time information. This has advantages in a multi-core environment, as the cores could have different clock frequencies.
+We also try to use ticks wherever possible instead of direct time information. This has advantages in a multi-core environment, as the cores could have different clock frequencies.
 
 The following figure shows the different logical parts of the AMALTHEA data model and how they are referencing each other. The central AMALTHEA model and common model that contains reusable elements are drawn without connections in this diagram.
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_sw.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_sw.textile
index 330090f..5d4210f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_sw.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/model_sw.textile
@@ -97,7 +97,7 @@
 
 h3. Tasks / ISR
 
-The following figure shows the structure which describes __Tasks__ and Interrupt Service Routines (__ISR__) in the AMALTHEA software model. The abstract class __Process__ generalizes ISRs and Tasks and provides the common attributes like the activation that is at runtime level represented by a __Stimulus__. A __Task__ or __ISR__ contains __calls__ either to other Tasks (via inter process activation) or Runnables. These types of __calls__ are included in the __callGraph__ attribute.
+The following figure shows the structure which describes __Tasks__ and Interrupt Service Routines (__ISR__) in the AMALTHEA software model. The abstract class __Process__ generalizes ISRs and Tasks and provides the common attributes like the activation that is at runtime level represented by a __Stimulus__. A __Task__ or __ISR__ contains __calls__ either to other Tasks (via inter process activation) or Runnables. These types of __calls__ are included in the __activityGraph__ attribute.
 
 !(scale)../pictures/model_sw_task_isr.png!
 
@@ -105,7 +105,7 @@
 |_. Name |_. Description |
 | __name__ | Name of the process |
 | __stimuli__ | Reference to one or more __Stimuli__ representing the different types of possible activations of this __Process__|
-| __callGraph__ | List of task calls. This specifies the behavior of the process. The objects will be executed in the same order they are stored in the list. |
+| __activityGraph__ | List of activities (e.g. runnable calls, label accesses). This specifies the behavior of the process. The objects will be executed in the same order they are stored in the list. |
 | __preemption__ | Defines the preemption of a task by higher priority tasks. |
 | __multipleTaskActivationLimit__ | Defines the maximal number of existing instances from the same task, which is checked for load limitation reasons when a task is activated. For the case of an exceeded multipleTaskActivationLimit, the activation is ignored.|
 
@@ -130,34 +130,34 @@
 | __service__ | __True__ if __Runnable__ element can be seen in a service or global function manner. In more detail, the __Runnable__ is only called from other __Runnables__ and not directly from a __Task__ context. |
 | __activations__ | Although runnables in the simulation can only be called by tasks, it is possible to specify activation patterns for a runnable. |
 | __executionCondition__ | It is possible to specify an execution condition for a runnable (depending on modes).|
-| __callGraph__ | Top level object containing __CallGraphItem__ objects, representing runtime, label accesses, other __Runnable__ accesses. The possibilities are described below. |
+| __activityGraph__ | Top level object containing __ActivityGraphItem__ objects, representing runtime, label accesses, other __Runnable__ accesses. The possibilities are described below. |
 | __tags__ | Can be used to annotate or group special kind of __Runnables__ |
 
 
-h3. Call Graph
+h3. Activity Graph
 
-A __CallGraph__ is the root container of __CallGraphItems__. In addition some of the items can also contain sub items. These items are implementing the interface __ICallGraphItemContainer__.
+A __ActivityGraph__ is the root container of __ActivityGraphItems__. In addition some of the items can also contain sub items. These items are implementing the interface __IActivityGraphItemContainer__.
 
-!../pictures/model_sw_callgraph_item_container.png!
+!../pictures/model_sw_activitygraph_item_container.png!
 
-The following picture shows the structure of a __Call Graph__. The __Call Graph Items__ are used to define detailed behavior. With the __Switches__ it is possible to define alternative execution paths. The elements of the graph are executed in the order they are stored in the data model. 
+The following picture shows the structure of a __Activity Graph__. The __Activity Graph Items__ are used to define detailed behavior. With the __Switches__ it is possible to define alternative execution paths. The elements of the graph are executed in the order they are stored in the data model. 
 
-!../pictures/model_sw_callgraph_structure.png!
+!../pictures/model_sw_activitygraph_structure.png!
 
 
 
-h3. Call Graph Items
+h3. Activity Graph Items
 
-The __CallGraphItems__ are describing the detailed behavior of a __Process__ or __Runnable__. This can be either an abstraction of runtime or representing access to other elements like __Runnables__, __Labels__ and __Semaphore__. An overview of the different possibilities is given in the next pictures.
+The __ActivityGraphItems__ are describing the detailed behavior of a __Process__ or __Runnable__. This can be either an abstraction of runtime or representing access to other elements like __Runnables__, __Labels__ and __Semaphore__. An overview of the different possibilities is given in the next pictures.
 
-!../pictures/model_sw_callgraph_items.png!
+!../pictures/model_sw_activitygraph_items.png!
 
 
 h4. Groups
 
-A __Group__ is used to structure the __CallGraphItems__. The __boolean__ attribute __isOrdered__ indicates if the execution order of the contained elements is fixed or random.
+A __Group__ is used to structure the __ActivityGraphItems__. The __boolean__ attribute __isOrdered__ indicates if the execution order of the contained elements is fixed or random.
 
-!../pictures/model_sw_call_graph_items__group.png!
+!../pictures/model_sw_activity_graph_items__group.png!
 
 
 h4. Mode Switch
@@ -166,14 +166,14 @@
 A __ModeSwitchEntry__ object is used to represent an execution path. A mode condition is defined for each entry (via ModeConditionDisjunction).
 At the __ModeSwitch__ it is also possible to define a default path, which is executed if no condition of the __ModeSwitchEntries__ fits to the current mode settings.
 
-!../pictures/model_sw_call_graph_items__mode_switch.png!
+!../pictures/model_sw_activity_graph_items__mode_switch.png!
 
 
 h4. Probability Switch
 
 Each entry (path) of a __ProbabilitySwitch__ has a probability-value. As the name indicates, this is the value that defines the probability that the path is executed. It is computed as a fraction of its value divided by the sum of all __ProbabilitySwitchEntries__ in the surrounding switch.
 
-!../pictures/model_sw_call_graph_items__probability_switch.png!
+!../pictures/model_sw_activity_graph_items__probability_switch.png!
 
 
 h4. Ticks
@@ -186,7 +186,7 @@
 
 __ExecutionNeed__ allows to specify the required execution "time" in a more abstract way. Multiple __NeedEntries__ can be used to specify execution characteristics. There is a map of default entries and (optional) maps of entries for specific hardware types (e.g. FPGA). These extended entries are also implemented as a map with a processing unit definition as the key.
 
-!../pictures/model_sw_call_graph_items__execution_need.png!
+!../pictures/model_sw_activity_graph_items__execution_need.png!
 
 A simple approach (equivalent to the __RunnableInstructions__ in older versions of the AMALTHEA model) is the specification of the "number of generic instructions" that have to be executed. Together with the hardware feature "instructions per cycle (IPC)" and the frequency of a processing unit it permits the calculation of the execution time on a specific processing unit.
 
@@ -197,7 +197,7 @@
 
 h4. Calls and AUTOSAR communication
 
-!(scale)../pictures/model_sw_call_graph_items__calls.png!
+!(scale)../pictures/model_sw_activity_graph_items__calls.png!
 
 table(minimal){padding:10px; border:1px solid black; background:#f8f8f8}. 
 |_. Name |_. Description |
@@ -212,7 +212,7 @@
 
 h4. Label Access
 
-!(scale)../pictures/model_sw_call_graph_items__label_access.png!
+!(scale)../pictures/model_sw_activity_graph_items__label_access.png!
 
 table(minimal){padding:10px; border:1px solid black; background:#f8f8f8}. 
 |_. Name |_. Description |
@@ -226,7 +226,7 @@
 
 h4. Channel Access
 
-!../pictures/model_sw_call_graph_items__channel_access.png!
+!../pictures/model_sw_activity_graph_items__channel_access.png!
 
 Common attributes:
 
@@ -248,7 +248,7 @@
 
 h4. Semaphore Access
 
-!../pictures/model_sw_call_graph_items__semaphore_access.png!
+!../pictures/model_sw_activity_graph_items__semaphore_access.png!
 
 table(minimal){padding:10px; border:1px solid black; background:#f8f8f8}. 
 |_. Name |_. Description |
@@ -259,7 +259,7 @@
 
 h4. Mode Label Access
 
-!../pictures/model_sw_call_graph_items__mode_label_access.png!
+!../pictures/model_sw_activity_graph_items__mode_label_access.png!
 
 table(minimal){padding:10px; border:1px solid black; background:#f8f8f8}. 
 |_. Name |_. Description |
@@ -271,7 +271,7 @@
 
 The __Custom Event Trigger__ references an event of type __Custom Event__. The execution of a __Custom Event Trigger__ entry triggers the corresponding event that can be observed by an __Event Stimulus__.  
 
-!../pictures/model_sw_call_graph_items__triggers.png!
+!../pictures/model_sw_activity_graph_items__triggers.png!
 
 
 h4. Enforced Migration
@@ -293,7 +293,7 @@
 
 h4. Terminate Process
 
-If a __Terminate Process__ is reached during the execution of a __Call Graph__, the __Task__ or __ISR__ terminates immediately. It is not required to insert this element at the end of a __Call Graph__. It can be used to define an execution path (by using __Switches__) that terminates a process.   
+If a __Terminate Process__ is reached during the execution of a __Activity Graph__, the __Task__ or __ISR__ terminates immediately. It is not required to insert this element at the end of a __Activity Graph__. It can be used to define an execution path (by using __Switches__) that terminates a process.   
 
 
 h4. Wait/Clear/Set Event
@@ -375,7 +375,7 @@
 !../pictures/process_prototypes.png!
 
 These tasks are representing the current state and can be further processed, for example to generate code or further simulation. With the process prototypes available in the model, it is possible to define the structure of the software in an early development phase. The implementation at that moment is open and not yet completed, but the general idea can be verified.
-Another issue can be the distribution to a multi-core system, coming from a single-core system. Therefore the call graph can be analyzed and computed to get the right order and parallelization of the elements and dependencies.
+Another issue can be the distribution to a multi-core system, coming from a single-core system. Therefore the activity graph can be analyzed and computed to get the right order and parallelization of the elements and dependencies.
 
 
 h3. Process Chains
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_sw_develop.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_sw_develop.textile
index e84f87e..fe03502 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_sw_develop.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_sw_develop.textile
@@ -10,7 +10,7 @@
 
 # timing only (activation and runtime)
 # including communication (in general)
-# adding detailed call graphs
+# adding detailed activity graphs
 
 To allow a more detailed simulation a description can also include statistical values like deviations or probabilities. This requires additional information that is typically derived from an already implemented function. The modeling of observed behavior is described in more detail in chapter "Software (runtime)":./user_sw_runtime.html#user-sw-runtime.
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_timing.textile b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_timing.textile
index b140464..addfd49 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_timing.textile
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/docu/user_timing.textile
@@ -13,7 +13,7 @@
 * Items that specify *data access* of data elements (channel receive/send, label access).
 * Items that specify *execution time* (ticks, execution needs).
 
-Tasks may call runnables in a call graph. Note that a runnable can be called by several tasks. We then map tasks to task schedulers in the operating system model, and we map every task scheduler to one or more processing units of the hardware model. Further, we map data elements to memories of the hardware model.
+Tasks may call runnables in a activity graph. Note that a runnable can be called by several tasks. We then map tasks to task schedulers in the operating system model, and we map every task scheduler to one or more processing units of the hardware model. Further, we map data elements to memories of the hardware model.
 
 This coarse level of hardware model detail-the hardware model consists only of *mapping targets*, without routing or timing for data accesses-may already be sufficient for analysis focusing on event-chains or scheduling.
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore-definitions.zip b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore-definitions.zip
index 17ffd26..0ad7c1a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore-definitions.zip
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore-definitions.zip
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.ecore b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.ecore
index 4080cd3..aca185e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.ecore
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.ecore
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.7" nsPrefix="am">
   <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
+    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
     <details key="modelName" value="Amalthea"/>
     <details key="prefix" value="Amalthea"/>
     <details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
@@ -14,7 +14,7 @@
     <details key="creationSubmenus" value="true"/>
     <details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
     <details key="loadInitialization" value="false"/>
-    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
+    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
     <details key="decoration" value="Live"/>
     <details key="collapseAllAction" value="true"/>
     <details key="expandAllAction" value="true"/>
@@ -24,10 +24,10 @@
   </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="Amalthea" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+        eType="ecore:EDataType ecore.ecore#//EString"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="get" value="return &quot;0.9.6&quot;;"/>
+        <details key="get" value="return &quot;0.9.7&quot;;"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
@@ -58,6 +58,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespaces" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
         eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
@@ -88,10 +90,51 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="INamed: Name attribute"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+    <eOperations name="getNamedContainer" unique="false" eType="#//INamed">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getQualifiedNameSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific name separator."/>
+        <details key="body" value="return &quot;.&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamespace" unique="false" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return null;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType ecore.ecore#//EString"
         defaultValueLiteral="">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -100,68 +143,94 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="IReferable: Computed ID for name based references"/>
     </eAnnotations>
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getEncodedQualifiedName" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
-        <details key="body" value="return &quot;&quot;;"/>
+        <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="encode" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
-      </eAnnotations>
-      <eParameters name="str" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+        eType="ecore:EDataType ecore.ecore#//EString"
         changeable="false" volatile="true" transient="true" derived="true" iD="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
+        <details key="get" value="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDisplayName" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDescription" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyMultiLine" value="true"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="INamespaceMember" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A tag for processes, runnables, events and labels"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagType" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
         eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to this tag.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
         <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Namespace" eSuperTypes="#//ReferableObject">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nextSegments" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false" eOpposite="#//Namespace/previousSegment"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="previousSegment" eType="#//Namespace"
+        changeable="false" eOpposite="#//Namespace/nextSegments">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//INamespaceMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (INamespaceMember) referring to this namespace.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
     <eLiterals name="_undefined_"/>
     <eLiterals name="EQUAL"/>
@@ -183,10 +252,10 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="chunkSize" eType="#//DataSize"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="chunkProcessingTicks" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="transmitRatio" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="1.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true">
@@ -211,12 +280,12 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General time class to define time value and unit."/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt">
+    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ecore.ecore#//EInt">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareTimes(this, t);"/>
       </eAnnotations>
@@ -243,21 +312,21 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
       </eAnnotations>
-      <eParameters name="v" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"/>
+      <eParameters name="v" unique="false" eType="ecore:EDataType ecore.ecore#//ELong"/>
     </eOperations>
     <eOperations name="multiply" unique="false" eType="#//Time">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
       </eAnnotations>
-      <eParameters name="v" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"/>
+      <eParameters name="v" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"/>
     </eOperations>
-    <eOperations name="divide" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble">
+    <eOperations name="divide" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.divideTime(this, t);"/>
       </eAnnotations>
       <eParameters name="t" unique="false" eType="#//Time"/>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//TimeUnit"/>
   </eClassifiers>
@@ -275,7 +344,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General frequency class to define frequency value and unit"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
@@ -297,12 +366,12 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General voltage class to define voltage value and unit"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//VoltageUnit"/>
   </eClassifiers>
@@ -334,23 +403,23 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General data size class to define size (value and unit)"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getNumberBits" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong">
+    <eOperations name="getNumberBits" unique="false" eType="ecore:EDataType ecore.ecore#//ELong">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Convenience methods to retrieve the size in Bits and Bytes"/>
         <details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.BIT);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = bits.longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getNumberBytes" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong">
+    <eOperations name="getNumberBytes" unique="false" eType="ecore:EDataType ecore.ecore#//ELong">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.B);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;long _longValue = bits.longValue();&#xA;&#x9;&#x9;long _divide = (_longValue / 8);&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Math%>.ceil(_divide)).longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataSizeUnit"/>
   </eClassifiers>
@@ -384,18 +453,18 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General data rate class to define rate (value and unit)"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral().replace(&quot;PerSecond&quot;, &quot;/s&quot;);&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt">
+    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ecore.ecore#//EInt">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareDataRates(this, rate);"/>
       </eAnnotations>
       <eParameters name="rate" unique="false" eType="#//DataRate"/>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataRateUnit"/>
   </eClassifiers>
@@ -404,7 +473,7 @@
       <details key="documentation" value="custom property container for map"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Value"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -422,7 +491,7 @@
       <details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyMultiLine" value="true"/>
       </eAnnotations>
@@ -433,7 +502,7 @@
       <details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+        eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReferenceObject" eSuperTypes="#//Value">
@@ -447,7 +516,7 @@
       <details key="documentation" value="Object for using the elementary datatype integer as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LongObject" eSuperTypes="#//Value">
@@ -455,7 +524,7 @@
       <details key="documentation" value="Object for using the elementary datatype long as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"
+        eType="ecore:EDataType ecore.ecore#//ELong"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FloatObject" eSuperTypes="#//Value">
@@ -463,7 +532,7 @@
       <details key="documentation" value="Object for using the elementary datatype float as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+        eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DoubleObject" eSuperTypes="#//Value">
@@ -471,7 +540,7 @@
       <details key="documentation" value="Object for using the elementary datatype double as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BooleanObject" eSuperTypes="#//Value">
@@ -479,7 +548,7 @@
       <details key="documentation" value="Object for using the elementary datatype boolean as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NumericStatistic" abstract="true" interface="true"/>
@@ -487,27 +556,27 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Statistic to provide capabilities for min, max and avg"/>
     </eAnnotations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0f"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SingleValueStatistic" eSuperTypes="#//NumericStatistic">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0f"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="SamplingType">
@@ -532,15 +601,15 @@
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -595,15 +664,15 @@
       eSuperTypes="#//TimeInterval #//ITimeDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedTimeDistribution" abstract="true"
       eSuperTypes="#//ITimeDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -670,67 +739,67 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDiscreteValueDeviation" abstract="true"
       interface="true">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject"/>
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject"/>
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueInterval" abstract="true">
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//ELongObject"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//ELongObject"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueConstant" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Long%>.valueOf(this.getValue()).doubleValue());"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"
+        eType="ecore:EDataType ecore.ecore#//ELong"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueHistogram" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_DV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_DV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_DV(this.getEntries());"/>
       </eAnnotations>
@@ -747,22 +816,22 @@
       eSuperTypes="#//DiscreteValueInterval #//IDiscreteValueDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedDiscreteValueDistribution"
       abstract="true" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
+        eType="ecore:EDataType ecore.ecore#//ELongObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
+        eType="ecore:EDataType ecore.ecore#//ELongObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueBoundaries" eSuperTypes="#//BoundedDiscreteValueDistribution">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -776,7 +845,7 @@
       <details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueUniformDistribution" eSuperTypes="#//BoundedDiscreteValueDistribution">
@@ -788,13 +857,13 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Gauss distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
         eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -805,7 +874,7 @@
       <details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
         lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -814,7 +883,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Beta distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
       </eAnnotations>
@@ -826,67 +895,67 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IContinuousValueDeviation" abstract="true"
       interface="true">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueInterval" abstract="true">
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueConstant" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueHistogram" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_CV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_CV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_CV(this.getEntries());"/>
       </eAnnotations>
@@ -903,22 +972,22 @@
       abstract="true" eSuperTypes="#//ContinuousValueInterval #//IContinuousValueDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedContinuousValueDistribution"
       abstract="true" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueBoundaries" eSuperTypes="#//BoundedContinuousValueDistribution">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -932,7 +1001,7 @@
       <details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueUniformDistribution"
@@ -945,13 +1014,13 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Gauss distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
         eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -962,7 +1031,7 @@
       <details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
         lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -971,7 +1040,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Beta distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
       </eAnnotations>
@@ -988,18 +1057,18 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(this.getLiterals(), _function);"/>
       </eAnnotations>
-      <eParameters name="literal" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+      <eParameters name="literal" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
         eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
@@ -1051,17 +1120,27 @@
       <details key="minInclusive" value="0"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
-        eType="#//Component" containment="true" resolveProxies="false"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject #//IComponentContainer #//IInterfaceContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
         eType="#//System" containment="true" resolveProxies="false"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
+        eType="#//Component" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IInterfaceContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaces" upperBound="-1"
+        eType="#//MainInterface" containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
-        eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
+        eType="#//ComponentInstance" containment="true" resolveProxies="false" eOpposite="#//ComponentInstance/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
-        eType="#//Connector" containment="true" resolveProxies="false"/>
+        eType="#//Connector" containment="true" resolveProxies="false" eOpposite="#//Connector/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
         eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
@@ -1074,10 +1153,40 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentInterface" abstract="true"
+      eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//TypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subInterfaces" upperBound="-1"
+        eType="#//SubInterface" containment="true" resolveProxies="false" eOpposite="#//SubInterface/containingInterface"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MainInterface" eSuperTypes="#//ComponentInterface #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        defaultValueLiteral="1.0"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SubInterface" eSuperTypes="#//ComponentInterface">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingInterface" eType="#//ComponentInterface"
+        changeable="false" eOpposite="#//ComponentInterface/subInterfaces">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
@@ -1086,40 +1195,114 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//ComponentInterface"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentStructure" eSuperTypes="#//ReferableObject">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getContainingStructure" unique="false" eType="#//ComponentStructure">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return &quot;::&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subStructures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//IComponentStructureMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (IComponentStructureMember) referring to this structure.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentStructureMember" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structure" eType="#//ComponentStructure"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
-        eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
-        eType="#//AbstractProcess"/>
+        eType="#//ComponentPort" containment="true" resolveProxies="false" eOpposite="#//ComponentPort/containingComponent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
+        eType="#//AbstractProcess">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
-        eType="#//Runnable"/>
+        eType="#//Runnable">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
-        eType="#//Label"/>
+        eType="#//Label">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
-        eType="#//Semaphore"/>
+        eType="#//Semaphore">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
-        eType="#//OsEvent"/>
+        eType="#//OsEvent">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/componentInstances"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/connectors"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementedInterfaces"
+        upperBound="-1" eType="#//InterfaceChannel" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceChannel" instanceClassName="java.util.Map$Entry">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ComponentInterface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Channel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" lowerBound="1" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
     <eLiterals name="_undefined_"/>
@@ -1374,7 +1557,7 @@
       <details key="documentation" value="Base class for synchronization constraints, which limit the distance between events&#xA;multipleOccurrencesAllowed: Defines whether multiple event occurrences are allowed for analysis&#xA;tolerance: Maximum allowed tolerance"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleOccurrencesAllowed"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="tolerance" lowerBound="1"
         eType="#//Time" containment="true" resolveProxies="false"/>
@@ -1442,7 +1625,7 @@
       <details key="documentation" value="A repetition constraint prescribes the distribution of a single event during runtime."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//EntityEvent"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="span" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="span" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lower" eType="#//Time"
         containment="true" resolveProxies="false"/>
@@ -1463,10 +1646,10 @@
   <eClassifiers xsi:type="ecore:EClass" name="DataAge" abstract="true"/>
   <eClassifiers xsi:type="ecore:EClass" name="DataAgeCycle" eSuperTypes="#//DataAge">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="minimumCycle" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCycle" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataAgeTime" eSuperTypes="#//DataAge">
@@ -1505,7 +1688,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//CPUPercentageMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="hardwareContext" eType="#//ProcessingUnit"/>
   </eClassifiers>
@@ -1519,14 +1702,14 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//PercentageMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CountRequirementLimit" eSuperTypes="#//RequirementLimit">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//CountMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TimeRequirementLimit" eSuperTypes="#//RequirementLimit">
@@ -1659,7 +1842,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CustomEvent" eSuperTypes="#//TriggerEvent">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="explicitTriggers" upperBound="-1"
         eType="#//CustomEventTrigger" changeable="false" volatile="true" transient="true"
         derived="true">
@@ -1846,14 +2029,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Frequency"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="clockGating" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PowerDomain" eSuperTypes="#//HwDomain">
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Voltage"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="powerGating" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProcessingUnit" eSuperTypes="#//HwModule #//HwDestination #//HwPathElement">
@@ -1893,12 +2076,12 @@
         eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;final &lt;%java.lang.String%> featureName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;category>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = featureName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;feature>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
       </eAnnotations>
@@ -1909,27 +2092,27 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="portType" unique="false"
         eType="#//PortType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="portInterface" unique="false"
         eType="#//PortInterface"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="delegated" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
@@ -1953,9 +2136,9 @@
         eType="#//HwConnection" containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwConnection" eSuperTypes="#//ReferableBaseObject #//HwPathElement #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort">
@@ -1980,7 +2163,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="port1" eType="#//HwPort"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="port2" eType="#//HwPort"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="internal" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
@@ -2111,16 +2294,16 @@
         eType="#//CacheType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="writeStrategy" unique="false"
         eType="#//WriteStrategy"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nWays" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nWays" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="coherency" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusive" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="hitRate" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPath" abstract="true">
@@ -2246,7 +2429,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="controller" lowerBound="1"
         eType="#//InterruptController"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
+        eType="ecore:EDataType ecore.ecore#//EIntegerObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RunnableAllocation" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scheduler" lowerBound="1"
@@ -2272,7 +2455,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
         upperBound="-1" eType="#//Section">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memory" lowerBound="1"
@@ -2315,20 +2498,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataStability">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
         eType="#//AccessMultiplicity"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="level" unique="false" eType="#//DataStabilityLevel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NonAtomicDataCoherency">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
         eType="#//AccessMultiplicity"/>
   </eClassifiers>
@@ -2358,13 +2541,13 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="semaphoreType" unique="false"
         eType="#//SemaphoreType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priorityCeilingProtocol"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphoreAccesses" upperBound="-1"
         eType="#//SemaphoreAccess" changeable="false" volatile="true" transient="true"
@@ -2497,7 +2680,7 @@
       <details key="documentation" value="Common scheduling parameters"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
+        eType="ecore:EDataType ecore.ecore#//EIntegerObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="minBudget" eType="#//Time"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="maxBudget" eType="#//Time"
@@ -2510,9 +2693,9 @@
       <details key="documentation" value="Parameter extensions (used for scheduling algorithms)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Algorithm" abstract="true" eSuperTypes="#//BaseObject"/>
   <eClassifiers xsi:type="ecore:EClass" name="InterruptSchedulingAlgorithm" abstract="true"
@@ -2563,7 +2746,7 @@
       <details key="documentation" value="Proportionate Fair (Pfair) Scheduling&#xA;(global scheduling algorithm)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantSizeNs" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PfairPD2" eSuperTypes="#//Pfair">
@@ -2666,11 +2849,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="VendorOperatingSystem" eSuperTypes="#//OperatingSystem">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="osName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OsOverhead" eSuperTypes="#//ReferableBaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="apiOverhead" eType="#//OsAPIOverhead"
@@ -2831,18 +3014,18 @@
   <eClassifiers xsi:type="ecore:EClass" name="ModeValueMapEntry" instanceClassName="java.util.Map$Entry">
     <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeValue" abstract="true" eSuperTypes="#//BaseObject">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -2851,18 +3034,18 @@
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xifexpression = null;&#xA;&#x9;if ((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>))&#xA;&#x9;{&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _value = &lt;%this%>.getValue();&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, _value));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;_xifexpression = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>)mode).getLiterals(), _function);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getInteger" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject">
+    <eOperations name="getInteger" unique="false" eType="ecore:EDataType ecore.ecore#//EIntegerObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.Integer%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%java.lang.Integer%> _xifexpression = null;&#xA;&#x9;if (((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>) &amp;&amp; this.getValue().matches(&quot;-?\\d+&quot;)))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Integer%>.valueOf(&lt;%java.lang.Integer%>.parseInt(this.getValue()));&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeAssignment" eSuperTypes="#//ModeValue"/>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunction" eSuperTypes="#//BaseObject">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;if (_isSatisfiedBy)&#xA;&#x9;{&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;return false;"/>
       </eAnnotations>
@@ -2874,20 +3057,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunctionEntry" abstract="true"
       interface="true" eSuperTypes="#//BaseObject">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eParameters name="assignment" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeCondition" abstract="true" interface="true"
       eSuperTypes="#//ModeConditionDisjunctionEntry">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="relation" unique="false"
         eType="#//RelationalOperator"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeValueCondition" eSuperTypes="#//ModeValue #//ModeCondition">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue = _get;&#xA;return ((labelValue == null) || &lt;%com.google.common.base.Objects%>.equal(labelValue, this.getValue()));"/>
       </eAnnotations>
@@ -2895,7 +3078,7 @@
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLabelCondition" eSuperTypes="#//ModeCondition">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel1());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue1 = _get;&#xA;&lt;%java.lang.String%> _get_1 = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get_1=context.get(this.getLabel2());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue2 = _get_1;&#xA;return (((labelValue1 == null) || (labelValue2 == null)) || &lt;%com.google.common.base.Objects%>.equal(labelValue1, labelValue2));"/>
       </eAnnotations>
@@ -2907,7 +3090,7 @@
         eType="#//ModeLabel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionConjunction" eSuperTypes="#//ModeConditionDisjunctionEntry">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;boolean _not = (!_isSatisfiedBy);&#xA;&#x9;if (_not)&#xA;&#x9;{&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;return true;"/>
       </eAnnotations>
@@ -2952,9 +3135,9 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="occurrencesPerStep" lowerBound="1"
         eType="#//IContinuousValueDeviation" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIncreasePerStep" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxDecreasePerStep" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="scenario" eType="#//Scenario"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -3010,7 +3193,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="occurrenceMinDistance"
         eType="#//Time" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrenceCount" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EventStimulus" eSuperTypes="#//Stimulus">
@@ -3031,7 +3214,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ArrivalCurveEntry" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfOccurrences" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lowerTimeBorder" eType="#//Time"
         containment="true" resolveProxies="false"/>
@@ -3080,8 +3263,8 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="if ((&lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(mode) || &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(literal)))&#xA;{&#xA;&#x9;return null;&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>> _modes = this.getModes();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _findFirst = null;&#xA;if (_modes!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((it instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) &amp;&amp; &lt;%com.google.common.base.Objects%>.equal(it.getName(), mode)));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>>findFirst(_modes, _function);&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>> _literals = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst)!=null)&#xA;{&#xA;&#x9;_literals=((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst).getLiterals();&#xA;}&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _findFirst_1 = null;&#xA;if (_literals!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function_1 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst_1=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(_literals, _function_1);&#xA;}&#xA;return _findFirst_1;"/>
       </eAnnotations>
-      <eParameters name="mode" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-      <eParameters name="literal" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+      <eParameters name="mode" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
+      <eParameters name="literal" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="isrs" upperBound="-1" eType="#//ISR"
         containment="true" resolveProxies="false"/>
@@ -3138,7 +3321,7 @@
         <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the abstract process belongs to.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -3147,7 +3330,7 @@
       <details key="documentation" value="Possibility to define general custom elements"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProcessChain" eSuperTypes="#//ReferableBaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3160,22 +3343,22 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Generalizes interrupt service routines and tasks"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
         eType="#//Stimulus"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ICallGraphItemContainer" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="IActivityGraphItemContainer" abstract="true"
       interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
-        eType="#//CallGraphItem" containment="true" resolveProxies="false"/>
+        eType="#//ActivityGraphItem" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraph" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraph" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes the different execution paths of a process or runnable"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraphItem" abstract="true" eSuperTypes="#//BaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraphItem" abstract="true" eSuperTypes="#//BaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract item of a call graph"/>
     </eAnnotations>
@@ -3195,8 +3378,17 @@
         <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingActivityGraph"
+        eType="#//ActivityGraph" changeable="false" volatile="true" transient="true"
+        derived="true" resolveProxies="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, the selected path depends on the value of the provided mode conditions"/>
     </eAnnotations>
@@ -3205,27 +3397,27 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//ModeSwitchDefault"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ModeSwitch.&#xA;It describes a path of the switch and the required mode condition to use this path"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
         eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//ICallGraphItemContainer"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, each path has a probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
         eType="#//ProbabilitySwitchEntry" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ProbabilitySwitch&#xA;It describes a path of the switch and it's probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="probability" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Counter" eSuperTypes="#//BaseObject">
@@ -3237,7 +3429,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
         eType="#//NonNegativeLong" defaultValueLiteral="0"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Let the process wait for a combination of events defined by eventMask&#xA;maskType defines if the events in eventMask are linked by a AND or OR"/>
     </eAnnotations>
@@ -3260,7 +3452,7 @@
     <eLiterals name="active"/>
     <eLiterals name="passive"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Sets the events of eventMask&#xA;These events can be set for a specific process, if there is no process, is is global (for all processes)&#xA;If there is a process, it is possible to set the event for a specific process instance that is currently activated"/>
     </eAnnotations>
@@ -3270,7 +3462,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Clears the events of eventMask"/>
     </eAnnotations>
@@ -3291,7 +3483,7 @@
       <details key="documentation" value="A event that can be set, cleared and waited for by a process"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="communicationOverheadInBit"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
         eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
@@ -3303,7 +3495,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers a stimulus to activate its processes"/>
     </eAnnotations>
@@ -3312,19 +3504,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Migrates task to core of resource owner"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="resourceOwner" lowerBound="1"
         eType="#//TaskScheduler"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers scheduler"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Terminates the process"/>
     </eAnnotations>
@@ -3338,7 +3530,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="preemption" unique="false"
         eType="#//Preemption"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleTaskActivationLimit"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISR" eSuperTypes="#//Process">
@@ -3382,10 +3574,10 @@
   <eClassifiers xsi:type="ecore:EClass" name="ChainedProcessPrototype" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="prototype" lowerBound="1"
         eType="#//ProcessPrototype"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="apply" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="apply" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralPrecedence" abstract="true" eSuperTypes="#//BaseObject">
@@ -3446,6 +3638,10 @@
     <eLiterals name="out"/>
     <eLiterals name="inout"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IDependsOn" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
+        containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataDependency" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
         eType="#//Label"/>
@@ -3462,13 +3658,13 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject #//IDependsOn">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;final &lt;%java.lang.String%> runName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;runnable>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = runName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;parameter>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
       </eAnnotations>
@@ -3482,16 +3678,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
         eType="#//DirectionType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//TypeDefinition"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement">
+  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
-    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//CallGraphItem">
+    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//ActivityGraphItem">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getFirstActivation" unique="false" eType="#//Activation">
@@ -3503,19 +3698,19 @@
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
         eType="#//RunnableParameter" containment="true" resolveProxies="false" eOpposite="#//RunnableParameter/containingRunnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
         eType="#//Activation"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="callback" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Marker if runnable is used as callback."/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="service" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Marker if runnable is used as a service."/>
@@ -3548,21 +3743,22 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Data representation, which can be accessed by run entities."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="constant" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Defines the label as a constant, not modifiable entity"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bVolatile" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Defines if the label value is volatile or persistent to survive shutdown and start of system"/>
@@ -3597,14 +3793,17 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="channelAccesses" upperBound="-1"
         eType="#//ChannelAccess" changeable="false" volatile="true" transient="true"
@@ -3618,31 +3817,31 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLabel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="isEnum" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isEnum" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="isNumeric" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isNumeric" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>);"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="mode" lowerBound="1" eType="#//Mode"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="LabelDataStability">
     <eLiterals name="_undefined_"/>
@@ -3680,12 +3879,12 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a object that describes computation"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of the execution needs of a Runnable (default and core-specific)"/>
     </eAnnotations>
@@ -3694,7 +3893,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NeedEntry" instanceClassName="java.util.Map$Entry">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//IDiscreteValueDeviation"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -3719,26 +3918,26 @@
     <eLiterals name="increment"/>
     <eLiterals name="decrement"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a mode label access of a run entity."/>
     </eAnnotations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" unique="false"
         eType="#//ModeLabelAccessEnum"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Just used in case that this access writes a value to a Mode-Label.&#xA;It can be used to define which mode value is written to the label."/>
       </eAnnotations>
@@ -3750,7 +3949,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable #//IDependsOn">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a label access of a run entity."/>
     </eAnnotations>
@@ -3777,13 +3976,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" unique="false"
         eType="#//LabelAccessImplementation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Channel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="transmissionPolicy" eType="#//TransmissionPolicy"
         containment="true" resolveProxies="false"/>
@@ -3793,13 +3990,13 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="receiveOperation" unique="false"
         eType="#//ReceiveOperation"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataMustBeNew" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIndex" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ReceiveOperation">
@@ -3831,7 +4028,7 @@
     <eLiterals name="implicit"/>
     <eLiterals name="timed"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes an semaphore access"/>
     </eAnnotations>
@@ -3852,15 +4049,15 @@
     <eLiterals name="release"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverCommunication" abstract="true"
-      eSuperTypes="#//CallGraphItem">
+      eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for sender-receiver-communication (it can be read or write)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="buffered" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverRead" eSuperTypes="#//SenderReceiverCommunication">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3874,13 +4071,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="notifiedRunnables" upperBound="-1"
         eType="#//Runnable"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for client/server communication&#xA;It refers to a required runnable that describes the called server operation"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serverRunnable" lowerBound="1"
         eType="#//Runnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SynchronousServerCall" eSuperTypes="#//ServerCall">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3911,23 +4108,23 @@
     <eLiterals name="passive_wait"/>
     <eLiterals name="non_blocking"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//CallGraphItem #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//ActivityGraphItem #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes a group of deviation runnable items"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject">
-    <eOperations name="getName" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject #//IDependsOn">
+    <eOperations name="getName" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="computeUniqueName" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingCall" eType="#//RunnableCall"
@@ -3938,13 +4135,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//RunnableParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//CallGraphItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//ActivityGraphItem #//ITaggable">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a runnable call of a run entity."/>
     </eAnnotations>
@@ -3983,7 +4178,7 @@
     </eLiterals>
     <eLiterals name="SingleCorePrioSafe"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Explicitly trigger a custom event from a runnable."/>
     </eAnnotations>
@@ -4018,7 +4213,7 @@
       <details key="documentation" value="Representation of an array data type"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
@@ -4035,18 +4230,18 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Alias" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="target" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the target environment"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Corresponding name in the target environment"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//INamespaceMember">
     <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
         containment="true" resolveProxies="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4055,12 +4250,16 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataTypeDefinition" eSuperTypes="#//TypeDefinition">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BaseTypeDefinition" eSuperTypes="#//TypeDefinition">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Basic data type definition, including naming (alias) in target environments"/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="aliases" upperBound="-1"
         eType="#//Alias" containment="true" resolveProxies="false">
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.genmodel b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.genmodel
index 576df15..b4608d6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.genmodel
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/ecore/amalthea.genmodel
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"
     modelDirectory="/org.eclipse.app4mc.amalthea.model/src" creationIcons="false"
     creationSubmenus="true" editDirectory="/org.eclipse.app4mc.amalthea.model.edit/src-gen"
     editorDirectory="/org.eclipse.app4mc.amalthea.model.editor/src-gen" modelPluginID="org.eclipse.app4mc.amalthea.model"
@@ -487,7 +487,7 @@
     <genDataTypes ecoreDataType="amalthea.ecore#//NonNegativeDouble"/>
     <genClasses ecoreClass="amalthea.ecore#//Amalthea">
       <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Amalthea/version"
-          get="return &quot;0.9.6&quot;;"/>
+          get="return &quot;0.9.7&quot;;"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/commonElements"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/swModel"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/hwModel"/>
@@ -503,6 +503,7 @@
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//CommonElements">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/tags"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/namespaces"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/coreClassifiers"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/memoryClassifiers"/>
     </genClasses>
@@ -516,17 +517,26 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ITaggable/tags"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//INamed">
-      <genFeatures createChild="false" propertyCategory="Main" ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/name"/>
+      <genFeatures createChild="false" propertyCategory="Basic" ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/name"/>
+      <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/qualifiedName" get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamedContainer" body="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamePrefix" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getQualifiedNameSegments"
+          body="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getDefaultNameSeparator"
+          body="return &quot;.&quot;;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamespace" body="return null;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//IReferable">
       <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EAttribute amalthea.ecore#//IReferable/uniqueName" get="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);">
+          ecoreFeature="ecore:EAttribute amalthea.ecore#//IReferable/uniqueName" get="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//IReferable/getNamePrefix" body="return &quot;&quot;;"/>
-      <genOperations ecoreOperation="amalthea.ecore#//IReferable/encode" body="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}">
-        <genParameters ecoreParameter="amalthea.ecore#//IReferable/encode/str"/>
-      </genOperations>
+      <genOperations ecoreOperation="amalthea.ecore#//IReferable/getEncodedQualifiedName"
+          body="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       <genOperations ecoreOperation="amalthea.ecore#//IReferable/validateInvariants"
           body="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);">
         <genParameters ecoreParameter="amalthea.ecore#//IReferable/validateInvariants/diagnostics"/>
@@ -539,6 +549,10 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//IDescription">
       <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute amalthea.ecore#//IDescription/description"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//INamespaceMember">
+      <genFeatures createChild="false" propertyCategory="Basic" propertySortChoices="true"
+          ecoreFeature="ecore:EReference amalthea.ecore#//INamespaceMember/namespace"/>
+    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Tag">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Tag/tagType"/>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
@@ -546,6 +560,18 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//Namespace">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/nextSegments"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/previousSegment"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/memberObjects"
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations ecoreOperation="amalthea.ecore#//Namespace/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Classifier"/>
     <genClasses ecoreClass="amalthea.ecore#//CoreClassifier"/>
     <genClasses ecoreClass="amalthea.ecore#//MemoryClassifier"/>
@@ -870,13 +896,20 @@
     <genClasses ecoreClass="amalthea.ecore#//ModeLiteral">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//ModeLiteral/containingMode"/>
-      <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/toString" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ComponentsModel">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/components"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/structures"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/systems"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IComponentContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IComponentContainer/components"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IInterfaceContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IInterfaceContainer/interfaces"/>
+    </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//ISystem">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ISystem/componentInstances"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ISystem/connectors"/>
@@ -886,36 +919,80 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//Port">
-      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//Port/containingComponent"/>
-      <genOperations ecoreOperation="amalthea.ecore#//Port/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//ComponentInterface">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInterface/datatype"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInterface/subInterfaces"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Component">
+    <genClasses ecoreClass="amalthea.ecore#//MainInterface" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//MainInterface/version"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//SubInterface" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//SubInterface/containingInterface"/>
+      <genOperations ecoreOperation="amalthea.ecore#//SubInterface/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//ComponentPort">
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ComponentPort/containingComponent"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//ComponentPort/kind"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentPort/interface"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentPort/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//ComponentStructure" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//ComponentStructure/structureType"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentStructure/subStructures"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ComponentStructure/memberObjects"
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getContainingStructure"
+          body="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getDefaultNameSeparator"
+          body="return &quot;::&quot;;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IComponentStructureMember">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//IComponentStructureMember/structure"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//Component" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/ports"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/tasks"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/runnables"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/labels"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/semaphores"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/osEvents"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/processes"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/runnables"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/labels"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/semaphores"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/osEvents"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Composite"/>
     <genClasses ecoreClass="amalthea.ecore#//System"/>
     <genClasses ecoreClass="amalthea.ecore#//ComponentInstance">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInstance/containingSystem"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInstance/type"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentInstance/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Connector">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/containingSystem"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/sourcePort"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/targetPort"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/implementedInterfaces"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//InterfaceChannel">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//InterfaceChannel/key"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//InterfaceChannel/value"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//QualifiedPort">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//QualifiedPort/instance"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//QualifiedPort/port"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//InterfacePort">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//InterfacePort/interfaceName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//InterfacePort/kind"/>
-    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ConfigModel">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ConfigModel/eventsToTrace"/>
     </genClasses>
@@ -1237,7 +1314,8 @@
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//HwFeature/containingCategory"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//HwFeature/value"/>
-      <genOperations ecoreOperation="amalthea.ecore#//HwFeature/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwFeature/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//HwFeature/toString" body="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;final &lt;%java.lang.String%> featureName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;category>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = featureName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;feature>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//HwPort">
@@ -1251,7 +1329,8 @@
           ecoreFeature="ecore:EReference amalthea.ecore#//HwPort/connections" get="&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port1 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port1();&#xA;&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port2 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port2();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwConnection%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwPort_Connections(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_hwConnection_Port1, _hwConnection_Port2)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//HwPort/getNamePrefix" body="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwPort/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ConnectionHandler">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ConnectionHandler/definition"/>
@@ -1265,8 +1344,8 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//HwConnection/port2"/>
       <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EAttribute amalthea.ecore#//HwConnection/internal" get="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;return (_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ConnectionHandler%>);"/>
-      <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getNamePrefix"
-          body="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getPorts" body="return &lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>unmodifiableEList(&lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>filterNull(&lt;%org.eclipse.xtext.xbase.lib.CollectionLiterals%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>newArrayList(this.getPort1(), this.getPort2()))));"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//HwAccessElement">
@@ -1368,7 +1447,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//MemoryMapping/memoryPositionAddress"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//PhysicalSectionMapping">
-      <genFeatures notify="false" createChild="false" propertyCategory="Main" propertySortChoices="true"
+      <genFeatures notify="false" createChild="false" propertyCategory="Basic" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//PhysicalSectionMapping/origin"/>
       <genFeatures notify="false" createChild="false" propertyCategory="Memory" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//PhysicalSectionMapping/memory"/>
@@ -1752,7 +1831,7 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//AbstractProcess">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//AbstractProcess/referringComponents"
-          get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));">
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
@@ -1763,24 +1842,29 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ProcessChain/processes"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Process">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/callGraph"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/activityGraph"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/stimuli"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//ICallGraphItemContainer">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ICallGraphItemContainer/items"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IActivityGraphItemContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IActivityGraphItemContainer/items"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//CallGraph"/>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//CallGraphItem">
+    <genClasses ecoreClass="amalthea.ecore#//ActivityGraph"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//ActivityGraphItem">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//CallGraphItem/containingProcess"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingProcess"
           get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Process%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Process%>.class);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//CallGraphItem/containingRunnable"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingRunnable"
           get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingActivityGraph"
+          get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ModeSwitch">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ModeSwitch/entries"/>
@@ -1870,6 +1954,9 @@
     <genClasses ecoreClass="amalthea.ecore#//OrderPrecedenceSpec">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//OrderPrecedenceSpec/orderType"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IDependsOn">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IDependsOn/dependsOn"/>
+    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//DataDependency">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataDependency/labels"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataDependency/parameters"/>
@@ -1885,16 +1972,15 @@
           ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/containingRunnable"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//RunnableParameter/direction"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/dataType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/dependsOn"/>
-      <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/getNamePrefix"
-          body="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/toString"
           body="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;final &lt;%java.lang.String%> runName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;runnable>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = runName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;parameter>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Runnable">
+    <genClasses ecoreClass="amalthea.ecore#//Runnable" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/executionCondition"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/parameters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/callGraph"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/activityGraph"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/activations"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Runnable/callback"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Runnable/service"/>
@@ -1910,11 +1996,11 @@
           get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Runnables = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Runnables();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnable_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Runnables)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//Runnable/getRunnableItems" body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//Runnable/getRunnableItems" body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       <genOperations ecoreOperation="amalthea.ecore#//Runnable/getFirstActivation"
           body="return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Activation%>>head(this.getActivations());"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Label">
+    <genClasses ecoreClass="amalthea.ecore#//Label" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Label/dataType"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Label/constant"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Label/bVolatile"/>
@@ -1931,7 +2017,7 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Channel">
+    <genClasses ecoreClass="amalthea.ecore#//Channel" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Channel/elementType"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Channel/defaultElements"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Channel/maxElements"/>
@@ -1997,7 +2083,6 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//LabelAccess/transmissionPolicy"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//LabelAccess/dataStability"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//LabelAccess/implementation"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//LabelAccess/dependsOn"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//ChannelAccess">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ChannelAccess/data"/>
@@ -2044,12 +2129,11 @@
     <genClasses ecoreClass="amalthea.ecore#//CallArgument">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/containingCall"/>
-      <genFeatures notify="false" createChild="false" propertyCategory="Main" propertySortChoices="true"
+      <genFeatures notify="false" createChild="false" propertyCategory="Basic" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/parameter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/dependsOn"/>
-      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getName" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
-      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/computeUniqueName"
-          body="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getName" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getNamePrefixSegments"
+          body="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//RunnableCall">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableCall/runnable"/>
@@ -2085,10 +2169,10 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//TypeDefinition">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//TypeDefinition/size"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//DataTypeDefinition">
+    <genClasses ecoreClass="amalthea.ecore#//DataTypeDefinition" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataTypeDefinition/dataType"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//BaseTypeDefinition">
+    <genClasses ecoreClass="amalthea.ecore#//BaseTypeDefinition" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//BaseTypeDefinition/aliases"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Activation"/>
@@ -2139,333 +2223,333 @@
     </genClasses>
   </genPackages>
   <genPackages prefix="Ecore" basePackage="org.eclipse.emf" disposableProviderFactory="true"
-      multipleEditorPages="false" contentTypeIdentifier="org.eclipse.emf.ecore" ecorePackage="../../../org.eclipse.emf.ecore/model/Ecore.ecore#/">
+      multipleEditorPages="false" contentTypeIdentifier="org.eclipse.emf.ecore" ecorePackage="ecore.ecore#/">
     <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter">
       <genAnnotations source="Ecore.xsd"/>
     </genAnnotations>
     <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter.xmi">
       <genAnnotations source="EcoreXMI.xsd"/>
     </genAnnotations>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBooleanObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByte"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EChar"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ECharacterObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEList">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEList/E"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBigDecimal"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBigInteger"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBoolean"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBooleanObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByte"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByteArray"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByteObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EChar"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ECharacterObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDate"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDiagnosticChain"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDouble"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDoubleObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EEList">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EEList/E"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumerator"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFeatureMap"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFeatureMapEntry"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloatObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaClass">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaClass/T"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EEnumerator"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFeatureMap"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFeatureMapEntry"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFloat"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFloatObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EInt"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EIntegerObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EJavaClass">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EJavaClass/T"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap/K"/>
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap/V"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EJavaObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ELong"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ELongObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EMap">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EMap/K"/>
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EMap/V"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResourceSet"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EShort"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EShortObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETreeIterator">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETreeIterator/E"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EResource"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EResourceSet"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EShort"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EShortObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EString"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ETreeIterator">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//ETreeIterator/E"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInvocationTargetException"/>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute">
+    <genDataTypes ecoreDataType="ecore.ecore#//EInvocationTargetException"/>
+    <genClasses ecoreClass="ecore.ecore#//EAttribute">
       <genFeatures createChild="false" propertyDescription="Whether the value of this attribute uniquely identifies an object within its containing resource"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute/iD"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EAttribute/iD"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The data type of this attribute"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute/eAttributeType"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EAttribute/eAttributeType"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">
+    <genClasses ecoreClass="ecore.ecore#//EAnnotation">
       <genFeatures createChild="false" propertyDescription="An identifier, typically an absolute URI, that uniquely identifies this kind of annotation"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/source"/>
-      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/details"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/eModelElement"/>
-      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/contents"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EAnnotation/source"/>
+      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/details"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/eModelElement"/>
+      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/contents"/>
       <genFeatures notify="false" createChild="false" propertyDescription="Objects referenced by this annotation"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/references"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/references"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
+    <genClasses ecoreClass="ecore.ecore#//EClass">
       <genFeatures createChild="false" propertyDescription="Whether instances of this class can be created"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/abstract"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClass/abstract"/>
       <genFeatures createChild="false" propertyDescription="Whether no corresponding implementation will be generated for this class"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/interface"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClass/interface"/>
       <genFeatures createChild="false" propertyDescription="The immediate super types of this class"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eSuperTypes"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eSuperTypes"/>
       <genFeatures property="None" children="true" createChild="true" propertyCategory=""
-          propertyDescription="The operations defined by this class" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eOperations"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllAttributes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllReferences"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eReferences"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAttributes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllContainments"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllOperations"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllStructuralFeatures"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllSuperTypes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eIDAttribute"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eStructuralFeatures"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eGenericSuperTypes"/>
+          propertyDescription="The operations defined by this class" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eOperations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllAttributes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllReferences"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eReferences"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAttributes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllContainments"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllOperations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllStructuralFeatures"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllSuperTypes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eIDAttribute"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eStructuralFeatures"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eGenericSuperTypes"/>
       <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllGenericSuperTypes"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/isSuperTypeOf">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/isSuperTypeOf/someClass"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllGenericSuperTypes"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/isSuperTypeOf">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/isSuperTypeOf/someClass"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureCount"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature/featureID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureCount"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEStructuralFeature">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEStructuralFeature/featureID"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureID">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureID/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureID">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getFeatureID/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature.1/featureName"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEStructuralFeature.1">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEStructuralFeature.1/featureName"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationCount"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEOperation">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEOperation/operationID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOperationCount"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEOperation">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEOperation/operationID"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationID">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationID/operation"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOperationID">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getOperationID/operation"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOverride">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOverride/operation"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOverride">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getOverride/operation"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureType">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureType/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureType">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getFeatureType/feature"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier">
+    <genClasses image="false" ecoreClass="ecore.ecore#//EClassifier">
       <genFeatures createChild="false" propertyDescription="The erased instance class name denoted by this classifier"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceClassName">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceClassName">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceClass"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceClass"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The default value for features of this type"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/defaultValue"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/defaultValue"/>
       <genFeatures createChild="false" propertyDescription="The full instance type name denoted by this classifier"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceTypeName"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/ePackage"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/eTypeParameters"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/isInstance">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/isInstance/object"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceTypeName"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClassifier/ePackage"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClassifier/eTypeParameters"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClassifier/isInstance">
+        <genParameters ecoreParameter="ecore.ecore#//EClassifier/isInstance/object"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/getClassifierID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClassifier/getClassifierID"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType">
+    <genClasses ecoreClass="ecore.ecore#//EDataType">
       <genFeatures createChild="false" propertyDescription="Whether a value of this data type can be serialized using the factory"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType/serializable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EDataType/serializable"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/eLiterals"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral/name"/>
+    <genClasses ecoreClass="ecore.ecore#//EEnum">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EEnum/eLiterals"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteral">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteral/name"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral.1/value"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteral.1">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteral.1/value"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteralByLiteral">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteralByLiteral/literal"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteralByLiteral">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteralByLiteral/literal"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral">
+    <genClasses ecoreClass="ecore.ecore#//EEnumLiteral">
       <genFeatures createChild="false" propertyDescription="The integer value associated with this enumerator"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/value"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/instance"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/value"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/instance"/>
       <genFeatures createChild="false" propertyDescription="The literal value associated with this enumerator"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/literal"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/eEnum"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/literal"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EEnumLiteral/eEnum"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory">
+    <genClasses ecoreClass="ecore.ecore#//EFactory">
       <genFeatures property="Readonly" createChild="false" propertyDescription="The package corresponding to this factory"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/ePackage"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/create">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/create/eClass"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EFactory/ePackage"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/create">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/create/eClass"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString/eDataType"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString/literalValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/createFromString">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/createFromString/eDataType"/>
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/createFromString/literalValue"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString/eDataType"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString/instanceValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/convertToString">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/convertToString/eDataType"/>
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/convertToString/instanceValue"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/eAnnotations"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/getEAnnotation">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/getEAnnotation/source"/>
+    <genClasses image="false" ecoreClass="ecore.ecore#//EModelElement">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EModelElement/eAnnotations"/>
+      <genOperations ecoreOperation="ecore.ecore#//EModelElement/getEAnnotation">
+        <genParameters ecoreParameter="ecore.ecore#//EModelElement/getEAnnotation/source"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement">
+    <genClasses image="false" ecoreClass="ecore.ecore#//ENamedElement">
       <genFeatures createChild="false" propertyDescription="The name of this model element"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement/name"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ENamedElement/name"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eClass"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsProxy"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eResource"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainer"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainingFeature"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainmentFeature"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContents"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eAllContents"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eCrossReferences"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet/feature"/>
+    <genClasses ecoreClass="ecore.ecore#//EObject">
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eClass"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eIsProxy"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eResource"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainer"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainingFeature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainmentFeature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContents"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eAllContents"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eCrossReferences"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eGet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1/feature"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1/resolve"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eGet.1">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet.1/feature"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet.1/resolve"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet/feature"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet/newValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eSet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eSet/feature"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eSet/newValue"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsSet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsSet/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eIsSet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eIsSet/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eUnset">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eUnset/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eUnset">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eUnset/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke/operation"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke/arguments"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eInvoke">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eInvoke/operation"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eInvoke/arguments"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eContainingClass"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eTypeParameters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eParameters"/>
+    <genClasses ecoreClass="ecore.ecore#//EOperation">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eContainingClass"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eTypeParameters"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eParameters"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The exceptions thrown by this operation"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eExceptions"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eGenericExceptions"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/getOperationID"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/isOverrideOf">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/isOverrideOf/someOperation"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eExceptions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eGenericExceptions"/>
+      <genOperations ecoreOperation="ecore.ecore#//EOperation/getOperationID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EOperation/isOverrideOf">
+        <genParameters ecoreParameter="ecore.ecore#//EOperation/isOverrideOf/someOperation"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage">
+    <genClasses ecoreClass="ecore.ecore#//EPackage">
       <genFeatures createChild="false" propertyCategory="" propertyDescription="The universally unique namespace identifier, typically an absolute URI, for this package"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/nsURI"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EPackage/nsURI"/>
       <genFeatures createChild="false" propertyDescription="The namespace prefix used by default when serializing instances of the package's classes"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/nsPrefix"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EPackage/nsPrefix"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The factory corresponding to this package"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eFactoryInstance">
+          ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eFactoryInstance">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eClassifiers"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eSubpackages"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eSuperPackage"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/getEClassifier">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/getEClassifier/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eClassifiers"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eSubpackages"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eSuperPackage"/>
+      <genOperations ecoreOperation="ecore.ecore#//EPackage/getEClassifier">
+        <genParameters ecoreParameter="ecore.ecore#//EPackage/getEClassifier/name"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter/eOperation"/>
+    <genClasses ecoreClass="ecore.ecore#//EParameter">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EParameter/eOperation"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference">
+    <genClasses ecoreClass="ecore.ecore#//EReference">
       <genFeatures createChild="false" propertyDescription="Whether this reference represents a composite relationship"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/containment"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/containment"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether this reference has as its opposite a containment reference"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/container"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/container"/>
       <genFeatures createChild="false" propertyDescription="Whether this reference resolves proxies automatically"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/resolveProxies"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/resolveProxies"/>
       <genFeatures createChild="false" propertyDescription="The reference that represents the bidirectional opposite of this reference"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eOpposite"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EReference/eOpposite"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The target class of the reference"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eReferenceType">
+          ecoreFeature="ecore:EReference ecore.ecore#//EReference/eReferenceType">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures notify="false" createChild="false" propertyDescription="The attributes of the referenced class that uniquely identify a referenced instance"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eKeys"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EReference/eKeys"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature">
+    <genClasses image="false" ecoreClass="ecore.ecore#//EStructuralFeature">
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature can be changed"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/changeable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/changeable"/>
       <genFeatures createChild="false" propertyDescription="Whether no field will be generated for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/volatile"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/volatile"/>
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature will be serialized"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/transient"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/transient"/>
       <genFeatures createChild="false" propertyDescription="The literal representation of the default value for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/defaultValueLiteral"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/defaultValueLiteral"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The default value for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/defaultValue">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/defaultValue">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures createChild="false" propertyDescription="Whether the value space for this feature includes the state of not being set"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/unsettable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/unsettable"/>
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature is derived from the values of other features"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/derived"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/derived"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The class that defines this feature"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/eContainingClass">
+          ecoreFeature="ecore:EReference ecore.ecore#//EStructuralFeature/eContainingClass">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/getFeatureID"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/getContainerClass"/>
+      <genOperations ecoreOperation="ecore.ecore#//EStructuralFeature/getFeatureID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EStructuralFeature/getContainerClass"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement">
+    <genClasses image="false" ecoreClass="ecore.ecore#//ETypedElement">
       <genFeatures createChild="false" propertyDescription="Whether the order in which values occur is meaningful"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/ordered"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/ordered"/>
       <genFeatures createChild="false" propertyDescription="Whether the same value may occur more than once"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/unique"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/unique"/>
       <genFeatures createChild="false" propertyDescription="The minimum number of values that must occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/lowerBound"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/lowerBound"/>
       <genFeatures createChild="false" propertyDescription="The maximum number of values that may occur; -1 represents unbounded and -2 represents unspecified"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/upperBound"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/upperBound"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether more than one value may occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/many">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/many">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether at least one value must occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/required">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/required">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures createChild="false" propertyDescription="The type of this element"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/eType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/eGenericType"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypedElement/eType"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypedElement/eGenericType"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry">
+    <genClasses ecoreClass="ecore.ecore#//EStringToStringMapEntry">
       <genFeatures createChild="false" propertyCategory="" propertyDescription="The key of this map entry"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry/key"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStringToStringMapEntry/key"/>
       <genFeatures createChild="false" propertyDescription="The value of this map entry"
-          propertyMultiLine="true" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry/value"/>
+          propertyMultiLine="true" ecoreFeature="ecore:EAttribute ecore.ecore#//EStringToStringMapEntry/value"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eUpperBound"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eTypeArguments"/>
+    <genClasses ecoreClass="ecore.ecore#//EGenericType">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eUpperBound"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eTypeArguments"/>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyDescription="The erased type denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eRawType">
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eRawType">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eLowerBound"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eLowerBound"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The type parameter denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eTypeParameter"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eTypeParameter"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The classifier denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eClassifier"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/isInstance">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/isInstance/object"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eClassifier"/>
+      <genOperations ecoreOperation="ecore.ecore#//EGenericType/isInstance">
+        <genParameters ecoreParameter="ecore.ecore#//EGenericType/isInstance/object"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypeParameter">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypeParameter/eBounds"/>
+    <genClasses ecoreClass="ecore.ecore#//ETypeParameter">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypeParameter/eBounds"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xcore/amalthea.xcore.bak b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xcore/amalthea.xcore.bak
index 3fe49b4..7f4cf0b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xcore/amalthea.xcore.bak
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xcore/amalthea.xcore.bak
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,7 @@
 	loadInitialization="false",	// can be removed with Neon.3 ??
 //	dynamicTemplates="true",
 //	templateDirectory="org.eclipse.app4mc.amalthea.model/templates",
-	copyrightText="*******************************************************************************\r\n Copyright (c) 2015-2019 Robert Bosch GmbH and others.\r\n\r\n This program and the accompanying materials are made\r\n available under the terms of the Eclipse Public License 2.0\r\n which is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\n SPDX-License-Identifier: EPL-2.0\r\n\r\n    Generated using Eclipse EMF\r\n\r\n*******************************************************************************",
+	copyrightText="*******************************************************************************\r\n Copyright (c) 2015-2020 Robert Bosch GmbH and others.\r\n\r\n This program and the accompanying materials are made\r\n available under the terms of the Eclipse Public License 2.0\r\n which is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\n SPDX-License-Identifier: EPL-2.0\r\n\r\n    Generated using Eclipse EMF\r\n\r\n*******************************************************************************",
 	decoration="Live",
 	collapseAllAction="true",
 	expandAllAction="true", 
@@ -34,19 +34,16 @@
 
 @Ecore(
 	nsPrefix="am",
-	nsURI="http://app4mc.eclipse.org/amalthea/0.9.6"
+	nsURI="http://app4mc.eclipse.org/amalthea/0.9.7"
 )
 
 package org.eclipse.app4mc.amalthea.model
 
-import java.net.URLEncoder
-import java.nio.charset.StandardCharsets
 import org.eclipse.emf.ecore.EDiagnosticChain
 import org.eclipse.emf.ecore.EMap
 import org.eclipse.emf.ecore.InternalEObject
 import org.eclipse.emf.ecore.util.EcoreEList$UnmodifiableEList
 
-
 // ===============================================================================
 // ===============================================================================
 // 
@@ -59,7 +56,7 @@
 class Amalthea extends BaseObject
 {
 	derived readonly String version get {
-		return "0.9.6"
+		return "0.9.7"
 	}
 	
 	contains CommonElements commonElements
@@ -89,6 +86,7 @@
 class CommonElements extends BaseObject
 {
 	contains Tag[] tags
+	contains Namespace[] namespaces
 	contains CoreClassifier[] coreClassifiers
 	contains MemoryClassifier[] memoryClassifiers
 }
@@ -124,8 +122,41 @@
  */
 interface INamed
 {
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic", notify="true")
 	String name = ""
+
+	op INamed getNamedContainer() {
+		if (eContainer instanceof INamed) eContainer as INamed else null
+	}
+	
+	op String getNamePrefix() {
+		if (namespace === null) return "" else  AmaltheaExtensions.toPlainString(namePrefixSegments, defaultNameSeparator)
+	}
+
+	@GenModel(propertyCategory="Read only")
+	derived readonly String qualifiedName get { AmaltheaExtensions.toPlainString(qualifiedNameSegments, defaultNameSeparator) }
+
+	// Definition: [qualified name] = [name prefix] + [name]
+	
+	op String[] getQualifiedNameSegments() {
+		val segments = getNamePrefixSegments()
+		if (name !== null) segments.add(name)
+		return segments
+	}
+
+	// Default name separator for [name prefix] and [qualified name]
+
+	@GenModel(documentation="Overwrite this method to define a specific name separator.")
+	op String getDefaultNameSeparator() { "." }
+
+	// Default implementation of [name prefix]: use namespace if available
+	
+	op Namespace getNamespace() { null }
+	
+	@GenModel(documentation="Overwrite this method to define a specific prefix (used by name-based references).")
+	op String[] getNamePrefixSegments() {
+		if (namespace === null) newBasicEList else namespace.qualifiedNameSegments
+	}
 }
 
 /*
@@ -133,19 +164,12 @@
  */
 interface IReferable extends INamed
 {
+	op String getEncodedQualifiedName () { AmaltheaExtensions.toEncodedString(qualifiedNameSegments) }
+
 	// use IPropertySheetEntry.FILTER_ID_EXPERT ("org.eclipse.ui.views.properties.expert")
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
-	id derived readonly String uniqueName get {
-		return (if (namePrefix.nullOrEmpty) "" else encode(namePrefix) + "/") + encode(name) + "?type=" + eClass.name
-	}
-	
-	@GenModel(documentation="Overwrite this method to define a specific prefix (used by name-based references).")
-	op String getNamePrefix() { "" }
-	
-	op String encode(String str) {
-		return (if (str.nullOrEmpty) "no-name" else URLEncoder.encode(str, StandardCharsets.UTF_8.toString))
-	}
-	
+	id derived readonly String uniqueName get { encodedQualifiedName + "?type=" + eClass.name }
+
 	op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
 		AmaltheaValidations.validateInvariants(this, diagnostics, context)
 	}
@@ -162,6 +186,11 @@
 	String description
 }
 
+interface INamespaceMember {
+	@GenModel(propertyCategory="Basic", notify="true")
+	refers Namespace namespace
+}
+
 /*
  * A tag for processes, runnables, events and labels
  */
@@ -170,7 +199,7 @@
 	String tagType
 	
 	// back pointer (readonly)
-	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to the this tag.</b></p>")
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b></p>")
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
 	refers transient readonly volatile derived ITaggable[] taggedObjects get {
 		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.tag_TaggedObjects,
@@ -179,6 +208,25 @@
 	}
 }
 
+class Namespace extends ReferableObject
+{
+	contains Namespace[] nextSegments opposite previousSegment
+
+	@GenModel(propertyCategory="Read only")
+	container readonly Namespace previousSegment opposite nextSegments
+
+	op String[] getNamePrefixSegments() { (previousSegment?.qualifiedNameSegments) ?: newBasicEList	}
+
+	// back pointer (readonly)
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b></p>")
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers transient readonly volatile derived INamespaceMember[] memberObjects get {
+		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.namespace_MemberObjects,
+			#{AmaltheaPackage.eINSTANCE.INamespaceMember_Namespace}
+		)
+	}
+}
+
 enum RelationalOperator
 {
 	_undefined_ // Display: "<relation>"
@@ -897,9 +945,9 @@
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly EnumMode containingMode opposite literals
-	
-	op String getNamePrefix() { containingMode?.name }
-	
+
+	op String[] getNamePrefixSegments() { (containingMode?.qualifiedNameSegments) ?: newBasicEList  }
+
 	op String toString() {
 		if (name.nullOrEmpty) "<literal>" else name
 	}
@@ -964,16 +1012,24 @@
 // ===============================================================================
 
 
-class ComponentsModel extends BaseObject
+class ComponentsModel extends BaseObject, IComponentContainer, IInterfaceContainer
 {
-	contains Component[] components
+	contains ComponentStructure[] structures
 	contains System[] systems
 }
 
+interface IComponentContainer {
+		contains Component[] components
+}
+
+interface IInterfaceContainer {
+		contains MainInterface[] interfaces
+}
+
 interface ISystem
 {
-	contains ComponentInstance[] componentInstances
-	contains Connector[] connectors
+	contains ComponentInstance[] componentInstances opposite containingSystem
+	contains Connector[] connectors opposite containingSystem
 	contains QualifiedPort[] groundedPorts
 	
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
@@ -982,21 +1038,81 @@
 	}
 }
 
-abstract class Port extends ReferableBaseObject, ITaggable
+abstract class ComponentInterface extends ReferableBaseObject, ITaggable
+{
+	refers TypeDefinition datatype
+	contains SubInterface[] subInterfaces opposite containingInterface
+}
+
+@GenModel(labelFeature="qualifiedName")
+class MainInterface extends ComponentInterface, INamespaceMember, IComponentStructureMember
+{
+	String version = "1.0"
+}
+
+@GenModel(labelFeature="qualifiedName")
+class SubInterface extends ComponentInterface
+{
+	@GenModel(propertyCategory="Read only")
+	container readonly ComponentInterface containingInterface opposite subInterfaces
+
+	op String[] getNamePrefixSegments() { (containingInterface?.qualifiedNameSegments) ?: newBasicEList }
+}
+
+class ComponentPort extends ReferableBaseObject, ITaggable
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly Component containingComponent opposite ports
-	
-	op String getNamePrefix() { containingComponent?.name }
+
+	op String[] getNamePrefixSegments() { (containingComponent?.qualifiedNameSegments) ?: newBasicEList }
+
+	InterfaceKind kind
+	refers ComponentInterface ^interface
 }
 
-class Component extends ReferableBaseObject, ITaggable
+@GenModel(labelFeature="qualifiedName")
+class ComponentStructure extends ReferableObject
 {
-	contains Port[] ports opposite containingComponent
-	refers AbstractProcess[] tasks
+	String structureType = ""
+	contains ComponentStructure[] subStructures
+
+	op ComponentStructure getContainingStructure() {
+		if (eContainer instanceof ComponentStructure) eContainer as ComponentStructure else null
+	}
+
+	op String getDefaultNameSeparator() { "::" }
+	op String[] getNamePrefixSegments() {
+		if (containingStructure === null) newBasicEList else containingStructure.qualifiedNameSegments
+	}
+
+	// back pointer (readonly)
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b></p>")
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers transient readonly volatile derived IComponentStructureMember[] memberObjects get {
+		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.componentStructure_MemberObjects,
+			#{AmaltheaPackage.eINSTANCE.IComponentStructureMember_Structure}
+		)
+	}
+}
+
+interface IComponentStructureMember {
+	refers ComponentStructure structure
+}
+
+@GenModel(labelFeature="qualifiedName")
+class Component extends ReferableBaseObject, ITaggable, INamespaceMember, IComponentStructureMember
+{
+	contains ComponentPort[] ports opposite containingComponent
+
+	@GenModel(propertyCategory="Included SW Elements")
+	refers AbstractProcess[] processes
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Runnable[] runnables
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Label[] labels
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Semaphore[] semaphores
+	@GenModel(propertyCategory="Included SW Elements")
 	refers OsEvent[] osEvents
 }
 
@@ -1006,25 +1122,33 @@
 
 class ComponentInstance extends ReferableBaseObject, ITaggable
 {
+	container ISystem containingSystem opposite componentInstances
+
 	refers Component ^type
+
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 }
 
 class Connector extends BaseObject, INamed, ITaggable
 {
+	container ISystem containingSystem opposite connectors
+
 	contains QualifiedPort sourcePort
 	contains QualifiedPort targetPort
+	
+	contains InterfaceChannel[] implementedInterfaces
+}
+
+class InterfaceChannel wraps java.util.Map$Entry
+{
+	refers ComponentInterface[1] key
+	refers Channel value
 }
 
 class QualifiedPort extends BaseObject
 {
 	refers ComponentInstance instance
-	refers Port port
-}
-
-class InterfacePort extends Port
-{
-	String interfaceName
-	InterfaceKind kind
+	refers ComponentPort[1] port
 }
 
 enum InterfaceKind
@@ -1971,8 +2095,8 @@
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly HwFeatureCategory containingCategory opposite features
-	
-	op String getNamePrefix() { containingCategory?.name }
+
+	op String[] getNamePrefixSegments() { (containingCategory?.qualifiedNameSegments) ?: newBasicEList }
 	
 	op String toString() {
 		val featureName = containingCategory?.name
@@ -1984,7 +2108,7 @@
 
 class HwPort extends ReferableBaseObject, ITaggable
 {
-	op String getNamePrefix() { (eContainer as INamed)?.name }
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 	
 	int bitWidth = "0"
 	int priority = "0"
@@ -2015,7 +2139,7 @@
 
 class HwConnection extends ReferableBaseObject, HwPathElement, ITaggable
 {
-	op String getNamePrefix() { (eContainer as INamed)?.name }
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 	
 	@GenModel(documentation="<p><b>Read latency [cycles]</b></p>")
 	contains IDiscreteValueDeviation readLatency
@@ -2294,7 +2418,7 @@
 
 class PhysicalSectionMapping extends ReferableBaseObject
 {
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic")
 	refers Section[+] origin
 	@GenModel(propertyCategory="Memory")
 	refers Memory[1] memory
@@ -3156,7 +3280,7 @@
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
 	refers transient readonly volatile derived Component[] referringComponents get {
 		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.abstractProcess_ReferringComponents,
-			#{AmaltheaPackage.eINSTANCE.component_Tasks} )
+			#{AmaltheaPackage.eINSTANCE.component_Processes} )
 	}	
 }
 
@@ -3183,25 +3307,25 @@
  */
 abstract class Process extends AbstractProcess
 {
-	contains CallGraph callGraph
+	contains ActivityGraph activityGraph
 	refers Stimulus[] stimuli
 }
 
-interface ICallGraphItemContainer
+interface IActivityGraphItemContainer
 {
-	contains CallGraphItem[] items
+	contains ActivityGraphItem[] items
 }
 
 
 /*
  * Describes the different execution paths of a process or runnable
  */
-class CallGraph extends BaseObject, ICallGraphItemContainer {}
+class ActivityGraph extends BaseObject, IActivityGraphItemContainer {}
 
 /*
  * An abstract item of a call graph
  */
-abstract class CallGraphItem extends BaseObject
+abstract class ActivityGraphItem extends BaseObject
 {
 	// container (read only)
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
@@ -3214,12 +3338,18 @@
 	refers local readonly derived Runnable containingRunnable get {
 		AmaltheaServices.getContainerOfType(this, Runnable)
 	}
+	
+	// container (read only)
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers local readonly derived ActivityGraph containingActivityGraph get {
+		AmaltheaServices.getContainerOfType(this, ActivityGraph)
+	}
 }
 
 /*
  * A switch in the call graph, the selected path depends on the value of the provided mode conditions
  */
-class ModeSwitch extends CallGraphItem
+class ModeSwitch extends ActivityGraphItem
 {
 	contains ModeSwitchEntry[] entries
 	contains ModeSwitchDefault defaultEntry
@@ -3229,17 +3359,17 @@
  * A switch entry for a ModeSwitch. 
  * It describes a path of the switch and the required mode condition to use this path
  */
-class ModeSwitchEntry extends BaseObject, INamed, ICallGraphItemContainer
+class ModeSwitchEntry extends BaseObject, INamed, IActivityGraphItemContainer
 {
 	contains ModeConditionDisjunction[1] condition
 }
 
-class ModeSwitchDefault extends BaseObject, ICallGraphItemContainer {}
+class ModeSwitchDefault extends BaseObject, IActivityGraphItemContainer {}
 
 /*
  * A switch in the call graph, each path has a probability
  */
-class ProbabilitySwitch extends CallGraphItem
+class ProbabilitySwitch extends ActivityGraphItem
 {
 	contains ProbabilitySwitchEntry[] entries
 }
@@ -3248,7 +3378,7 @@
  * A switch entry for a ProbabilitySwitch
  * It describes a path of the switch and it's probability
  */
-class ProbabilitySwitchEntry extends BaseObject, ICallGraphItemContainer
+class ProbabilitySwitchEntry extends BaseObject, IActivityGraphItemContainer
 {
 	double probability = "0.0"
 }
@@ -3266,7 +3396,7 @@
  * Let the process wait for a combination of events defined by eventMask
  * maskType defines if the events in eventMask are linked by a AND or OR
  */
-class WaitEvent extends CallGraphItem
+class WaitEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	WaitEventType maskType
@@ -3294,7 +3424,7 @@
  * These events can be set for a specific process, if there is no process, is is global (for all processes)
  * If there is a process, it is possible to set the event for a specific process instance that is currently activated
  */
-class SetEvent extends CallGraphItem
+class SetEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	refers Process process
@@ -3305,7 +3435,7 @@
 /*
  * Clears the events of eventMask
  */
-class ClearEvent extends CallGraphItem
+class ClearEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	
@@ -3339,7 +3469,7 @@
 /*
  * Triggers a stimulus to activate its processes
  */
-class InterProcessTrigger extends CallGraphItem
+class InterProcessTrigger extends ActivityGraphItem
 {
 	refers InterProcessStimulus[1] stimulus
 	
@@ -3349,7 +3479,7 @@
 /*
  * Migrates task to core of resource owner
  */
-class EnforcedMigration extends CallGraphItem
+class EnforcedMigration extends ActivityGraphItem
 {
 	refers TaskScheduler[1] resourceOwner
 }
@@ -3357,14 +3487,14 @@
 /*
  * Triggers scheduler
  */
-class SchedulePoint extends CallGraphItem
+class SchedulePoint extends ActivityGraphItem
 {
 }
 
 /*
  * Terminates the process
  */
-class TerminateProcess extends CallGraphItem
+class TerminateProcess extends ActivityGraphItem
 {
 	contains Counter counter
 }
@@ -3493,6 +3623,10 @@
 	inout	
 }
 
+interface IDependsOn {
+	contains DataDependency dependsOn
+}
+
 class DataDependency extends BaseObject 
 {
 	refers Label[] labels
@@ -3506,16 +3640,15 @@
 	}
 }
 
-class RunnableParameter extends ReferableBaseObject
+class RunnableParameter extends ReferableBaseObject, IDependsOn
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly Runnable containingRunnable opposite parameters
-	
-	op String getNamePrefix() { containingRunnable?.name }
+
+	op String[] getNamePrefixSegments() { (containingRunnable?.qualifiedNameSegments) ?: newBasicEList }
 	
 	DirectionType direction
 	refers TypeDefinition dataType
-	contains DataDependency dependsOn
 	
 	op String toString() {
 		val runName = containingRunnable?.name
@@ -3527,16 +3660,17 @@
 /*
  * Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms.
  */
-class Runnable extends AbstractMemoryElement
+@GenModel(labelFeature="qualifiedName")
+class Runnable extends AbstractMemoryElement, INamespaceMember
 {
 	contains ModeConditionDisjunction executionCondition
 	contains RunnableParameter[] parameters opposite containingRunnable
-	contains CallGraph callGraph
+	contains ActivityGraph activityGraph
 	refers Activation[] activations
 	
-	op CallGraphItem[] getRunnableItems() {
-		if (callGraph === null) callGraph = AmaltheaFactory.eINSTANCE.createCallGraph()
-		callGraph.items
+	op ActivityGraphItem[] getRunnableItems() {
+		if (activityGraph === null) activityGraph = AmaltheaFactory.eINSTANCE.createActivityGraph()
+		activityGraph.items
 	}
 	op Activation getFirstActivation() {
 		activations.head
@@ -3575,7 +3709,8 @@
 /*
  * Data representation, which can be accessed by run entities.
  */
-class Label extends AbstractMemoryElement, IDisplayName
+@GenModel(labelFeature="qualifiedName")
+class Label extends AbstractMemoryElement, IDisplayName, INamespaceMember
 {
 	contains DataType dataType
 	/*
@@ -3611,7 +3746,8 @@
 
 }
 
-class Channel extends AbstractMemoryElement, IDisplayName
+@GenModel(labelFeature="qualifiedName")
+class Channel extends AbstractMemoryElement, IDisplayName, INamespaceMember
 {
 	contains DataType elementType
 	int defaultElements = "0"
@@ -3684,12 +3820,12 @@
 /*
  * Representation of a object that describes computation
  */
-abstract class ComputationItem extends CallGraphItem {}
+abstract class ComputationItem extends ActivityGraphItem {}
 
 /*
  * Representation of the execution needs of a Runnable (default and core-specific)
  */
-class ExecutionNeed extends CallGraphItem
+class ExecutionNeed extends ActivityGraphItem
 {
 	contains NeedEntry[] needs
 }
@@ -3724,7 +3860,7 @@
 /*
  * Representation of a mode label access of a run entity.
  */
-class ModeLabelAccess extends CallGraphItem
+class ModeLabelAccess extends ActivityGraphItem
 {
 	refers ModeLabel[1] data
 	ModeLabelAccessEnum access
@@ -3747,7 +3883,7 @@
 /*
  * Representation of a label access of a run entity.
  */
-class LabelAccess extends ComputationItem, ITaggable
+class LabelAccess extends ComputationItem, ITaggable, IDependsOn
 {
 	refers Label[1] data
 	LabelAccessEnum access
@@ -3767,11 +3903,9 @@
 	 */
 	LabelAccessDataStability dataStability
 	LabelAccessImplementation implementation	 
-		
-	contains DataDependency dependsOn
 }
 
-abstract class ChannelAccess extends CallGraphItem
+abstract class ChannelAccess extends ActivityGraphItem
 {
 	refers Channel[1] data
 	int elements = "0"
@@ -3832,7 +3966,7 @@
 /*
  * Describes an semaphore access
  */
-class SemaphoreAccess extends CallGraphItem
+class SemaphoreAccess extends ActivityGraphItem
 {
 	refers Semaphore[1] semaphore
 	SemaphoreAccessEnum access
@@ -3855,11 +3989,11 @@
 /*
  * An abstract description for sender-receiver-communication (it can be read or write)
  */
-abstract class SenderReceiverCommunication extends CallGraphItem
+abstract class SenderReceiverCommunication extends ActivityGraphItem
 {
 	boolean buffered = "false"
 	refers Label[1] label
-	refers Port port
+	refers ComponentPort port
 }
 
 /*
@@ -3880,10 +4014,10 @@
  * An abstract description for client/server communication
  * It refers to a required runnable that describes the called server operation
  */
-abstract class ServerCall extends CallGraphItem
+abstract class ServerCall extends ActivityGraphItem
 {
 	refers Runnable[1] serverRunnable
-	refers Port port
+	refers ComponentPort port
 }
 
 /*
@@ -3925,37 +4059,42 @@
 /*
  * Describes a group of deviation runnable items
  */
-class Group extends CallGraphItem, INamed, ICallGraphItemContainer
+class Group extends ActivityGraphItem, INamed, IActivityGraphItemContainer
 {
 	boolean ordered = "true"
 }
 
-class CallArgument extends ReferableObject
+class CallArgument extends ReferableObject, IDependsOn
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly RunnableCall containingCall opposite arguments
 	
 	op String getName() {
-		if (super.name.nullOrEmpty) "access.1" else super.name
+		if (super.name.nullOrEmpty) "access-1" else super.name
 	}
 	
-	op String computeUniqueName() {
-		return encode(containingCall?.containingRunnable?.name)
-				+ "/calls/" + encode(containingCall?.runnable?.name)
-				+ "/param/" + encode(parameter?.name) + "/" + encode(name)
-				+ "?type=" + eClass.name
+	op String[] getNamePrefixSegments() {
+		val segments = newBasicEList
+		val runnableOrProcess = containingCall?.containingActivityGraph?.eContainer as IReferable
+		if (runnableOrProcess !== null) {
+			// segments.add( runnableOrProcess.eClass.name.toUpperCase )
+			segments.addAll( runnableOrProcess.qualifiedNameSegments )
+		}
+		segments.add( "calls" )
+		segments.addAll( containingCall?.runnable?.qualifiedNameSegments ?: #[""] )
+		segments.add( "param" )
+		segments.add( (parameter?.name) ?: "" )
+		return segments
 	}
 	
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic")
 	refers RunnableParameter parameter
-	
-	contains DataDependency dependsOn
 }
 
 /*
  * Representation of a runnable call of a run entity.
  */
-class RunnableCall extends CallGraphItem, ITaggable
+class RunnableCall extends ActivityGraphItem, ITaggable
 {
 	refers Runnable[1] runnable
 	contains CallArgument[] arguments opposite containingCall
@@ -3996,7 +4135,7 @@
 /*
  * Explicitly trigger a custom event from a runnable.
  */
-class CustomEventTrigger extends CallGraphItem
+class CustomEventTrigger extends ActivityGraphItem
 {
 	refers CustomEvent[1] event
 }
@@ -4066,7 +4205,7 @@
 	String alias
 }
 
-abstract class TypeDefinition extends ReferableBaseObject
+abstract class TypeDefinition extends ReferableBaseObject, INamespaceMember
 {
 	/*
 	 * Size of the defined data type
@@ -4074,6 +4213,7 @@
 	contains DataSize size
 }
 
+@GenModel(labelFeature="qualifiedName")
 class DataTypeDefinition extends TypeDefinition
 {
 	contains DataType dataType
@@ -4082,6 +4222,7 @@
 /*
  * Basic data type definition, including naming (alias) in target environments
  */
+@GenModel(labelFeature="qualifiedName")
 class BaseTypeDefinition extends TypeDefinition
 {
 	/*
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-definitions.zip b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-definitions.zip
index d426e3f..b5652a3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-definitions.zip
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-definitions.zip
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema-xmi/amalthea-xmi.xsd b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema-xmi/amalthea-xmi.xsd
index aac70eb..94e04e6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema-xmi/amalthea-xmi.xsd
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema-xmi/amalthea-xmi.xsd
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.6">
+<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.7">
   <xsd:annotation>
     <xsd:documentation>*
 *******************************************************************************
-Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+Copyright (c) 2015-2020 Robert Bosch GmbH and others.
 
 This program and the accompanying materials are made
 available under the terms of the Eclipse Public License 2.0
@@ -697,6 +697,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="namespaces" type="am:Namespace"/>
           <xsd:element name="coreClassifiers" type="am:CoreClassifier"/>
           <xsd:element name="memoryClassifiers" type="am:MemoryClassifier"/>
         </xsd:choice>
@@ -813,6 +814,16 @@
     <xsd:attribute name="description" type="xsd:string"/>
   </xsd:complexType>
   <xsd:element name="IDescription" type="am:IDescription"/>
+  <xsd:complexType abstract="true" name="INamespaceMember">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="namespace" type="am:Namespace"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="namespace" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="INamespaceMember" type="am:INamespaceMember"/>
   <xsd:complexType name="Tag">
     <xsd:annotation>
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
@@ -829,6 +840,18 @@
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
+  <xsd:complexType name="Namespace">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="nextSegments" type="am:Namespace"/>
+          <xsd:element name="previousSegment" type="am:Namespace"/>
+        </xsd:choice>
+        <xsd:attribute name="previousSegment" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="Namespace" type="am:Namespace"/>
   <xsd:complexType abstract="true" name="Classifier">
     <xsd:annotation>
       <xsd:documentation>Classifiers for hardware properties</xsd:documentation>
@@ -1687,12 +1710,32 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="components" type="am:Component"/>
+          <xsd:element name="interfaces" type="am:MainInterface"/>
+          <xsd:element name="structures" type="am:ComponentStructure"/>
           <xsd:element name="systems" type="am:System"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="ComponentsModel" type="am:ComponentsModel"/>
+  <xsd:complexType abstract="true" name="IComponentContainer">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="components" type="am:Component"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IComponentContainer" type="am:IComponentContainer"/>
+  <xsd:complexType abstract="true" name="IInterfaceContainer">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="interfaces" type="am:MainInterface"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IInterfaceContainer" type="am:IInterfaceContainer"/>
   <xsd:complexType abstract="true" name="ISystem">
     <xsd:choice maxOccurs="unbounded" minOccurs="0">
       <xsd:element name="componentInstances" type="am:ComponentInstance"/>
@@ -1704,33 +1747,100 @@
     <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
   </xsd:complexType>
   <xsd:element name="ISystem" type="am:ISystem"/>
-  <xsd:complexType abstract="true" name="Port">
+  <xsd:complexType abstract="true" name="ComponentInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableBaseObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="datatype" type="am:TypeDefinition"/>
+          <xsd:element name="subInterfaces" type="am:SubInterface"/>
+        </xsd:choice>
+        <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="datatype" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="ComponentInterface" type="am:ComponentInterface"/>
+  <xsd:complexType name="MainInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
+          <xsd:element name="structure" type="am:ComponentStructure"/>
+        </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
+        <xsd:attribute name="structure" type="xsd:string"/>
+        <xsd:attribute name="version" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="MainInterface" type="am:MainInterface"/>
+  <xsd:complexType name="SubInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="containingInterface" type="am:ComponentInterface"/>
+        </xsd:choice>
+        <xsd:attribute name="containingInterface" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="SubInterface" type="am:SubInterface"/>
+  <xsd:complexType name="ComponentPort">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
           <xsd:element name="containingComponent" type="am:Component"/>
+          <xsd:element name="interface" type="am:ComponentInterface"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="kind" type="am:InterfaceKind"/>
         <xsd:attribute name="containingComponent" type="xsd:string"/>
+        <xsd:attribute name="interface" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="Port" type="am:Port"/>
+  <xsd:element name="ComponentPort" type="am:ComponentPort"/>
+  <xsd:complexType name="ComponentStructure">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="subStructures" type="am:ComponentStructure"/>
+        </xsd:choice>
+        <xsd:attribute name="structureType" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="ComponentStructure" type="am:ComponentStructure"/>
+  <xsd:complexType abstract="true" name="IComponentStructureMember">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="structure" type="am:ComponentStructure"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="structure" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="IComponentStructureMember" type="am:IComponentStructureMember"/>
   <xsd:complexType name="Component">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
-          <xsd:element name="ports" type="am:Port"/>
-          <xsd:element name="tasks" type="am:AbstractProcess"/>
+          <xsd:element name="namespace" type="am:Namespace"/>
+          <xsd:element name="structure" type="am:ComponentStructure"/>
+          <xsd:element name="ports" type="am:ComponentPort"/>
+          <xsd:element name="processes" type="am:AbstractProcess"/>
           <xsd:element name="runnables" type="am:Runnable"/>
           <xsd:element name="labels" type="am:Label"/>
           <xsd:element name="semaphores" type="am:Semaphore"/>
           <xsd:element name="osEvents" type="am:OsEvent"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
-        <xsd:attribute name="tasks" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
+        <xsd:attribute name="structure" type="xsd:string"/>
+        <xsd:attribute name="processes" type="xsd:string"/>
         <xsd:attribute name="runnables" type="xsd:string"/>
         <xsd:attribute name="labels" type="xsd:string"/>
         <xsd:attribute name="semaphores" type="xsd:string"/>
@@ -1770,9 +1880,11 @@
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="containingSystem" type="am:ISystem"/>
           <xsd:element name="type" type="am:Component"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="containingSystem" type="xsd:string"/>
         <xsd:attribute name="type" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -1783,21 +1895,36 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="containingSystem" type="am:ISystem"/>
           <xsd:element name="sourcePort" type="am:QualifiedPort"/>
           <xsd:element name="targetPort" type="am:QualifiedPort"/>
+          <xsd:element name="implementedInterfaces" type="am:InterfaceChannel"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="containingSystem" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="Connector" type="am:Connector"/>
+  <xsd:complexType name="InterfaceChannel">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="key" type="am:ComponentInterface"/>
+      <xsd:element name="value" type="am:Channel"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="key" type="xsd:string"/>
+    <xsd:attribute name="value" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="InterfaceChannel" type="am:InterfaceChannel"/>
   <xsd:complexType name="QualifiedPort">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="instance" type="am:ComponentInstance"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="instance" type="xsd:string"/>
         <xsd:attribute name="port" type="xsd:string"/>
@@ -1805,15 +1932,6 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="QualifiedPort" type="am:QualifiedPort"/>
-  <xsd:complexType name="InterfacePort">
-    <xsd:complexContent>
-      <xsd:extension base="am:Port">
-        <xsd:attribute name="interfaceName" type="xsd:string"/>
-        <xsd:attribute name="kind" type="am:InterfaceKind"/>
-      </xsd:extension>
-    </xsd:complexContent>
-  </xsd:complexType>
-  <xsd:element name="InterfacePort" type="am:InterfacePort"/>
   <xsd:complexType name="ConfigModel">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -4872,7 +4990,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractProcess">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="callGraph" type="am:CallGraph"/>
+          <xsd:element name="activityGraph" type="am:ActivityGraph"/>
           <xsd:element name="stimuli" type="am:Stimulus"/>
         </xsd:choice>
         <xsd:attribute name="stimuli" type="xsd:string"/>
@@ -4884,33 +5002,33 @@
       <xsd:documentation>Generalizes interrupt service routines and tasks</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
-  <xsd:complexType abstract="true" name="ICallGraphItemContainer">
+  <xsd:complexType abstract="true" name="IActivityGraphItemContainer">
     <xsd:choice maxOccurs="unbounded" minOccurs="0">
-      <xsd:element name="items" type="am:CallGraphItem"/>
+      <xsd:element name="items" type="am:ActivityGraphItem"/>
       <xsd:element ref="xmi:Extension"/>
     </xsd:choice>
     <xsd:attribute ref="xmi:id"/>
     <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
   </xsd:complexType>
-  <xsd:element name="ICallGraphItemContainer" type="am:ICallGraphItemContainer"/>
-  <xsd:complexType name="CallGraph">
+  <xsd:element name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/>
+  <xsd:complexType name="ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="CallGraph" type="am:CallGraph">
+  <xsd:element name="ActivityGraph" type="am:ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
-  <xsd:complexType abstract="true" name="CallGraphItem">
+  <xsd:complexType abstract="true" name="ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4918,7 +5036,7 @@
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="CallGraphItem" type="am:CallGraphItem">
+  <xsd:element name="ActivityGraphItem" type="am:ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4928,7 +5046,7 @@
       <xsd:documentation>A switch in the call graph, the selected path depends on the value of the provided mode conditions</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="entries" type="am:ModeSwitchEntry"/>
           <xsd:element name="defaultEntry" type="am:ModeSwitchDefault"/>
@@ -4949,7 +5067,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
           <xsd:element name="condition" type="am:ModeConditionDisjunction"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
@@ -4966,7 +5084,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
@@ -4977,7 +5095,7 @@
       <xsd:documentation>A switch in the call graph, each path has a probability</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="entries" type="am:ProbabilitySwitchEntry"/>
         </xsd:choice>
@@ -4997,7 +5115,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
         <xsd:attribute name="probability" type="xsd:double"/>
       </xsd:extension>
@@ -5031,7 +5149,7 @@
 maskType defines if the events in eventMask are linked by a AND or OR</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5054,7 +5172,7 @@
 If there is a process, it is possible to set the event for a specific process instance that is currently activated</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="process" type="am:Process"/>
@@ -5076,7 +5194,7 @@
       <xsd:documentation>Clears the events of eventMask</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5131,7 +5249,7 @@
       <xsd:documentation>Triggers a stimulus to activate its processes</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="stimulus" type="am:InterProcessStimulus"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5150,7 +5268,7 @@
       <xsd:documentation>Migrates task to core of resource owner</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="resourceOwner" type="am:TaskScheduler"/>
         </xsd:choice>
@@ -5168,7 +5286,7 @@
       <xsd:documentation>Triggers scheduler</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="SchedulePoint" type="am:SchedulePoint">
@@ -5181,7 +5299,7 @@
       <xsd:documentation>Terminates the process</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="counter" type="am:Counter"/>
         </xsd:choice>
@@ -5318,6 +5436,15 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/>
+  <xsd:complexType abstract="true" name="IDependsOn">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="dependsOn" type="am:DataDependency"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IDependsOn" type="am:IDependsOn"/>
   <xsd:complexType name="DataDependency">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -5337,9 +5464,9 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="containingRunnable" type="am:Runnable"/>
           <xsd:element name="dataType" type="am:TypeDefinition"/>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="direction" type="am:DirectionType"/>
         <xsd:attribute name="containingRunnable" type="xsd:string"/>
@@ -5355,12 +5482,14 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="executionCondition" type="am:ModeConditionDisjunction"/>
           <xsd:element name="parameters" type="am:RunnableParameter"/>
-          <xsd:element name="callGraph" type="am:CallGraph"/>
+          <xsd:element name="activityGraph" type="am:ActivityGraph"/>
           <xsd:element name="activations" type="am:Activation"/>
           <xsd:element name="section" type="am:Section"/>
         </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="callback" type="xsd:boolean">
           <xsd:annotation>
             <xsd:documentation>Marker if runnable is used as callback.</xsd:documentation>
@@ -5393,10 +5522,12 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="dataType" type="am:DataType"/>
           <xsd:element name="section" type="am:Section"/>
         </xsd:choice>
         <xsd:attribute name="displayName" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="constant" type="xsd:boolean">
           <xsd:annotation>
             <xsd:documentation>Defines the label as a constant, not modifiable entity</xsd:documentation>
@@ -5426,9 +5557,11 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="elementType" type="am:DataType"/>
         </xsd:choice>
         <xsd:attribute name="displayName" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="defaultElements" type="xsd:int"/>
         <xsd:attribute name="maxElements" type="xsd:int"/>
       </xsd:extension>
@@ -5476,7 +5609,7 @@
       <xsd:documentation>Representation of a object that describes computation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="ComputationItem" type="am:ComputationItem">
@@ -5489,7 +5622,7 @@
       <xsd:documentation>Representation of the execution needs of a Runnable (default and core-specific)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="needs" type="am:NeedEntry"/>
         </xsd:choice>
@@ -5545,7 +5678,7 @@
       <xsd:documentation>Representation of a mode label access of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="data" type="am:ModeLabel"/>
         </xsd:choice>
@@ -5579,6 +5712,7 @@
       <xsd:extension base="am:ComputationItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="data" type="am:Label"/>
           <xsd:element name="statistic" type="am:LabelAccessStatistic">
             <xsd:annotation>
@@ -5590,7 +5724,6 @@
               <xsd:documentation>Optional parameter for transmission policy of larger data</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
         <xsd:attribute name="access" type="am:LabelAccessEnum"/>
@@ -5611,7 +5744,7 @@
   </xsd:element>
   <xsd:complexType abstract="true" name="ChannelAccess">
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="data" type="am:Channel"/>
           <xsd:element name="transmissionPolicy" type="am:TransmissionPolicy"/>
@@ -5644,7 +5777,7 @@
       <xsd:documentation>Describes an semaphore access</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="semaphore" type="am:Semaphore"/>
         </xsd:choice>
@@ -5664,10 +5797,10 @@
       <xsd:documentation>An abstract description for sender-receiver-communication (it can be read or write)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="label" type="am:Label"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="buffered" type="xsd:boolean"/>
         <xsd:attribute name="label" type="xsd:string"/>
@@ -5719,10 +5852,10 @@
 It refers to a required runnable that describes the called server operation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="serverRunnable" type="am:Runnable"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="serverRunnable" type="xsd:string"/>
         <xsd:attribute name="port" type="xsd:string"/>
@@ -5790,9 +5923,9 @@
       <xsd:documentation>Describes a group of deviation runnable items</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
         <xsd:attribute name="ordered" type="xsd:boolean"/>
@@ -5808,9 +5941,9 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="containingCall" type="am:RunnableCall"/>
           <xsd:element name="parameter" type="am:RunnableParameter"/>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="containingCall" type="xsd:string"/>
         <xsd:attribute name="parameter" type="xsd:string"/>
@@ -5823,7 +5956,7 @@
       <xsd:documentation>Representation of a runnable call of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
           <xsd:element name="runnable" type="am:Runnable"/>
@@ -5846,7 +5979,7 @@
       <xsd:documentation>Explicitly trigger a custom event from a runnable.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="event" type="am:CustomEvent"/>
         </xsd:choice>
@@ -5989,12 +6122,14 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="size" type="am:DataSize">
             <xsd:annotation>
               <xsd:documentation>Size of the defined data type</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
         </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema/amalthea.xsd b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema/amalthea.xsd
index 70c4ef6..b5bf70f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema/amalthea.xsd
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml-schema/amalthea.xsd
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.6">
+<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.7">
   <xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore" schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd"/>
   <xsd:annotation>
     <xsd:documentation>*
 *******************************************************************************
-Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+Copyright (c) 2015-2020 Robert Bosch GmbH and others.
 
 This program and the accompanying materials are made
 available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,9 @@
   <xsd:element ecore:ignore="true" name="IReferable" type="am:IReferable"/>
   <xsd:element ecore:ignore="true" name="IDisplayName" type="am:IDisplayName"/>
   <xsd:element ecore:ignore="true" name="IDescription" type="am:IDescription"/>
+  <xsd:element ecore:ignore="true" name="INamespaceMember" type="am:INamespaceMember"/>
   <xsd:element ecore:ignore="true" name="Tag" type="am:Tag"/>
+  <xsd:element ecore:ignore="true" name="Namespace" type="am:Namespace"/>
   <xsd:element ecore:ignore="true" name="Classifier" type="am:Classifier"/>
   <xsd:element ecore:ignore="true" name="CoreClassifier" type="am:CoreClassifier"/>
   <xsd:element ecore:ignore="true" name="MemoryClassifier" type="am:MemoryClassifier"/>
@@ -95,15 +97,22 @@
   <xsd:element ecore:ignore="true" name="EnumMode" type="am:EnumMode"/>
   <xsd:element ecore:ignore="true" name="ModeLiteral" type="am:ModeLiteral"/>
   <xsd:element ecore:ignore="true" name="ComponentsModel" type="am:ComponentsModel"/>
+  <xsd:element ecore:ignore="true" name="IComponentContainer" type="am:IComponentContainer"/>
+  <xsd:element ecore:ignore="true" name="IInterfaceContainer" type="am:IInterfaceContainer"/>
   <xsd:element ecore:ignore="true" name="ISystem" type="am:ISystem"/>
-  <xsd:element ecore:ignore="true" name="Port" type="am:Port"/>
+  <xsd:element ecore:ignore="true" name="ComponentInterface" type="am:ComponentInterface"/>
+  <xsd:element ecore:ignore="true" name="MainInterface" type="am:MainInterface"/>
+  <xsd:element ecore:ignore="true" name="SubInterface" type="am:SubInterface"/>
+  <xsd:element ecore:ignore="true" name="ComponentPort" type="am:ComponentPort"/>
+  <xsd:element ecore:ignore="true" name="ComponentStructure" type="am:ComponentStructure"/>
+  <xsd:element ecore:ignore="true" name="IComponentStructureMember" type="am:IComponentStructureMember"/>
   <xsd:element ecore:ignore="true" name="Component" type="am:Component"/>
   <xsd:element ecore:ignore="true" name="Composite" type="am:Composite"/>
   <xsd:element ecore:ignore="true" name="System" type="am:System"/>
   <xsd:element ecore:ignore="true" name="ComponentInstance" type="am:ComponentInstance"/>
   <xsd:element ecore:ignore="true" name="Connector" type="am:Connector"/>
+  <xsd:element ecore:ignore="true" name="InterfaceChannel" type="am:InterfaceChannel"/>
   <xsd:element ecore:ignore="true" name="QualifiedPort" type="am:QualifiedPort"/>
-  <xsd:element ecore:ignore="true" name="InterfacePort" type="am:InterfacePort"/>
   <xsd:element ecore:ignore="true" name="ConfigModel" type="am:ConfigModel"/>
   <xsd:element ecore:ignore="true" name="EventConfig" type="am:EventConfig"/>
   <xsd:element ecore:ignore="true" name="ConstraintsModel" type="am:ConstraintsModel"/>
@@ -301,9 +310,9 @@
   <xsd:element ecore:ignore="true" name="CustomEntity" type="am:CustomEntity"/>
   <xsd:element ecore:ignore="true" name="ProcessChain" type="am:ProcessChain"/>
   <xsd:element ecore:ignore="true" name="Process" type="am:Process"/>
-  <xsd:element ecore:ignore="true" name="ICallGraphItemContainer" type="am:ICallGraphItemContainer"/>
-  <xsd:element ecore:ignore="true" name="CallGraph" type="am:CallGraph"/>
-  <xsd:element ecore:ignore="true" name="CallGraphItem" type="am:CallGraphItem"/>
+  <xsd:element ecore:ignore="true" name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/>
+  <xsd:element ecore:ignore="true" name="ActivityGraph" type="am:ActivityGraph"/>
+  <xsd:element ecore:ignore="true" name="ActivityGraphItem" type="am:ActivityGraphItem"/>
   <xsd:element ecore:ignore="true" name="ModeSwitch" type="am:ModeSwitch"/>
   <xsd:element ecore:ignore="true" name="ModeSwitchEntry" type="am:ModeSwitchEntry"/>
   <xsd:element ecore:ignore="true" name="ModeSwitchDefault" type="am:ModeSwitchDefault"/>
@@ -326,6 +335,7 @@
   <xsd:element ecore:ignore="true" name="GeneralPrecedence" type="am:GeneralPrecedence"/>
   <xsd:element ecore:ignore="true" name="AccessPrecedenceSpec" type="am:AccessPrecedenceSpec"/>
   <xsd:element ecore:ignore="true" name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/>
+  <xsd:element ecore:ignore="true" name="IDependsOn" type="am:IDependsOn"/>
   <xsd:element ecore:ignore="true" name="DataDependency" type="am:DataDependency"/>
   <xsd:element ecore:ignore="true" name="RunnableParameter" type="am:RunnableParameter"/>
   <xsd:element ecore:ignore="true" name="Runnable" type="am:Runnable"/>
@@ -406,6 +416,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="tags" type="am:Tag"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="namespaces" type="am:Namespace"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="coreClassifiers" type="am:CoreClassifier"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="memoryClassifiers" type="am:MemoryClassifier"/>
         </xsd:sequence>
@@ -451,39 +462,82 @@
   </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="INamed">
     <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamedContainer" type="am:INamed" unique="false">
+          <body>&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _xifexpression = null;
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
+if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;))
+{
+	&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
+	_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer_1);
+}
+else
+{
+	_xifexpression = null;
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getNamePrefix" type="ecore:EString" unique="false">
+          <body>&lt;%java.lang.String%&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
+boolean _tripleEquals = (_namespace == null);
+if (_tripleEquals)
+{
+	return "";
+}
+else
+{
+	_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getQualifiedNameSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>final &lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; segments = this.getNamePrefixSegments();
+&lt;%java.lang.String%&gt; _name = this.getName();
+boolean _tripleNotEquals = (_name != null);
+if (_tripleNotEquals)
+{
+	segments.add(this.getName());
+}
+return segments;</body>
+        </operation>
+        <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
+          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
+            <detail key="documentation">Overwrite this method to define a specific name separator.</detail>
+          </annotation>
+          <body>return ".";</body>
+        </operation>
+        <operation name="getNamespace" type="am:Namespace" unique="false">
+          <body>return null;</body>
+        </operation>
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
+            <detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail>
+          </annotation>
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
+boolean _tripleEquals = (_namespace == null);
+if (_tripleEquals)
+{
+	_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+}
+else
+{
+	_xifexpression = this.getNamespace().getQualifiedNameSegments();
+}
+return _xifexpression;</body>
+        </operation>
+      </xsd:appinfo>
       <xsd:documentation>INamed: Name attribute</xsd:documentation>
     </xsd:annotation>
     <xsd:attribute default="" ecore:unsettable="false" name="name" type="ecore:EString"/>
+    <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="qualifiedName" type="ecore:EString"/>
   </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="IReferable">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
-            <detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail>
-          </annotation>
-          <body>return "";</body>
-        </operation>
-        <operation name="encode" type="ecore:EString" unique="false">
-          <parameter name="str" type="ecore:EString" unique="false"/>
-          <body>try
-{
-	&lt;%java.lang.String%&gt; _xifexpression = null;
-	boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%&gt;.isNullOrEmpty(str);
-	if (_isNullOrEmpty)
-	{
-		_xifexpression = "no-name";
-	}
-	else
-	{
-		_xifexpression = &lt;%java.net.URLEncoder%&gt;.encode(str, &lt;%java.nio.charset.StandardCharsets%&gt;.UTF_8.toString());
-	}
-	return _xifexpression;
-}
-catch (Throwable _e)
-{
-	throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);
-}</body>
+        <operation name="getEncodedQualifiedName" type="ecore:EString" unique="false">
+          <body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toEncodedString(this.getQualifiedNameSegments());</body>
         </operation>
         <operation name="validateInvariants" type="ecore:EBoolean" unique="false">
           <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
@@ -505,6 +559,9 @@
   <xsd:complexType abstract="true" ecore:interface="true" name="IDescription">
     <xsd:attribute name="description" type="ecore:EString"/>
   </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="INamespaceMember">
+    <xsd:attribute ecore:reference="am:Namespace" name="namespace" type="xsd:anyURI"/>
+  </xsd:complexType>
   <xsd:complexType ecore:implements="am:IDescription" name="Tag">
     <xsd:annotation>
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
@@ -516,7 +573,51 @@
           <xsd:annotation>
             <xsd:documentation>
               <p>
-                <b>Returns an <em>immutable</em> list of objects (ITaggable) referring to the this tag.</b>
+                <b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b>
+              </p>
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:simpleType>
+            <xsd:list itemType="xsd:anyURI"/>
+          </xsd:simpleType>
+        </xsd:attribute>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType name="Namespace">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _previousSegment = this.getPreviousSegment();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_previousSegment!=null)
+{
+	_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:sequence>
+          <xsd:element ecore:opposite="previousSegment" maxOccurs="unbounded" minOccurs="0" name="nextSegments" type="am:Namespace"/>
+        </xsd:sequence>
+        <xsd:attribute ecore:changeable="false" ecore:opposite="nextSegments" ecore:reference="am:Namespace" name="previousSegment" type="xsd:anyURI"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:INamespaceMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
+          <xsd:annotation>
+            <xsd:documentation>
+              <p>
+                <b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b>
               </p>
             </xsd:documentation>
           </xsd:annotation>
@@ -1583,14 +1684,23 @@
   <xsd:complexType name="ModeLiteral">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%&gt; _containingMode = this.getContainingMode();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%&gt; _containingMode = this.getContainingMode();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingMode!=null)
 {
-	_name=_containingMode.getName();
+	_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%java.lang.String%&gt; _xifexpression = null;
@@ -1651,20 +1761,30 @@
       <xsd:minInclusive value="0"/>
     </xsd:restriction>
   </xsd:simpleType>
-  <xsd:complexType name="ComponentsModel">
+  <xsd:complexType ecore:implements="am:IComponentContainer am:IInterfaceContainer" name="ComponentsModel">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:sequence>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:ComponentStructure"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="systems" type="am:System"/>
         </xsd:sequence>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IComponentContainer">
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IInterfaceContainer">
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="interfaces" type="am:MainInterface"/>
+    </xsd:sequence>
+  </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="ISystem">
     <xsd:sequence>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/>
+      <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/>
+      <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/>
       <xsd:element maxOccurs="unbounded" minOccurs="0" name="groundedPorts" type="am:QualifiedPort"/>
     </xsd:sequence>
     <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:QualifiedPort" ecore:transient="true" ecore:volatile="true" name="innerPorts">
@@ -1673,33 +1793,150 @@
       </xsd:simpleType>
     </xsd:attribute>
   </xsd:complexType>
-  <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="Port">
+  <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="ComponentInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableBaseObject">
+        <xsd:sequence>
+          <xsd:element ecore:opposite="containingInterface" maxOccurs="unbounded" minOccurs="0" name="subInterfaces" type="am:SubInterface"/>
+        </xsd:sequence>
+        <xsd:attribute ecore:reference="am:TypeDefinition" name="datatype" type="xsd:anyURI"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:INamespaceMember am:IComponentStructureMember" name="MainInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:attribute default="1.0" ecore:unsettable="false" name="version" type="ecore:EString"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType name="SubInterface">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.Component%&gt; _containingComponent = this.getContainingComponent();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%&gt; _containingInterface = this.getContainingInterface();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_containingInterface!=null)
+{
+	_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:attribute ecore:changeable="false" ecore:opposite="subInterfaces" ecore:reference="am:ComponentInterface" name="containingInterface" type="xsd:anyURI"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:ITaggable" name="ComponentPort">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Component%&gt; _containingComponent = this.getContainingComponent();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingComponent!=null)
 {
-	_name=_containingComponent.getName();
+	_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:attribute ecore:changeable="false" ecore:opposite="ports" ecore:reference="am:Component" name="containingComponent" type="xsd:anyURI"/>
+        <xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/>
+        <xsd:attribute ecore:reference="am:ComponentInterface" name="interface" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ITaggable" name="Component">
+  <xsd:complexType name="ComponentStructure">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getContainingStructure" type="am:ComponentStructure" unique="false">
+          <body>&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _xifexpression = null;
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
+if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;))
+{
+	&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
+	_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;) _eContainer_1);
+}
+else
+{
+	_xifexpression = null;
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
+          <body>return "::";</body>
+        </operation>
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _containingStructure = this.getContainingStructure();
+boolean _tripleEquals = (_containingStructure == null);
+if (_tripleEquals)
+{
+	_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+}
+else
+{
+	_xifexpression = this.getContainingStructure().getQualifiedNameSegments();
+}
+return _xifexpression;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:sequence>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="subStructures" type="am:ComponentStructure"/>
+        </xsd:sequence>
+        <xsd:attribute default="" ecore:unsettable="false" name="structureType" type="ecore:EString"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:IComponentStructureMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
+          <xsd:annotation>
+            <xsd:documentation>
+              <p>
+                <b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b>
+              </p>
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:simpleType>
+            <xsd:list itemType="xsd:anyURI"/>
+          </xsd:simpleType>
+        </xsd:attribute>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IComponentStructureMember">
+    <xsd:attribute ecore:reference="am:ComponentStructure" name="structure" type="xsd:anyURI"/>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:ITaggable am:INamespaceMember am:IComponentStructureMember" name="Component">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:sequence>
-          <xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:Port"/>
+          <xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:ComponentPort"/>
         </xsd:sequence>
-        <xsd:attribute ecore:reference="am:AbstractProcess" name="tasks">
+        <xsd:attribute ecore:reference="am:AbstractProcess" name="processes">
           <xsd:simpleType>
             <xsd:list itemType="xsd:anyURI"/>
           </xsd:simpleType>
@@ -1738,8 +1975,31 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType ecore:implements="am:ITaggable" name="ComponentInstance">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
+{
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
+        <xsd:attribute ecore:opposite="componentInstances" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
         <xsd:attribute ecore:reference="am:Component" name="type" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -1750,23 +2010,21 @@
         <xsd:sequence>
           <xsd:element minOccurs="0" name="sourcePort" type="am:QualifiedPort"/>
           <xsd:element minOccurs="0" name="targetPort" type="am:QualifiedPort"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="implementedInterfaces" type="am:InterfaceChannel"/>
         </xsd:sequence>
+        <xsd:attribute ecore:opposite="connectors" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
+  <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="InterfaceChannel">
+    <xsd:attribute ecore:reference="am:ComponentInterface" name="key" type="xsd:anyURI" use="required"/>
+    <xsd:attribute ecore:reference="am:Channel" name="value" type="xsd:anyURI"/>
+  </xsd:complexType>
   <xsd:complexType name="QualifiedPort">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:attribute ecore:reference="am:ComponentInstance" name="instance" type="xsd:anyURI"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
-      </xsd:extension>
-    </xsd:complexContent>
-  </xsd:complexType>
-  <xsd:complexType name="InterfacePort">
-    <xsd:complexContent>
-      <xsd:extension base="am:Port">
-        <xsd:attribute name="interfaceName" type="ecore:EString"/>
-        <xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -2945,14 +3203,23 @@
   <xsd:complexType name="HwFeature">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingCategory!=null)
 {
-	_name=_containingCategory.getName();
+	_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
@@ -2997,14 +3264,23 @@
   <xsd:complexType ecore:implements="am:ITaggable" name="HwPort">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
-&lt;%java.lang.String%&gt; _name = null;
-if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer)!=null)
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
 {
-	_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer).getName();
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
@@ -3043,14 +3319,23 @@
   <xsd:complexType ecore:implements="am:HwPathElement am:ITaggable" name="HwConnection">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
-&lt;%java.lang.String%&gt; _name = null;
-if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer)!=null)
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
 {
-	_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer).getName();
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="getPorts" type="am:HwPort" unique="false" upperBound="-1">
           <body>return &lt;%org.eclipse.emf.common.util.ECollections%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;unmodifiableEList(&lt;%org.eclipse.emf.common.util.ECollections%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;filterNull(&lt;%org.eclipse.xtext.xbase.lib.CollectionLiterals%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;newArrayList(this.getPort1(), this.getPort2()))));</body>
@@ -4748,7 +5033,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractProcess">
         <xsd:sequence>
-          <xsd:element minOccurs="0" name="callGraph" type="am:CallGraph"/>
+          <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Stimulus" name="stimuli">
           <xsd:simpleType>
@@ -4758,12 +5043,12 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" ecore:interface="true" name="ICallGraphItemContainer">
+  <xsd:complexType abstract="true" ecore:interface="true" name="IActivityGraphItemContainer">
     <xsd:sequence>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:CallGraphItem"/>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:ActivityGraphItem"/>
     </xsd:sequence>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="CallGraph">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
@@ -4771,7 +5056,7 @@
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" name="CallGraphItem">
+  <xsd:complexType abstract="true" name="ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4779,6 +5064,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Process" ecore:transient="true" ecore:volatile="true" name="containingProcess" type="xsd:IDREF"/>
         <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Runnable" ecore:transient="true" ecore:volatile="true" name="containingRunnable" type="xsd:IDREF"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ActivityGraph" ecore:transient="true" ecore:volatile="true" name="containingActivityGraph" type="xsd:IDREF"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -4787,7 +5073,7 @@
       <xsd:documentation>A switch in the call graph, the selected path depends on the value of the provided mode conditions</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ModeSwitchEntry"/>
           <xsd:element minOccurs="0" name="defaultEntry" type="am:ModeSwitchDefault"/>
@@ -4795,7 +5081,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:INamed am:ICallGraphItemContainer" name="ModeSwitchEntry">
+  <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="ModeSwitchEntry">
     <xsd:annotation>
       <xsd:documentation>A switch entry for a ModeSwitch.
 It describes a path of the switch and the required mode condition to use this path</xsd:documentation>
@@ -4808,7 +5094,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="ModeSwitchDefault">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ModeSwitchDefault">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
@@ -4818,14 +5104,14 @@
       <xsd:documentation>A switch in the call graph, each path has a probability</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ProbabilitySwitchEntry"/>
         </xsd:sequence>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="ProbabilitySwitchEntry">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ProbabilitySwitchEntry">
     <xsd:annotation>
       <xsd:documentation>A switch entry for a ProbabilitySwitch
 It describes a path of the switch and it's probability</xsd:documentation>
@@ -4853,7 +5139,7 @@
 maskType defines if the events in eventMask are linked by a AND or OR</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4884,7 +5170,7 @@
 If there is a process, it is possible to set the event for a specific process instance that is currently activated</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4898,7 +5184,7 @@
       <xsd:documentation>Clears the events of eventMask</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4947,7 +5233,7 @@
       <xsd:documentation>Triggers a stimulus to activate its processes</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
         </xsd:sequence>
@@ -4960,7 +5246,7 @@
       <xsd:documentation>Migrates task to core of resource owner</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:TaskScheduler" name="resourceOwner" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -4970,7 +5256,7 @@
       <xsd:documentation>Triggers scheduler</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="TerminateProcess">
@@ -4978,7 +5264,7 @@
       <xsd:documentation>Terminates the process</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
         </xsd:sequence>
@@ -5126,6 +5412,11 @@
       <xsd:enumeration ecore:value="0" value="inout"/>
     </xsd:restriction>
   </xsd:simpleType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IDependsOn">
+    <xsd:sequence>
+      <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
+    </xsd:sequence>
+  </xsd:complexType>
   <xsd:complexType name="DataDependency">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -5148,17 +5439,26 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="RunnableParameter">
+  <xsd:complexType ecore:implements="am:IDependsOn" name="RunnableParameter">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingRunnable!=null)
 {
-	_name=_containingRunnable.getName();
+	_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
@@ -5195,28 +5495,25 @@
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
-        <xsd:sequence>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
-        </xsd:sequence>
         <xsd:attribute ecore:changeable="false" ecore:opposite="parameters" ecore:reference="am:Runnable" name="containingRunnable" type="xsd:anyURI"/>
         <xsd:attribute ecore:unsettable="false" name="direction" type="am:DirectionType"/>
         <xsd:attribute ecore:reference="am:TypeDefinition" name="dataType" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="Runnable">
+  <xsd:complexType ecore:implements="am:INamespaceMember" name="Runnable">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getRunnableItems" type="am:CallGraphItem" unique="false" upperBound="-1">
-          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%&gt;&gt; _xblockexpression = null;
+        <operation name="getRunnableItems" type="am:ActivityGraphItem" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%&gt;&gt; _xblockexpression = null;
 {
-	&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%&gt; _callGraph = this.getCallGraph();
-	boolean _tripleEquals = (_callGraph == null);
+	&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%&gt; _activityGraph = this.getActivityGraph();
+	boolean _tripleEquals = (_activityGraph == null);
 	if (_tripleEquals)
 	{
-		this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%&gt;.eINSTANCE.createCallGraph());
+		this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%&gt;.eINSTANCE.createActivityGraph());
 	}
-	_xblockexpression = this.getCallGraph().getItems();
+	_xblockexpression = this.getActivityGraph().getItems();
 }
 return _xblockexpression;</body>
         </operation>
@@ -5231,7 +5528,7 @@
         <xsd:sequence>
           <xsd:element minOccurs="0" name="executionCondition" type="am:ModeConditionDisjunction"/>
           <xsd:element ecore:opposite="containingRunnable" maxOccurs="unbounded" minOccurs="0" name="parameters" type="am:RunnableParameter"/>
-          <xsd:element minOccurs="0" name="callGraph" type="am:CallGraph"/>
+          <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Activation" name="activations">
           <xsd:simpleType>
@@ -5281,7 +5578,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:IDisplayName" name="Label">
+  <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Label">
     <xsd:annotation>
       <xsd:documentation>Data representation, which can be accessed by run entities.</xsd:documentation>
     </xsd:annotation>
@@ -5334,7 +5631,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:IDisplayName" name="Channel">
+  <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Channel">
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:sequence>
@@ -5436,7 +5733,7 @@
       <xsd:documentation>Representation of a object that describes computation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="ExecutionNeed">
@@ -5444,7 +5741,7 @@
       <xsd:documentation>Representation of the execution needs of a Runnable (default and core-specific)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="needs" type="am:NeedEntry"/>
         </xsd:sequence>
@@ -5497,7 +5794,7 @@
       <xsd:documentation>Representation of a mode label access of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:ModeLabel" name="data" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:ModeLabelAccessEnum"/>
         <xsd:attribute name="value" type="ecore:EString">
@@ -5515,7 +5812,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ITaggable" name="LabelAccess">
+  <xsd:complexType ecore:implements="am:ITaggable am:IDependsOn" name="LabelAccess">
     <xsd:annotation>
       <xsd:documentation>Representation of a label access of a run entity.</xsd:documentation>
     </xsd:annotation>
@@ -5532,7 +5829,6 @@
               <xsd:documentation>Optional parameter for transmission policy of larger data</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Label" name="data" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:LabelAccessEnum"/>
@@ -5547,7 +5843,7 @@
   </xsd:complexType>
   <xsd:complexType abstract="true" name="ChannelAccess">
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="transmissionPolicy" type="am:TransmissionPolicy"/>
         </xsd:sequence>
@@ -5614,7 +5910,7 @@
       <xsd:documentation>Describes an semaphore access</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:Semaphore" name="semaphore" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:SemaphoreAccessEnum"/>
         <xsd:attribute ecore:unsettable="false" name="waitingBehaviour" type="am:WaitingBehaviour"/>
@@ -5639,10 +5935,10 @@
       <xsd:documentation>An abstract description for sender-receiver-communication (it can be read or write)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute default="false" ecore:unsettable="false" name="buffered" type="ecore:EBoolean"/>
         <xsd:attribute ecore:reference="am:Label" name="label" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -5675,9 +5971,9 @@
 It refers to a required runnable that describes the called server operation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:Runnable" name="serverRunnable" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -5723,17 +6019,17 @@
       <xsd:enumeration ecore:value="0" value="non_blocking"/>
     </xsd:restriction>
   </xsd:simpleType>
-  <xsd:complexType ecore:implements="am:INamed am:ICallGraphItemContainer" name="Group">
+  <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="Group">
     <xsd:annotation>
       <xsd:documentation>Describes a group of deviation runnable items</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute default="true" ecore:unsettable="false" name="ordered" type="ecore:EBoolean"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="CallArgument">
+  <xsd:complexType ecore:implements="am:IDependsOn" name="CallArgument">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
         <operation name="getName" type="ecore:EString" unique="false">
@@ -5741,7 +6037,7 @@
 boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%&gt;.isNullOrEmpty(super.getName());
 if (_isNullOrEmpty)
 {
-	_xifexpression = "access.1";
+	_xifexpression = "access-1";
 }
 else
 {
@@ -5749,56 +6045,67 @@
 }
 return _xifexpression;</body>
         </operation>
-        <operation name="computeUniqueName" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall = this.getContainingCall();
-&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>final &lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall = this.getContainingCall();
+&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%&gt; _containingActivityGraph = null;
 if (_containingCall!=null)
 {
-	_containingRunnable=_containingCall.getContainingRunnable();
+	_containingActivityGraph=_containingCall.getContainingActivityGraph();
 }
-&lt;%java.lang.String%&gt; _name = null;
-if (_containingRunnable!=null)
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = null;
+if (_containingActivityGraph!=null)
 {
-	_name=_containingRunnable.getName();
+	_eContainer=_containingActivityGraph.eContainer();
 }
-&lt;%java.lang.String%&gt; _encode = this.encode(_name);
-&lt;%java.lang.String%&gt; _plus = (_encode + "/calls/");
+final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%&gt; runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%&gt;) _eContainer);
+if ((runnableOrProcess != null))
+{
+	segments.addAll(runnableOrProcess.getQualifiedNameSegments());
+}
+segments.add("calls");
+&lt;%java.util.List%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
 &lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall_1 = this.getContainingCall();
 &lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _runnable = null;
 if (_containingCall_1!=null)
 {
 	_runnable=_containingCall_1.getRunnable();
 }
-&lt;%java.lang.String%&gt; _name_1 = null;
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_runnable!=null)
 {
-	_name_1=_runnable.getName();
+	_qualifiedNameSegments=_runnable.getQualifiedNameSegments();
 }
-&lt;%java.lang.String%&gt; _encode_1 = this.encode(_name_1);
-&lt;%java.lang.String%&gt; _plus_1 = (_plus + _encode_1);
-&lt;%java.lang.String%&gt; _plus_2 = (_plus_1 + "/param/");
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	_elvis = java.util.Collections.&lt;&lt;%java.lang.String%&gt;&gt;unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%&gt;&gt;newArrayList(""));
+}
+segments.addAll(_elvis);
+segments.add("param");
+&lt;%java.lang.String%&gt; _elvis_1 = null;
 &lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%&gt; _parameter = this.getParameter();
-&lt;%java.lang.String%&gt; _name_2 = null;
+&lt;%java.lang.String%&gt; _name = null;
 if (_parameter!=null)
 {
-	_name_2=_parameter.getName();
+	_name=_parameter.getName();
 }
-&lt;%java.lang.String%&gt; _encode_2 = this.encode(_name_2);
-&lt;%java.lang.String%&gt; _plus_3 = (_plus_2 + _encode_2);
-&lt;%java.lang.String%&gt; _plus_4 = (_plus_3 + "/");
-&lt;%java.lang.String%&gt; _encode_3 = this.encode(this.getName());
-&lt;%java.lang.String%&gt; _plus_5 = (_plus_4 + _encode_3);
-&lt;%java.lang.String%&gt; _plus_6 = (_plus_5 + "?type=");
-&lt;%java.lang.String%&gt; _name_3 = this.eClass().getName();
-return (_plus_6 + _name_3);</body>
+if (_name != null)
+{
+	_elvis_1 = _name;
+} else
+{
+	_elvis_1 = "";
+}
+segments.add(_elvis_1);
+return segments;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableObject">
-        <xsd:sequence>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
-        </xsd:sequence>
         <xsd:attribute ecore:changeable="false" ecore:opposite="arguments" ecore:reference="am:RunnableCall" name="containingCall" type="xsd:anyURI"/>
         <xsd:attribute ecore:reference="am:RunnableParameter" name="parameter" type="xsd:anyURI"/>
       </xsd:extension>
@@ -5809,7 +6116,7 @@
       <xsd:documentation>Representation of a runnable call of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element ecore:opposite="containingCall" maxOccurs="unbounded" minOccurs="0" name="arguments" type="am:CallArgument"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -5854,7 +6161,7 @@
       <xsd:documentation>Explicitly trigger a custom event from a runnable.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:CustomEvent" name="event" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -5944,7 +6251,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" name="TypeDefinition">
+  <xsd:complexType abstract="true" ecore:implements="am:INamespaceMember" name="TypeDefinition">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:sequence>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml/amalthea.xml b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml/amalthea.xml
index 5475a53..da334d9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml/amalthea.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/help-model/xml/amalthea.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.7" nsPrefix="am">
   <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
+    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
     <details key="modelName" value="Amalthea"/>
     <details key="prefix" value="Amalthea"/>
     <details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
@@ -14,7 +14,7 @@
     <details key="creationSubmenus" value="true"/>
     <details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
     <details key="loadInitialization" value="false"/>
-    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
+    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
     <details key="decoration" value="Live"/>
     <details key="collapseAllAction" value="true"/>
     <details key="expandAllAction" value="true"/>
@@ -27,7 +27,7 @@
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
         volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="get" value="return &quot;0.9.6&quot;;"/>
+        <details key="get" value="return &quot;0.9.7&quot;;"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
@@ -58,6 +58,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespaces" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
         eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
@@ -88,10 +90,51 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="INamed: Name attribute"/>
     </eAnnotations>
+    <eOperations name="getNamedContainer" unique="false" eType="#//INamed">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getQualifiedNameSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific name separator."/>
+        <details key="body" value="return &quot;.&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamespace" unique="false" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return null;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
+        volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -100,18 +143,11 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="IReferable: Computed ID for name based references"/>
     </eAnnotations>
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getEncodedQualifiedName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
-        <details key="body" value="return &quot;&quot;;"/>
+        <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="encode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
-      </eAnnotations>
-      <eParameters name="str" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
     <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
@@ -130,7 +166,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
+        <details key="get" value="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -146,6 +182,14 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="INamespaceMember" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A tag for processes, runnables, events and labels"/>
@@ -155,13 +199,38 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
         eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to this tag.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
         <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Namespace" eSuperTypes="#//ReferableObject">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nextSegments" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false" eOpposite="#//Namespace/previousSegment"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="previousSegment" eType="#//Namespace"
+        changeable="false" eOpposite="#//Namespace/nextSegments">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//INamespaceMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (INamespaceMember) referring to this namespace.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
     <eLiterals name="_undefined_"/>
     <eLiterals name="EQUAL"/>
@@ -983,9 +1052,9 @@
         eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -1040,17 +1109,27 @@
       <details key="minInclusive" value="0"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
-        eType="#//Component" containment="true" resolveProxies="false"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject #//IComponentContainer #//IInterfaceContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
         eType="#//System" containment="true" resolveProxies="false"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
+        eType="#//Component" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IInterfaceContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaces" upperBound="-1"
+        eType="#//MainInterface" containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
-        eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
+        eType="#//ComponentInstance" containment="true" resolveProxies="false" eOpposite="#//ComponentInstance/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
-        eType="#//Connector" containment="true" resolveProxies="false"/>
+        eType="#//Connector" containment="true" resolveProxies="false" eOpposite="#//Connector/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
         eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
@@ -1063,10 +1142,39 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentInterface" abstract="true"
+      eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//TypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subInterfaces" upperBound="-1"
+        eType="#//SubInterface" containment="true" resolveProxies="false" eOpposite="#//SubInterface/containingInterface"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MainInterface" eSuperTypes="#//ComponentInterface #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="1.0"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SubInterface" eSuperTypes="#//ComponentInterface">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingInterface" eType="#//ComponentInterface"
+        changeable="false" eOpposite="#//ComponentInterface/subInterfaces">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
@@ -1075,40 +1183,113 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//ComponentInterface"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentStructure" eSuperTypes="#//ReferableObject">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getContainingStructure" unique="false" eType="#//ComponentStructure">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return &quot;::&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subStructures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//IComponentStructureMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (IComponentStructureMember) referring to this structure.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentStructureMember" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structure" eType="#//ComponentStructure"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
-        eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
-        eType="#//AbstractProcess"/>
+        eType="#//ComponentPort" containment="true" resolveProxies="false" eOpposite="#//ComponentPort/containingComponent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
+        eType="#//AbstractProcess">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
-        eType="#//Runnable"/>
+        eType="#//Runnable">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
-        eType="#//Label"/>
+        eType="#//Label">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
-        eType="#//Semaphore"/>
+        eType="#//Semaphore">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
-        eType="#//OsEvent"/>
+        eType="#//OsEvent">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/componentInstances"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/connectors"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementedInterfaces"
+        upperBound="-1" eType="#//InterfaceChannel" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceChannel" instanceClassName="java.util.Map$Entry">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ComponentInterface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Channel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" lowerBound="1" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
     <eLiterals name="_undefined_"/>
@@ -1875,9 +2056,9 @@
         eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -1895,9 +2076,9 @@
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
@@ -1933,9 +2114,9 @@
         eType="#//HwConnection" containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwConnection" eSuperTypes="#//ReferableBaseObject #//HwPathElement #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort">
@@ -2249,7 +2430,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
         upperBound="-1" eType="#//Section">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memory" lowerBound="1"
@@ -3108,7 +3289,7 @@
         <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the abstract process belongs to.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -3130,22 +3311,22 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Generalizes interrupt service routines and tasks"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
         eType="#//Stimulus"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ICallGraphItemContainer" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="IActivityGraphItemContainer" abstract="true"
       interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
-        eType="#//CallGraphItem" containment="true" resolveProxies="false"/>
+        eType="#//ActivityGraphItem" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraph" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraph" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes the different execution paths of a process or runnable"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraphItem" abstract="true" eSuperTypes="#//BaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraphItem" abstract="true" eSuperTypes="#//BaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract item of a call graph"/>
     </eAnnotations>
@@ -3165,8 +3346,17 @@
         <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingActivityGraph"
+        eType="#//ActivityGraph" changeable="false" volatile="true" transient="true"
+        derived="true" resolveProxies="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, the selected path depends on the value of the provided mode conditions"/>
     </eAnnotations>
@@ -3175,22 +3365,22 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//ModeSwitchDefault"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ModeSwitch.&#xA;It describes a path of the switch and the required mode condition to use this path"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
         eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//ICallGraphItemContainer"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, each path has a probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
         eType="#//ProbabilitySwitchEntry" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ProbabilitySwitch&#xA;It describes a path of the switch and it's probability"/>
     </eAnnotations>
@@ -3206,7 +3396,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
         eType="#//NonNegativeLong" defaultValueLiteral="0"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Let the process wait for a combination of events defined by eventMask&#xA;maskType defines if the events in eventMask are linked by a AND or OR"/>
     </eAnnotations>
@@ -3229,7 +3419,7 @@
     <eLiterals name="active"/>
     <eLiterals name="passive"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Sets the events of eventMask&#xA;These events can be set for a specific process, if there is no process, is is global (for all processes)&#xA;If there is a process, it is possible to set the event for a specific process instance that is currently activated"/>
     </eAnnotations>
@@ -3239,7 +3429,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Clears the events of eventMask"/>
     </eAnnotations>
@@ -3272,7 +3462,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers a stimulus to activate its processes"/>
     </eAnnotations>
@@ -3281,19 +3471,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Migrates task to core of resource owner"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="resourceOwner" lowerBound="1"
         eType="#//TaskScheduler"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers scheduler"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Terminates the process"/>
     </eAnnotations>
@@ -3414,6 +3604,10 @@
     <eLiterals name="out"/>
     <eLiterals name="inout"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IDependsOn" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
+        containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataDependency" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
         eType="#//Label"/>
@@ -3430,10 +3624,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject #//IDependsOn">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -3450,16 +3644,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
         eType="#//DirectionType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//TypeDefinition"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement">
+  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
-    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//CallGraphItem">
+    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//ActivityGraphItem">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getFirstActivation" unique="false" eType="#//Activation">
@@ -3471,7 +3664,7 @@
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
         eType="#//RunnableParameter" containment="true" resolveProxies="false" eOpposite="#//RunnableParameter/containingRunnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
         eType="#//Activation"/>
@@ -3514,9 +3707,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Data representation, which can be accessed by run entities."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
@@ -3561,7 +3755,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultElements" unique="false"
@@ -3642,12 +3839,12 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a object that describes computation"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of the execution needs of a Runnable (default and core-specific)"/>
     </eAnnotations>
@@ -3681,7 +3878,7 @@
     <eLiterals name="increment"/>
     <eLiterals name="decrement"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a mode label access of a run entity."/>
     </eAnnotations>
@@ -3712,7 +3909,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable #//IDependsOn">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a label access of a run entity."/>
     </eAnnotations>
@@ -3739,10 +3936,8 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" unique="false"
         eType="#//LabelAccessImplementation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Channel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elements" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
@@ -3789,7 +3984,7 @@
     <eLiterals name="implicit"/>
     <eLiterals name="timed"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes an semaphore access"/>
     </eAnnotations>
@@ -3810,14 +4005,14 @@
     <eLiterals name="release"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverCommunication" abstract="true"
-      eSuperTypes="#//CallGraphItem">
+      eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for sender-receiver-communication (it can be read or write)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="buffered" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverRead" eSuperTypes="#//SenderReceiverCommunication">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3831,13 +4026,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="notifiedRunnables" upperBound="-1"
         eType="#//Runnable"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for client/server communication&#xA;It refers to a required runnable that describes the called server operation"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serverRunnable" lowerBound="1"
         eType="#//Runnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SynchronousServerCall" eSuperTypes="#//ServerCall">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3868,22 +4063,22 @@
     <eLiterals name="passive_wait"/>
     <eLiterals name="non_blocking"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//CallGraphItem #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//ActivityGraphItem #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes a group of deviation runnable items"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject">
+  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject #//IDependsOn">
     <eOperations name="getName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="computeUniqueName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingCall" eType="#//RunnableCall"
@@ -3894,13 +4089,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//RunnableParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//CallGraphItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//ActivityGraphItem #//ITaggable">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a runnable call of a run entity."/>
     </eAnnotations>
@@ -3939,7 +4132,7 @@
     </eLiterals>
     <eLiterals name="SingleCorePrioSafe"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Explicitly trigger a custom event from a runnable."/>
     </eAnnotations>
@@ -4001,7 +4194,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//INamespaceMember">
     <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
         containment="true" resolveProxies="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4010,12 +4203,16 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataTypeDefinition" eSuperTypes="#//TypeDefinition">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BaseTypeDefinition" eSuperTypes="#//TypeDefinition">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Basic data type definition, including naming (alias) in target environments"/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="aliases" upperBound="-1"
         eType="#//Alias" containment="true" resolveProxies="false">
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/dev_model_qualified_name.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/dev_model_qualified_name.png
new file mode 100644
index 0000000..60237d2
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/dev_model_qualified_name.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__activations.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__activations.png
index 6a691e5..25a98de 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__activations.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__activations.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__stimuli.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__stimuli.png
index 4766934..71c89cb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__stimuli.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model__stimuli.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements.png
index 1c265cb..f84a39b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements_namespace_member.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements_namespace_member.png
new file mode 100644
index 0000000..7f6e5f7
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_common_elements_namespace_member.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components.png
index e983ebc..d9c4fd3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_common.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_common.png
index e79768c..859fc16 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_common.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_common.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_component_references.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_component_references.png
index 34f204e..c036401 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_component_references.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_component_references.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_composition.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_composition.png
new file mode 100644
index 0000000..f2127ce
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_composition.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_connector.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_connector.png
new file mode 100644
index 0000000..a061d65
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_connector.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_interface.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_interface.png
new file mode 100644
index 0000000..a145217
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_interface.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_isystem.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_isystem.png
index d9c93c2..ea07da5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_isystem.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_components_isystem.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_dependencies.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_dependencies.png
index 1acb0e2..c32cc7f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_dependencies.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_dependencies.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__calls.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__calls.png
new file mode 100644
index 0000000..652f1a6
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__calls.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__channel_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__channel_access.png
new file mode 100644
index 0000000..6adc66a
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__channel_access.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__execution_need.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__execution_need.png
new file mode 100644
index 0000000..2869fb9
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__execution_need.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__group.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__group.png
new file mode 100644
index 0000000..5456acc
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__group.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__label_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__label_access.png
new file mode 100644
index 0000000..782b808
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__label_access.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_label_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_label_access.png
new file mode 100644
index 0000000..17dbc65
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_label_access.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_switch.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_switch.png
new file mode 100644
index 0000000..63759eb
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__mode_switch.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__probability_switch.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__probability_switch.png
new file mode 100644
index 0000000..2ac146f
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__probability_switch.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__semaphore_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__semaphore_access.png
new file mode 100644
index 0000000..3f11d4d
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__semaphore_access.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__triggers.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__triggers.png
new file mode 100644
index 0000000..ecaae4d
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activity_graph_items__triggers.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_item_container.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_item_container.png
new file mode 100644
index 0000000..a3dc7ac
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_item_container.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_items.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_items.png
new file mode 100644
index 0000000..7166e79
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_items.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_structure.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_structure.png
new file mode 100644
index 0000000..1c8b7e0
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_activitygraph_structure.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__calls.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__calls.png
deleted file mode 100644
index 8263a34..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__calls.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__channel_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__channel_access.png
deleted file mode 100644
index 67904ac..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__channel_access.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__execution_need.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__execution_need.png
deleted file mode 100644
index 7e1721f..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__execution_need.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__group.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__group.png
deleted file mode 100644
index 02659d6..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__group.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__label_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__label_access.png
deleted file mode 100644
index 73fe35f..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__label_access.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_label_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_label_access.png
deleted file mode 100644
index 6b5df20..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_label_access.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_switch.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_switch.png
deleted file mode 100644
index 75ad255..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__mode_switch.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__probability_switch.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__probability_switch.png
deleted file mode 100644
index 7017e63..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__probability_switch.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__semaphore_access.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__semaphore_access.png
deleted file mode 100644
index 415b74b..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__semaphore_access.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__triggers.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__triggers.png
deleted file mode 100644
index 958eabf..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_call_graph_items__triggers.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_item_container.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_item_container.png
deleted file mode 100644
index f393a4d..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_item_container.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_items.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_items.png
deleted file mode 100644
index ae924da..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_items.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_structure.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_structure.png
deleted file mode 100644
index 40d2880..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_callgraph_structure.png
+++ /dev/null
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_runnable_overview.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_runnable_overview.png
index e19ec14..b22f990 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_runnable_overview.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_runnable_overview.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_task_isr.png b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_task_isr.png
index 1863198..294d462 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_task_isr.png
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pictures/model_sw_task_isr.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.amalthea.model.help/pom.xml b/plugins/org.eclipse.app4mc.amalthea.model.help/pom.xml
index 136769d..1274173 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.amalthea.model.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.model/META-INF/MANIFEST.MF
index d371c5a..2c6dae9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.model/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.model;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-ClassPath: .
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.amalthea.model,
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.ecore b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.ecore
index 4080cd3..aca185e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.ecore
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.ecore
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.7" nsPrefix="am">
   <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
+    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
     <details key="modelName" value="Amalthea"/>
     <details key="prefix" value="Amalthea"/>
     <details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
@@ -14,7 +14,7 @@
     <details key="creationSubmenus" value="true"/>
     <details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
     <details key="loadInitialization" value="false"/>
-    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
+    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
     <details key="decoration" value="Live"/>
     <details key="collapseAllAction" value="true"/>
     <details key="expandAllAction" value="true"/>
@@ -24,10 +24,10 @@
   </eAnnotations>
   <eClassifiers xsi:type="ecore:EClass" name="Amalthea" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+        eType="ecore:EDataType ecore.ecore#//EString"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="get" value="return &quot;0.9.6&quot;;"/>
+        <details key="get" value="return &quot;0.9.7&quot;;"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
@@ -58,6 +58,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespaces" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
         eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
@@ -88,10 +90,51 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="INamed: Name attribute"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+    <eOperations name="getNamedContainer" unique="false" eType="#//INamed">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getQualifiedNameSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific name separator."/>
+        <details key="body" value="return &quot;.&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamespace" unique="false" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return null;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType ecore.ecore#//EString"
         defaultValueLiteral="">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        changeable="false" volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -100,68 +143,94 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="IReferable: Computed ID for name based references"/>
     </eAnnotations>
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getEncodedQualifiedName" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
-        <details key="body" value="return &quot;&quot;;"/>
+        <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="encode" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
-      </eAnnotations>
-      <eParameters name="str" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniqueName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"
+        eType="ecore:EDataType ecore.ecore#//EString"
         changeable="false" volatile="true" transient="true" derived="true" iD="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
+        <details key="get" value="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDisplayName" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="displayName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDescription" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="description" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyMultiLine" value="true"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="INamespaceMember" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A tag for processes, runnables, events and labels"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagType" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
         eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to this tag.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
         <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Namespace" eSuperTypes="#//ReferableObject">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nextSegments" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false" eOpposite="#//Namespace/previousSegment"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="previousSegment" eType="#//Namespace"
+        changeable="false" eOpposite="#//Namespace/nextSegments">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//INamespaceMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (INamespaceMember) referring to this namespace.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
     <eLiterals name="_undefined_"/>
     <eLiterals name="EQUAL"/>
@@ -183,10 +252,10 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="chunkSize" eType="#//DataSize"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="chunkProcessingTicks" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="transmitRatio" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="1.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Quantity" abstract="true">
@@ -211,12 +280,12 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General time class to define time value and unit."/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.TimeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt">
+    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ecore.ecore#//EInt">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareTimes(this, t);"/>
       </eAnnotations>
@@ -243,21 +312,21 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
       </eAnnotations>
-      <eParameters name="v" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"/>
+      <eParameters name="v" unique="false" eType="ecore:EDataType ecore.ecore#//ELong"/>
     </eOperations>
     <eOperations name="multiply" unique="false" eType="#//Time">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.multiply(this, v);"/>
       </eAnnotations>
-      <eParameters name="v" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"/>
+      <eParameters name="v" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"/>
     </eOperations>
-    <eOperations name="divide" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble">
+    <eOperations name="divide" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.divideTime(this, t);"/>
       </eAnnotations>
       <eParameters name="t" unique="false" eType="#//Time"/>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//TimeUnit"/>
   </eClassifiers>
@@ -275,7 +344,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General frequency class to define frequency value and unit"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.FrequencyUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
@@ -297,12 +366,12 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General voltage class to define voltage value and unit"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="double _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (&lt;%java.lang.Double%>.valueOf(_value) + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.VoltageUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//VoltageUnit"/>
   </eClassifiers>
@@ -334,23 +403,23 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General data size class to define size (value and unit)"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral();&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getNumberBits" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong">
+    <eOperations name="getNumberBits" unique="false" eType="ecore:EDataType ecore.ecore#//ELong">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Convenience methods to retrieve the size in Bits and Bytes"/>
         <details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.BIT);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = bits.longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getNumberBytes" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong">
+    <eOperations name="getNumberBytes" unique="false" eType="ecore:EDataType ecore.ecore#//ELong">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="long _xblockexpression = (long) 0;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%> _unit = this.getUnit();&#xA;&#x9;boolean _tripleEquals = (_unit == &lt;%org.eclipse.app4mc.amalthea.model.DataSizeUnit%>.B);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return this.getValue().longValue();&#xA;&#x9;}&#xA;&#x9;final &lt;%java.math.BigInteger%> bits = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.convertToBit(this);&#xA;&#x9;long _xifexpression = (long) 0;&#xA;&#x9;if ((bits == null))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = (-1L);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;long _longValue = bits.longValue();&#xA;&#x9;&#x9;long _divide = (_longValue / 8);&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Math%>.ceil(_divide)).longValue();&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataSizeUnit"/>
   </eClassifiers>
@@ -384,18 +453,18 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="General data rate class to define rate (value and unit)"/>
     </eAnnotations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.math.BigInteger%> _value = this.getValue();&#xA;&lt;%java.lang.String%> _plus = (_value + &quot; &quot;);&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%> _unit = this.getUnit();&#xA;boolean _equals = &lt;%com.google.common.base.Objects%>.equal(_unit, &lt;%org.eclipse.app4mc.amalthea.model.DataRateUnit%>._UNDEFINED_);&#xA;if (_equals)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;unit>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getUnit().getLiteral().replace(&quot;PerSecond&quot;, &quot;/s&quot;);&#xA;}&#xA;return (_plus + _xifexpression);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt">
+    <eOperations name="compareTo" unique="false" eType="ecore:EDataType ecore.ecore#//EInt">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.compareDataRates(this, rate);"/>
       </eAnnotations>
       <eParameters name="rate" unique="false" eType="#//DataRate"/>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="unit" unique="false" eType="#//DataRateUnit"/>
   </eClassifiers>
@@ -404,7 +473,7 @@
       <details key="documentation" value="custom property container for map"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Value"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -422,7 +491,7 @@
       <details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyMultiLine" value="true"/>
       </eAnnotations>
@@ -433,7 +502,7 @@
       <details key="documentation" value="Object for using the elementary datatype String as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"
+        eType="ecore:EDataType ecore.ecore#//EBigInteger"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ReferenceObject" eSuperTypes="#//Value">
@@ -447,7 +516,7 @@
       <details key="documentation" value="Object for using the elementary datatype integer as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="LongObject" eSuperTypes="#//Value">
@@ -455,7 +524,7 @@
       <details key="documentation" value="Object for using the elementary datatype long as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"
+        eType="ecore:EDataType ecore.ecore#//ELong"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="FloatObject" eSuperTypes="#//Value">
@@ -463,7 +532,7 @@
       <details key="documentation" value="Object for using the elementary datatype float as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+        eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DoubleObject" eSuperTypes="#//Value">
@@ -471,7 +540,7 @@
       <details key="documentation" value="Object for using the elementary datatype double as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BooleanObject" eSuperTypes="#//Value">
@@ -479,7 +548,7 @@
       <details key="documentation" value="Object for using the elementary datatype boolean as generic parameter"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NumericStatistic" abstract="true" interface="true"/>
@@ -487,27 +556,27 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Statistic to provide capabilities for min, max and avg"/>
     </eAnnotations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="min" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="avg" unique="false" eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0f"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="max" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SingleValueStatistic" eSuperTypes="#//NumericStatistic">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EFloat"
         defaultValueLiteral="0f"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="SamplingType">
@@ -532,15 +601,15 @@
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -595,15 +664,15 @@
       eSuperTypes="#//TimeInterval #//ITimeDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedTimeDistribution" abstract="true"
       eSuperTypes="#//ITimeDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -670,67 +739,67 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IDiscreteValueDeviation" abstract="true"
       interface="true">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject"/>
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject"/>
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueInterval" abstract="true">
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//ELongObject"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//ELongObject"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueConstant" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Long%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(&lt;%java.lang.Long%>.valueOf(this.getValue()).doubleValue());"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"
+        eType="ecore:EDataType ecore.ecore#//ELong"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueHistogram" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_DV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//ELongObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_DV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_DV(this.getEntries());"/>
       </eAnnotations>
@@ -747,22 +816,22 @@
       eSuperTypes="#//DiscreteValueInterval #//IDiscreteValueDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedDiscreteValueDistribution"
       abstract="true" eSuperTypes="#//IDiscreteValueDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
+        eType="ecore:EDataType ecore.ecore#//ELongObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
+        eType="ecore:EDataType ecore.ecore#//ELongObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueBoundaries" eSuperTypes="#//BoundedDiscreteValueDistribution">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -776,7 +845,7 @@
       <details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DiscreteValueUniformDistribution" eSuperTypes="#//BoundedDiscreteValueDistribution">
@@ -788,13 +857,13 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Gauss distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
         eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -805,7 +874,7 @@
       <details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
         lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -814,7 +883,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Beta distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
       </eAnnotations>
@@ -826,67 +895,67 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="IContinuousValueDeviation" abstract="true"
       interface="true">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueInterval" abstract="true">
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage(this.getLowerBound(), this.getUpperBound());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueConstant" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%java.lang.Double%>.valueOf(this.getValue());"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueHistogram" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getLowerBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getLowerBound_CV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getUpperBound" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getUpperBound_CV(this.getEntries());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverage_CV(this.getEntries());"/>
       </eAnnotations>
@@ -903,22 +972,22 @@
       abstract="true" eSuperTypes="#//ContinuousValueInterval #//IContinuousValueDeviation"/>
   <eClassifiers xsi:type="ecore:EClass" name="TruncatedContinuousValueDistribution"
       abstract="true" eSuperTypes="#//IContinuousValueDeviation">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueBoundaries" eSuperTypes="#//BoundedContinuousValueDistribution">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -932,7 +1001,7 @@
       <details key="documentation" value="Defines the upper bound, lower bound and mean of a value interval without defining the distribution"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ContinuousValueUniformDistribution"
@@ -945,13 +1014,13 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Gauss distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfTruncatedNormalDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getMean()), &lt;%java.lang.Double%>.valueOf(this.getSd()));"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="mean" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="sd" unique="false" lowerBound="1"
         eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -962,7 +1031,7 @@
       <details key="documentation" value="Weibull Distribution&#xA;The parameter of a Weibull distribution (kappa, lambda...) are calculated from the estimators minimum, maximum and average."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="average" unique="false"
-        lowerBound="1" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"
+        lowerBound="1" eType="ecore:EDataType ecore.ecore#//EDoubleObject"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="pRemainPromille" unique="false"
         lowerBound="1" eType="#//PositiveDouble" defaultValueLiteral="1.0"/>
@@ -971,7 +1040,7 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Beta distribution"/>
     </eAnnotations>
-    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject">
+    <eOperations name="getAverage" unique="false" eType="ecore:EDataType ecore.ecore#//EDoubleObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices2%>.getAverageOfBetaDistribution(this.getLowerBound(), this.getUpperBound(), &lt;%java.lang.Double%>.valueOf(this.getAlpha()), &lt;%java.lang.Double%>.valueOf(this.getBeta()));"/>
       </eAnnotations>
@@ -988,18 +1057,18 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;{&#xA;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;{&#xA;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;}&#xA;};&#xA;return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(this.getLiterals(), _function);"/>
       </eAnnotations>
-      <eParameters name="literal" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+      <eParameters name="literal" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="literals" upperBound="-1"
         eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
@@ -1051,17 +1120,27 @@
       <details key="minInclusive" value="0"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
-        eType="#//Component" containment="true" resolveProxies="false"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject #//IComponentContainer #//IInterfaceContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
         eType="#//System" containment="true" resolveProxies="false"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
+        eType="#//Component" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IInterfaceContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaces" upperBound="-1"
+        eType="#//MainInterface" containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
-        eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
+        eType="#//ComponentInstance" containment="true" resolveProxies="false" eOpposite="#//ComponentInstance/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
-        eType="#//Connector" containment="true" resolveProxies="false"/>
+        eType="#//Connector" containment="true" resolveProxies="false" eOpposite="#//Connector/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
         eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
@@ -1074,10 +1153,40 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentInterface" abstract="true"
+      eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//TypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subInterfaces" upperBound="-1"
+        eType="#//SubInterface" containment="true" resolveProxies="false" eOpposite="#//SubInterface/containingInterface"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MainInterface" eSuperTypes="#//ComponentInterface #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        defaultValueLiteral="1.0"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SubInterface" eSuperTypes="#//ComponentInterface">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingInterface" eType="#//ComponentInterface"
+        changeable="false" eOpposite="#//ComponentInterface/subInterfaces">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
@@ -1086,40 +1195,114 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//ComponentInterface"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentStructure" eSuperTypes="#//ReferableObject">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getContainingStructure" unique="false" eType="#//ComponentStructure">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return &quot;::&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
+        eType="ecore:EDataType ecore.ecore#//EString"
+        defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subStructures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//IComponentStructureMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (IComponentStructureMember) referring to this structure.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentStructureMember" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structure" eType="#//ComponentStructure"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
-        eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
-        eType="#//AbstractProcess"/>
+        eType="#//ComponentPort" containment="true" resolveProxies="false" eOpposite="#//ComponentPort/containingComponent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
+        eType="#//AbstractProcess">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
-        eType="#//Runnable"/>
+        eType="#//Runnable">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
-        eType="#//Label"/>
+        eType="#//Label">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
-        eType="#//Semaphore"/>
+        eType="#//Semaphore">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
-        eType="#//OsEvent"/>
+        eType="#//OsEvent">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/componentInstances"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/connectors"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementedInterfaces"
+        upperBound="-1" eType="#//InterfaceChannel" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceChannel" instanceClassName="java.util.Map$Entry">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ComponentInterface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Channel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" lowerBound="1" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
     <eLiterals name="_undefined_"/>
@@ -1374,7 +1557,7 @@
       <details key="documentation" value="Base class for synchronization constraints, which limit the distance between events&#xA;multipleOccurrencesAllowed: Defines whether multiple event occurrences are allowed for analysis&#xA;tolerance: Maximum allowed tolerance"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleOccurrencesAllowed"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="tolerance" lowerBound="1"
         eType="#//Time" containment="true" resolveProxies="false"/>
@@ -1442,7 +1625,7 @@
       <details key="documentation" value="A repetition constraint prescribes the distribution of a single event during runtime."/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="event" lowerBound="1" eType="#//EntityEvent"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="span" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="span" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lower" eType="#//Time"
         containment="true" resolveProxies="false"/>
@@ -1463,10 +1646,10 @@
   <eClassifiers xsi:type="ecore:EClass" name="DataAge" abstract="true"/>
   <eClassifiers xsi:type="ecore:EClass" name="DataAgeCycle" eSuperTypes="#//DataAge">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="minimumCycle" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maximumCycle" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataAgeTime" eSuperTypes="#//DataAge">
@@ -1505,7 +1688,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//CPUPercentageMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="hardwareContext" eType="#//ProcessingUnit"/>
   </eClassifiers>
@@ -1519,14 +1702,14 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//PercentageMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CountRequirementLimit" eSuperTypes="#//RequirementLimit">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="metric" unique="false"
         eType="#//CountMetric"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="limitValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="TimeRequirementLimit" eSuperTypes="#//RequirementLimit">
@@ -1659,7 +1842,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="CustomEvent" eSuperTypes="#//TriggerEvent">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="eventType" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="explicitTriggers" upperBound="-1"
         eType="#//CustomEventTrigger" changeable="false" volatile="true" transient="true"
         derived="true">
@@ -1846,14 +2029,14 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Frequency"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="clockGating" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PowerDomain" eSuperTypes="#//HwDomain">
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//Voltage"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="powerGating" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProcessingUnit" eSuperTypes="#//HwModule #//HwDestination #//HwPathElement">
@@ -1893,12 +2076,12 @@
         eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;final &lt;%java.lang.String%> featureName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;category>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = featureName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;feature>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
       </eAnnotations>
@@ -1909,27 +2092,27 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="portType" unique="false"
         eType="#//PortType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="portInterface" unique="false"
         eType="#//PortInterface"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="delegated" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
@@ -1953,9 +2136,9 @@
         eType="#//HwConnection" containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwConnection" eSuperTypes="#//ReferableBaseObject #//HwPathElement #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort">
@@ -1980,7 +2163,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="port1" eType="#//HwPort"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="port2" eType="#//HwPort"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="internal" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
@@ -2111,16 +2294,16 @@
         eType="#//CacheType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="writeStrategy" unique="false"
         eType="#//WriteStrategy"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nWays" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nWays" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="coherency" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="exclusive" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="hitRate" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPath" abstract="true">
@@ -2246,7 +2429,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="controller" lowerBound="1"
         eType="#//InterruptController"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
+        eType="ecore:EDataType ecore.ecore#//EIntegerObject"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="RunnableAllocation" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="scheduler" lowerBound="1"
@@ -2272,7 +2455,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
         upperBound="-1" eType="#//Section">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memory" lowerBound="1"
@@ -2315,20 +2498,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataStability">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
         eType="#//AccessMultiplicity"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="level" unique="false" eType="#//DataStabilityLevel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NonAtomicDataCoherency">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="enabled" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="algorithm" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="accessMultiplicity" unique="false"
         eType="#//AccessMultiplicity"/>
   </eClassifiers>
@@ -2358,13 +2541,13 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="semaphoreType" unique="false"
         eType="#//SemaphoreType"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priorityCeilingProtocol"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphoreAccesses" upperBound="-1"
         eType="#//SemaphoreAccess" changeable="false" volatile="true" transient="true"
@@ -2497,7 +2680,7 @@
       <details key="documentation" value="Common scheduling parameters"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="priority" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
+        eType="ecore:EDataType ecore.ecore#//EIntegerObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="minBudget" eType="#//Time"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="maxBudget" eType="#//Time"
@@ -2510,9 +2693,9 @@
       <details key="documentation" value="Parameter extensions (used for scheduling algorithms)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Algorithm" abstract="true" eSuperTypes="#//BaseObject"/>
   <eClassifiers xsi:type="ecore:EClass" name="InterruptSchedulingAlgorithm" abstract="true"
@@ -2563,7 +2746,7 @@
       <details key="documentation" value="Proportionate Fair (Pfair) Scheduling&#xA;(global scheduling algorithm)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="quantSizeNs" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="PfairPD2" eSuperTypes="#//Pfair">
@@ -2666,11 +2849,11 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="VendorOperatingSystem" eSuperTypes="#//OperatingSystem">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="osName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="vendor" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="OsOverhead" eSuperTypes="#//ReferableBaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="apiOverhead" eType="#//OsAPIOverhead"
@@ -2831,18 +3014,18 @@
   <eClassifiers xsi:type="ecore:EClass" name="ModeValueMapEntry" instanceClassName="java.util.Map$Entry">
     <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeValue" abstract="true" eSuperTypes="#//BaseObject">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
@@ -2851,18 +3034,18 @@
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _xifexpression = null;&#xA;&#x9;if ((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>))&#xA;&#x9;{&#xA;&#x9;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _value = &lt;%this%>.getValue();&#xA;&#x9;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, _value));&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;};&#xA;&#x9;&#x9;_xifexpression = &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>)mode).getLiterals(), _function);&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="getInteger" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject">
+    <eOperations name="getInteger" unique="false" eType="ecore:EDataType ecore.ecore#//EIntegerObject">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.Integer%> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _value = this.getValue();&#xA;&#x9;boolean _tripleEquals = (_value == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ModeLabel%> _label = this.getLabel();&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = null;&#xA;&#x9;if (_label!=null)&#xA;&#x9;{&#xA;&#x9;&#x9;_mode=_label.getMode();&#xA;&#x9;}&#xA;&#x9;final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> mode = _mode;&#xA;&#x9;&lt;%java.lang.Integer%> _xifexpression = null;&#xA;&#x9;if (((mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>) &amp;&amp; this.getValue().matches(&quot;-?\\d+&quot;)))&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.lang.Integer%>.valueOf(&lt;%java.lang.Integer%>.parseInt(this.getValue()));&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = null;&#xA;&#x9;}&#xA;&#x9;_xblockexpression = _xifexpression;&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeAssignment" eSuperTypes="#//ModeValue"/>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunction" eSuperTypes="#//BaseObject">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;if (_isSatisfiedBy)&#xA;&#x9;{&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;return false;"/>
       </eAnnotations>
@@ -2874,20 +3057,20 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionDisjunctionEntry" abstract="true"
       interface="true" eSuperTypes="#//BaseObject">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eParameters name="assignment" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeCondition" abstract="true" interface="true"
       eSuperTypes="#//ModeConditionDisjunctionEntry">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eParameters name="context" unique="false" upperBound="-1" eType="#//ModeValueMapEntry"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="relation" unique="false"
         eType="#//RelationalOperator"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeValueCondition" eSuperTypes="#//ModeValue #//ModeCondition">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue = _get;&#xA;return ((labelValue == null) || &lt;%com.google.common.base.Objects%>.equal(labelValue, this.getValue()));"/>
       </eAnnotations>
@@ -2895,7 +3078,7 @@
     </eOperations>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLabelCondition" eSuperTypes="#//ModeCondition">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%java.lang.String%> _get = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get=context.get(this.getLabel1());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue1 = _get;&#xA;&lt;%java.lang.String%> _get_1 = null;&#xA;if (context!=null)&#xA;{&#xA;&#x9;_get_1=context.get(this.getLabel2());&#xA;}&#xA;final &lt;%java.lang.String%> labelValue2 = _get_1;&#xA;return (((labelValue1 == null) || (labelValue2 == null)) || &lt;%com.google.common.base.Objects%>.equal(labelValue1, labelValue2));"/>
       </eAnnotations>
@@ -2907,7 +3090,7 @@
         eType="#//ModeLabel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeConditionConjunction" eSuperTypes="#//ModeConditionDisjunctionEntry">
-    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isSatisfiedBy" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%>> _entries = this.getEntries();&#xA;for (final &lt;%org.eclipse.app4mc.amalthea.model.ModeCondition%> entry : _entries)&#xA;{&#xA;&#x9;boolean _isSatisfiedBy = entry.isSatisfiedBy(context);&#xA;&#x9;boolean _not = (!_isSatisfiedBy);&#xA;&#x9;if (_not)&#xA;&#x9;{&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;return true;"/>
       </eAnnotations>
@@ -2952,9 +3135,9 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="occurrencesPerStep" lowerBound="1"
         eType="#//IContinuousValueDeviation" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxIncreasePerStep" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxDecreasePerStep" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
+        eType="ecore:EDataType ecore.ecore#//EDoubleObject"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="scenario" eType="#//Scenario"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -3010,7 +3193,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="occurrenceMinDistance"
         eType="#//Time" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="occurrenceCount" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="EventStimulus" eSuperTypes="#//Stimulus">
@@ -3031,7 +3214,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ArrivalCurveEntry" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberOfOccurrences" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="lowerTimeBorder" eType="#//Time"
         containment="true" resolveProxies="false"/>
@@ -3080,8 +3263,8 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="if ((&lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(mode) || &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(literal)))&#xA;{&#xA;&#x9;return null;&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>> _modes = this.getModes();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _findFirst = null;&#xA;if (_modes!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>> _function = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.Mode%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(((it instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) &amp;&amp; &lt;%com.google.common.base.Objects%>.equal(it.getName(), mode)));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Mode%>>findFirst(_modes, _function);&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>> _literals = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst)!=null)&#xA;{&#xA;&#x9;_literals=((&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>) _findFirst).getLiterals();&#xA;}&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> _findFirst_1 = null;&#xA;if (_literals!=null)&#xA;{&#xA;&#x9;final &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>> _function_1 = new &lt;%org.eclipse.xtext.xbase.lib.Functions.Function1%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>, &lt;%java.lang.Boolean%>>()&#xA;&#x9;{&#xA;&#x9;&#x9;public &lt;%java.lang.Boolean%> apply(final &lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%> it)&#xA;&#x9;&#x9;{&#xA;&#x9;&#x9;&#x9;&lt;%java.lang.String%> _name = it.getName();&#xA;&#x9;&#x9;&#x9;return &lt;%java.lang.Boolean%>.valueOf(&lt;%com.google.common.base.Objects%>.equal(_name, literal));&#xA;&#x9;&#x9;}&#xA;&#x9;};&#xA;&#x9;_findFirst_1=&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ModeLiteral%>>findFirst(_literals, _function_1);&#xA;}&#xA;return _findFirst_1;"/>
       </eAnnotations>
-      <eParameters name="mode" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-      <eParameters name="literal" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+      <eParameters name="mode" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
+      <eParameters name="literal" unique="false" eType="ecore:EDataType ecore.ecore#//EString"/>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="isrs" upperBound="-1" eType="#//ISR"
         containment="true" resolveProxies="false"/>
@@ -3138,7 +3321,7 @@
         <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the abstract process belongs to.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -3147,7 +3330,7 @@
       <details key="documentation" value="Possibility to define general custom elements"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="typeName" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ProcessChain" eSuperTypes="#//ReferableBaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3160,22 +3343,22 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Generalizes interrupt service routines and tasks"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
         eType="#//Stimulus"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ICallGraphItemContainer" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="IActivityGraphItemContainer" abstract="true"
       interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
-        eType="#//CallGraphItem" containment="true" resolveProxies="false"/>
+        eType="#//ActivityGraphItem" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraph" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraph" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes the different execution paths of a process or runnable"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraphItem" abstract="true" eSuperTypes="#//BaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraphItem" abstract="true" eSuperTypes="#//BaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract item of a call graph"/>
     </eAnnotations>
@@ -3195,8 +3378,17 @@
         <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingActivityGraph"
+        eType="#//ActivityGraph" changeable="false" volatile="true" transient="true"
+        derived="true" resolveProxies="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, the selected path depends on the value of the provided mode conditions"/>
     </eAnnotations>
@@ -3205,27 +3397,27 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//ModeSwitchDefault"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ModeSwitch.&#xA;It describes a path of the switch and the required mode condition to use this path"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
         eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//ICallGraphItemContainer"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, each path has a probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
         eType="#//ProbabilitySwitchEntry" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ProbabilitySwitch&#xA;It describes a path of the switch and it's probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="probability" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"
+        eType="ecore:EDataType ecore.ecore#//EDouble"
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Counter" eSuperTypes="#//BaseObject">
@@ -3237,7 +3429,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
         eType="#//NonNegativeLong" defaultValueLiteral="0"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Let the process wait for a combination of events defined by eventMask&#xA;maskType defines if the events in eventMask are linked by a AND or OR"/>
     </eAnnotations>
@@ -3260,7 +3452,7 @@
     <eLiterals name="active"/>
     <eLiterals name="passive"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Sets the events of eventMask&#xA;These events can be set for a specific process, if there is no process, is is global (for all processes)&#xA;If there is a process, it is possible to set the event for a specific process instance that is currently activated"/>
     </eAnnotations>
@@ -3270,7 +3462,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Clears the events of eventMask"/>
     </eAnnotations>
@@ -3291,7 +3483,7 @@
       <details key="documentation" value="A event that can be set, cleared and waited for by a process"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="communicationOverheadInBit"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="referringComponents" upperBound="-1"
         eType="#//Component" changeable="false" volatile="true" transient="true" derived="true">
@@ -3303,7 +3495,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers a stimulus to activate its processes"/>
     </eAnnotations>
@@ -3312,19 +3504,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Migrates task to core of resource owner"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="resourceOwner" lowerBound="1"
         eType="#//TaskScheduler"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers scheduler"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Terminates the process"/>
     </eAnnotations>
@@ -3338,7 +3530,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="preemption" unique="false"
         eType="#//Preemption"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="multipleTaskActivationLimit"
-        unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISR" eSuperTypes="#//Process">
@@ -3382,10 +3574,10 @@
   <eClassifiers xsi:type="ecore:EClass" name="ChainedProcessPrototype" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="prototype" lowerBound="1"
         eType="#//ProcessPrototype"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="apply" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="apply" unique="false" eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="GeneralPrecedence" abstract="true" eSuperTypes="#//BaseObject">
@@ -3446,6 +3638,10 @@
     <eLiterals name="out"/>
     <eLiterals name="inout"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IDependsOn" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
+        containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataDependency" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
         eType="#//Label"/>
@@ -3462,13 +3658,13 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject #//IDependsOn">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="toString" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="toString" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;final &lt;%java.lang.String%> runName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;runnable>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = runName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;parameter>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
       </eAnnotations>
@@ -3482,16 +3678,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
         eType="#//DirectionType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//TypeDefinition"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement">
+  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
-    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//CallGraphItem">
+    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//ActivityGraphItem">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getFirstActivation" unique="false" eType="#//Activation">
@@ -3503,19 +3698,19 @@
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
         eType="#//RunnableParameter" containment="true" resolveProxies="false" eOpposite="#//RunnableParameter/containingRunnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
         eType="#//Activation"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="callback" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Marker if runnable is used as callback."/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="service" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Marker if runnable is used as a service."/>
@@ -3548,21 +3743,22 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Data representation, which can be accessed by run entities."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="constant" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Defines the label as a constant, not modifiable entity"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bVolatile" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Defines if the label value is volatile or persistent to survive shutdown and start of system"/>
@@ -3597,14 +3793,17 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="maxElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="channelAccesses" upperBound="-1"
         eType="#//ChannelAccess" changeable="false" volatile="true" transient="true"
@@ -3618,31 +3817,31 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLabel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
-    <eOperations name="isEnum" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isEnum" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.EnumMode%>);"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="isNumeric" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="isNumeric" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Mode%> _mode = this.getMode();&#xA;return (_mode instanceof &lt;%org.eclipse.app4mc.amalthea.model.NumericMode%>);"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="mode" lowerBound="1" eType="#//Mode"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="initialValue" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="LabelDataStability">
     <eLiterals name="_undefined_"/>
@@ -3680,12 +3879,12 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a object that describes computation"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of the execution needs of a Runnable (default and core-specific)"/>
     </eAnnotations>
@@ -3694,7 +3893,7 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="NeedEntry" instanceClassName="java.util.Map$Entry">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" unique="false" lowerBound="1"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
+        eType="ecore:EDataType ecore.ecore#//EString"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1" eType="#//IDiscreteValueDeviation"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
@@ -3719,26 +3918,26 @@
     <eLiterals name="increment"/>
     <eLiterals name="decrement"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a mode label access of a run entity."/>
     </eAnnotations>
-    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean">
+    <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType ecore.ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
       </eAnnotations>
-      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
+      <eParameters name="diagnostics" unique="false" eType="ecore:EDataType ecore.ecore#//EDiagnosticChain"/>
       <eParameters name="context" unique="false">
-        <eGenericType eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-          <eTypeArguments eClassifier="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
+        <eGenericType eClassifier="ecore:EDataType ecore.ecore#//EMap">
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
+          <eTypeArguments eClassifier="ecore:EDataType ecore.ecore#//EJavaObject"/>
         </eGenericType>
       </eParameters>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//ModeLabel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="access" unique="false"
         eType="#//ModeLabelAccessEnum"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Just used in case that this access writes a value to a Mode-Label.&#xA;It can be used to define which mode value is written to the label."/>
       </eAnnotations>
@@ -3750,7 +3949,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable #//IDependsOn">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a label access of a run entity."/>
     </eAnnotations>
@@ -3777,13 +3976,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" unique="false"
         eType="#//LabelAccessImplementation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Channel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="transmissionPolicy" eType="#//TransmissionPolicy"
         containment="true" resolveProxies="false"/>
@@ -3793,13 +3990,13 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="receiveOperation" unique="false"
         eType="#//ReceiveOperation"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="dataMustBeNew" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elementIndex" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="ReceiveOperation">
@@ -3831,7 +4028,7 @@
     <eLiterals name="implicit"/>
     <eLiterals name="timed"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes an semaphore access"/>
     </eAnnotations>
@@ -3852,15 +4049,15 @@
     <eLiterals name="release"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverCommunication" abstract="true"
-      eSuperTypes="#//CallGraphItem">
+      eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for sender-receiver-communication (it can be read or write)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="buffered" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverRead" eSuperTypes="#//SenderReceiverCommunication">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3874,13 +4071,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="notifiedRunnables" upperBound="-1"
         eType="#//Runnable"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for client/server communication&#xA;It refers to a required runnable that describes the called server operation"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serverRunnable" lowerBound="1"
         eType="#//Runnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SynchronousServerCall" eSuperTypes="#//ServerCall">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3911,23 +4108,23 @@
     <eLiterals name="passive_wait"/>
     <eLiterals name="non_blocking"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//CallGraphItem #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//ActivityGraphItem #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes a group of deviation runnable items"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"
+        eType="ecore:EDataType ecore.ecore#//EBoolean"
         defaultValueLiteral="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject">
-    <eOperations name="getName" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject #//IDependsOn">
+    <eOperations name="getName" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="computeUniqueName" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingCall" eType="#//RunnableCall"
@@ -3938,13 +4135,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//RunnableParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//CallGraphItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//ActivityGraphItem #//ITaggable">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a runnable call of a run entity."/>
     </eAnnotations>
@@ -3983,7 +4178,7 @@
     </eLiterals>
     <eLiterals name="SingleCorePrioSafe"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Explicitly trigger a custom event from a runnable."/>
     </eAnnotations>
@@ -4018,7 +4213,7 @@
       <details key="documentation" value="Representation of an array data type"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="numberElements" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"
+        eType="ecore:EDataType ecore.ecore#//EInt"
         defaultValueLiteral="0"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
@@ -4035,18 +4230,18 @@
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Alias" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="target" unique="false"
-        eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+        eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Name of the target environment"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" unique="false" eType="ecore:EDataType ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString">
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="alias" unique="false" eType="ecore:EDataType ecore.ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="documentation" value="Corresponding name in the target environment"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//INamespaceMember">
     <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
         containment="true" resolveProxies="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4055,12 +4250,16 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataTypeDefinition" eSuperTypes="#//TypeDefinition">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BaseTypeDefinition" eSuperTypes="#//TypeDefinition">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Basic data type definition, including naming (alias) in target environments"/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="aliases" upperBound="-1"
         eType="#//Alias" containment="true" resolveProxies="false">
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.genmodel b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.genmodel
index 576df15..b4608d6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.genmodel
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/ecore/amalthea.genmodel
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
-    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"
+    xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" copyrightText="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"
     modelDirectory="/org.eclipse.app4mc.amalthea.model/src" creationIcons="false"
     creationSubmenus="true" editDirectory="/org.eclipse.app4mc.amalthea.model.edit/src-gen"
     editorDirectory="/org.eclipse.app4mc.amalthea.model.editor/src-gen" modelPluginID="org.eclipse.app4mc.amalthea.model"
@@ -487,7 +487,7 @@
     <genDataTypes ecoreDataType="amalthea.ecore#//NonNegativeDouble"/>
     <genClasses ecoreClass="amalthea.ecore#//Amalthea">
       <genFeatures property="Readonly" createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Amalthea/version"
-          get="return &quot;0.9.6&quot;;"/>
+          get="return &quot;0.9.7&quot;;"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/commonElements"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/swModel"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Amalthea/hwModel"/>
@@ -503,6 +503,7 @@
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//CommonElements">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/tags"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/namespaces"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/coreClassifiers"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CommonElements/memoryClassifiers"/>
     </genClasses>
@@ -516,17 +517,26 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ITaggable/tags"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//INamed">
-      <genFeatures createChild="false" propertyCategory="Main" ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/name"/>
+      <genFeatures createChild="false" propertyCategory="Basic" ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/name"/>
+      <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EAttribute amalthea.ecore#//INamed/qualifiedName" get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamedContainer" body="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamePrefix" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getQualifiedNameSegments"
+          body="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getDefaultNameSeparator"
+          body="return &quot;.&quot;;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamespace" body="return null;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//INamed/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//IReferable">
       <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EAttribute amalthea.ecore#//IReferable/uniqueName" get="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);">
+          ecoreFeature="ecore:EAttribute amalthea.ecore#//IReferable/uniqueName" get="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//IReferable/getNamePrefix" body="return &quot;&quot;;"/>
-      <genOperations ecoreOperation="amalthea.ecore#//IReferable/encode" body="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}">
-        <genParameters ecoreParameter="amalthea.ecore#//IReferable/encode/str"/>
-      </genOperations>
+      <genOperations ecoreOperation="amalthea.ecore#//IReferable/getEncodedQualifiedName"
+          body="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       <genOperations ecoreOperation="amalthea.ecore#//IReferable/validateInvariants"
           body="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);">
         <genParameters ecoreParameter="amalthea.ecore#//IReferable/validateInvariants/diagnostics"/>
@@ -539,6 +549,10 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//IDescription">
       <genFeatures createChild="false" propertyMultiLine="true" ecoreFeature="ecore:EAttribute amalthea.ecore#//IDescription/description"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//INamespaceMember">
+      <genFeatures createChild="false" propertyCategory="Basic" propertySortChoices="true"
+          ecoreFeature="ecore:EReference amalthea.ecore#//INamespaceMember/namespace"/>
+    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Tag">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Tag/tagType"/>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
@@ -546,6 +560,18 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//Namespace">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/nextSegments"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/previousSegment"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//Namespace/memberObjects"
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations ecoreOperation="amalthea.ecore#//Namespace/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Classifier"/>
     <genClasses ecoreClass="amalthea.ecore#//CoreClassifier"/>
     <genClasses ecoreClass="amalthea.ecore#//MemoryClassifier"/>
@@ -870,13 +896,20 @@
     <genClasses ecoreClass="amalthea.ecore#//ModeLiteral">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//ModeLiteral/containingMode"/>
-      <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//ModeLiteral/toString" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;literal>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getName();&#xA;}&#xA;return _xifexpression;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ComponentsModel">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/components"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/structures"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentsModel/systems"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IComponentContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IComponentContainer/components"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IInterfaceContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IInterfaceContainer/interfaces"/>
+    </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//ISystem">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ISystem/componentInstances"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ISystem/connectors"/>
@@ -886,36 +919,80 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//Port">
-      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//Port/containingComponent"/>
-      <genOperations ecoreOperation="amalthea.ecore#//Port/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//ComponentInterface">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInterface/datatype"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInterface/subInterfaces"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Component">
+    <genClasses ecoreClass="amalthea.ecore#//MainInterface" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//MainInterface/version"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//SubInterface" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//SubInterface/containingInterface"/>
+      <genOperations ecoreOperation="amalthea.ecore#//SubInterface/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//ComponentPort">
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ComponentPort/containingComponent"/>
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//ComponentPort/kind"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentPort/interface"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentPort/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//ComponentStructure" labelFeature="#//model/INamed/qualifiedName">
+      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//ComponentStructure/structureType"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentStructure/subStructures"/>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ComponentStructure/memberObjects"
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getContainingStructure"
+          body="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getDefaultNameSeparator"
+          body="return &quot;::&quot;;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentStructure/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+    </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IComponentStructureMember">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//IComponentStructureMember/structure"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//Component" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/ports"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/tasks"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/runnables"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/labels"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/semaphores"/>
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/osEvents"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/processes"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/runnables"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/labels"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/semaphores"/>
+      <genFeatures notify="false" createChild="false" propertyCategory="Included SW Elements"
+          propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Component/osEvents"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Composite"/>
     <genClasses ecoreClass="amalthea.ecore#//System"/>
     <genClasses ecoreClass="amalthea.ecore#//ComponentInstance">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInstance/containingSystem"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ComponentInstance/type"/>
+      <genOperations ecoreOperation="amalthea.ecore#//ComponentInstance/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//Connector">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/containingSystem"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/sourcePort"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/targetPort"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Connector/implementedInterfaces"/>
+    </genClasses>
+    <genClasses ecoreClass="amalthea.ecore#//InterfaceChannel">
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//InterfaceChannel/key"/>
+      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//InterfaceChannel/value"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//QualifiedPort">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//QualifiedPort/instance"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//QualifiedPort/port"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//InterfacePort">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//InterfacePort/interfaceName"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//InterfacePort/kind"/>
-    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ConfigModel">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ConfigModel/eventsToTrace"/>
     </genClasses>
@@ -1237,7 +1314,8 @@
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//HwFeature/containingCategory"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//HwFeature/value"/>
-      <genOperations ecoreOperation="amalthea.ecore#//HwFeature/getNamePrefix" body="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwFeature/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//HwFeature/toString" body="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;final &lt;%java.lang.String%> featureName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(featureName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;category>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = featureName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;feature>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//HwPort">
@@ -1251,7 +1329,8 @@
           ecoreFeature="ecore:EReference amalthea.ecore#//HwPort/connections" get="&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port1 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port1();&#xA;&lt;%org.eclipse.emf.ecore.EReference%> _hwConnection_Port2 = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwConnection_Port2();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwConnection%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getHwPort_Connections(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_hwConnection_Port1, _hwConnection_Port2)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//HwPort/getNamePrefix" body="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwPort/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ConnectionHandler">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ConnectionHandler/definition"/>
@@ -1265,8 +1344,8 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//HwConnection/port2"/>
       <genFeatures property="Readonly" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EAttribute amalthea.ecore#//HwConnection/internal" get="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;return (_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ConnectionHandler%>);"/>
-      <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getNamePrefix"
-          body="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//HwConnection/getPorts" body="return &lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>unmodifiableEList(&lt;%org.eclipse.emf.common.util.ECollections%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>filterNull(&lt;%org.eclipse.xtext.xbase.lib.CollectionLiterals%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%>>newArrayList(this.getPort1(), this.getPort2()))));"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//HwAccessElement">
@@ -1368,7 +1447,7 @@
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//MemoryMapping/memoryPositionAddress"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//PhysicalSectionMapping">
-      <genFeatures notify="false" createChild="false" propertyCategory="Main" propertySortChoices="true"
+      <genFeatures notify="false" createChild="false" propertyCategory="Basic" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//PhysicalSectionMapping/origin"/>
       <genFeatures notify="false" createChild="false" propertyCategory="Memory" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//PhysicalSectionMapping/memory"/>
@@ -1752,7 +1831,7 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//AbstractProcess">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//AbstractProcess/referringComponents"
-          get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));">
+          get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
@@ -1763,24 +1842,29 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ProcessChain/processes"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Process">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/callGraph"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/activityGraph"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Process/stimuli"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//ICallGraphItemContainer">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ICallGraphItemContainer/items"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IActivityGraphItemContainer">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IActivityGraphItemContainer/items"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//CallGraph"/>
-    <genClasses image="false" ecoreClass="amalthea.ecore#//CallGraphItem">
+    <genClasses ecoreClass="amalthea.ecore#//ActivityGraph"/>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//ActivityGraphItem">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//CallGraphItem/containingProcess"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingProcess"
           get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Process%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Process%>.class);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
-          ecoreFeature="ecore:EReference amalthea.ecore#//CallGraphItem/containingRunnable"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingRunnable"
           get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
+      <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
+          ecoreFeature="ecore:EReference amalthea.ecore#//ActivityGraphItem/containingActivityGraph"
+          get="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);">
+        <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
+      </genFeatures>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//ModeSwitch">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//ModeSwitch/entries"/>
@@ -1870,6 +1954,9 @@
     <genClasses ecoreClass="amalthea.ecore#//OrderPrecedenceSpec">
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//OrderPrecedenceSpec/orderType"/>
     </genClasses>
+    <genClasses image="false" ecoreClass="amalthea.ecore#//IDependsOn">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//IDependsOn/dependsOn"/>
+    </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//DataDependency">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataDependency/labels"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataDependency/parameters"/>
@@ -1885,16 +1972,15 @@
           ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/containingRunnable"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//RunnableParameter/direction"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/dataType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableParameter/dependsOn"/>
-      <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/getNamePrefix"
-          body="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/getNamePrefixSegments"
+          body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       <genOperations ecoreOperation="amalthea.ecore#//RunnableParameter/toString"
           body="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;final &lt;%java.lang.String%> runName = _name;&#xA;&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(runName);&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&lt;runnable>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = runName;&#xA;}&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + &quot;::&quot;);&#xA;&lt;%java.lang.String%> _xifexpression_1 = null;&#xA;boolean _isNullOrEmpty_1 = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getName());&#xA;if (_isNullOrEmpty_1)&#xA;{&#xA;&#x9;_xifexpression_1 = &quot;&lt;parameter>&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression_1 = this.getName();&#xA;}&#xA;return (_plus + _xifexpression_1);"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Runnable">
+    <genClasses ecoreClass="amalthea.ecore#//Runnable" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/executionCondition"/>
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/parameters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/callGraph"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/activityGraph"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//Runnable/activations"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Runnable/callback"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Runnable/service"/>
@@ -1910,11 +1996,11 @@
           get="&lt;%org.eclipse.emf.ecore.EReference%> _component_Runnables = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Runnables();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getRunnable_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Runnables)));">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="amalthea.ecore#//Runnable/getRunnableItems" body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//Runnable/getRunnableItems" body="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       <genOperations ecoreOperation="amalthea.ecore#//Runnable/getFirstActivation"
           body="return &lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Activation%>>head(this.getActivations());"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Label">
+    <genClasses ecoreClass="amalthea.ecore#//Label" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Label/dataType"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Label/constant"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Label/bVolatile"/>
@@ -1931,7 +2017,7 @@
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//Channel">
+    <genClasses ecoreClass="amalthea.ecore#//Channel" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//Channel/elementType"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Channel/defaultElements"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//Channel/maxElements"/>
@@ -1997,7 +2083,6 @@
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//LabelAccess/transmissionPolicy"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//LabelAccess/dataStability"/>
       <genFeatures createChild="false" ecoreFeature="ecore:EAttribute amalthea.ecore#//LabelAccess/implementation"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//LabelAccess/dependsOn"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//ChannelAccess">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//ChannelAccess/data"/>
@@ -2044,12 +2129,11 @@
     <genClasses ecoreClass="amalthea.ecore#//CallArgument">
       <genFeatures property="Readonly" notify="false" createChild="false" propertyCategory="Read only"
           ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/containingCall"/>
-      <genFeatures notify="false" createChild="false" propertyCategory="Main" propertySortChoices="true"
+      <genFeatures notify="false" createChild="false" propertyCategory="Basic" propertySortChoices="true"
           ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/parameter"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//CallArgument/dependsOn"/>
-      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getName" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
-      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/computeUniqueName"
-          body="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getName" body="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+      <genOperations ecoreOperation="amalthea.ecore#//CallArgument/getNamePrefixSegments"
+          body="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
     </genClasses>
     <genClasses ecoreClass="amalthea.ecore#//RunnableCall">
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference amalthea.ecore#//RunnableCall/runnable"/>
@@ -2085,10 +2169,10 @@
     <genClasses image="false" ecoreClass="amalthea.ecore#//TypeDefinition">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//TypeDefinition/size"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//DataTypeDefinition">
+    <genClasses ecoreClass="amalthea.ecore#//DataTypeDefinition" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//DataTypeDefinition/dataType"/>
     </genClasses>
-    <genClasses ecoreClass="amalthea.ecore#//BaseTypeDefinition">
+    <genClasses ecoreClass="amalthea.ecore#//BaseTypeDefinition" labelFeature="#//model/INamed/qualifiedName">
       <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference amalthea.ecore#//BaseTypeDefinition/aliases"/>
     </genClasses>
     <genClasses image="false" ecoreClass="amalthea.ecore#//Activation"/>
@@ -2139,333 +2223,333 @@
     </genClasses>
   </genPackages>
   <genPackages prefix="Ecore" basePackage="org.eclipse.emf" disposableProviderFactory="true"
-      multipleEditorPages="false" contentTypeIdentifier="org.eclipse.emf.ecore" ecorePackage="../../../org.eclipse.emf.ecore/model/Ecore.ecore#/">
+      multipleEditorPages="false" contentTypeIdentifier="org.eclipse.emf.ecore" ecorePackage="ecore.ecore#/">
     <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter">
       <genAnnotations source="Ecore.xsd"/>
     </genAnnotations>
     <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/exporter/org.eclipse.xsd.ecore.exporter.xmi">
       <genAnnotations source="EcoreXMI.xsd"/>
     </genAnnotations>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigDecimal"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBigInteger"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBoolean"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EBooleanObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByte"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteArray"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EByteObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EChar"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ECharacterObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDate"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDiagnosticChain"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDouble"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDoubleObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEList">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEList/E"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBigDecimal"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBigInteger"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBoolean"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EBooleanObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByte"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByteArray"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EByteObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EChar"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ECharacterObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDate"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDiagnosticChain"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDouble"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EDoubleObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EEList">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EEList/E"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumerator"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFeatureMap"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFeatureMapEntry"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloat"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFloatObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInt"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EIntegerObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaClass">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaClass/T"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EEnumerator"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFeatureMap"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFeatureMapEntry"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFloat"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EFloatObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EInt"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EIntegerObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EJavaClass">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EJavaClass/T"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EJavaObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELong"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ELongObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap/K"/>
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EMap/V"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EJavaObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ELong"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ELongObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EMap">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EMap/K"/>
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//EMap/V"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResource"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EResourceSet"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EShort"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EShortObject"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETreeIterator">
-      <genTypeParameters ecoreTypeParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETreeIterator/E"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EResource"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EResourceSet"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EShort"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EShortObject"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//EString"/>
+    <genDataTypes ecoreDataType="ecore.ecore#//ETreeIterator">
+      <genTypeParameters ecoreTypeParameter="ecore.ecore#//ETreeIterator/E"/>
     </genDataTypes>
-    <genDataTypes ecoreDataType="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EInvocationTargetException"/>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute">
+    <genDataTypes ecoreDataType="ecore.ecore#//EInvocationTargetException"/>
+    <genClasses ecoreClass="ecore.ecore#//EAttribute">
       <genFeatures createChild="false" propertyDescription="Whether the value of this attribute uniquely identifies an object within its containing resource"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute/iD"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EAttribute/iD"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The data type of this attribute"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAttribute/eAttributeType"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EAttribute/eAttributeType"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation">
+    <genClasses ecoreClass="ecore.ecore#//EAnnotation">
       <genFeatures createChild="false" propertyDescription="An identifier, typically an absolute URI, that uniquely identifies this kind of annotation"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/source"/>
-      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/details"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/eModelElement"/>
-      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/contents"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EAnnotation/source"/>
+      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/details"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/eModelElement"/>
+      <genFeatures property="None" children="true" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/contents"/>
       <genFeatures notify="false" createChild="false" propertyDescription="Objects referenced by this annotation"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EAnnotation/references"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EAnnotation/references"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass">
+    <genClasses ecoreClass="ecore.ecore#//EClass">
       <genFeatures createChild="false" propertyDescription="Whether instances of this class can be created"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/abstract"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClass/abstract"/>
       <genFeatures createChild="false" propertyDescription="Whether no corresponding implementation will be generated for this class"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/interface"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClass/interface"/>
       <genFeatures createChild="false" propertyDescription="The immediate super types of this class"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eSuperTypes"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eSuperTypes"/>
       <genFeatures property="None" children="true" createChild="true" propertyCategory=""
-          propertyDescription="The operations defined by this class" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eOperations"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllAttributes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllReferences"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eReferences"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAttributes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllContainments"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllOperations"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllStructuralFeatures"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllSuperTypes"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eIDAttribute"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eStructuralFeatures"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eGenericSuperTypes"/>
+          propertyDescription="The operations defined by this class" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eOperations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllAttributes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllReferences"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eReferences"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAttributes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllContainments"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllOperations"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllStructuralFeatures"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllSuperTypes"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eIDAttribute"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eStructuralFeatures"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClass/eGenericSuperTypes"/>
       <genFeatures property="None" notify="false" createChild="false" propertySortChoices="true"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/eAllGenericSuperTypes"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/isSuperTypeOf">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/isSuperTypeOf/someClass"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EClass/eAllGenericSuperTypes"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/isSuperTypeOf">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/isSuperTypeOf/someClass"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureCount"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature/featureID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureCount"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEStructuralFeature">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEStructuralFeature/featureID"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureID">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureID/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureID">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getFeatureID/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEStructuralFeature.1/featureName"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEStructuralFeature.1">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEStructuralFeature.1/featureName"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationCount"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEOperation">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getEOperation/operationID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOperationCount"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getEOperation">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getEOperation/operationID"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationID">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOperationID/operation"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOperationID">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getOperationID/operation"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOverride">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getOverride/operation"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getOverride">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getOverride/operation"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureType">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClass/getFeatureType/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClass/getFeatureType">
+        <genParameters ecoreParameter="ecore.ecore#//EClass/getFeatureType/feature"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier">
+    <genClasses image="false" ecoreClass="ecore.ecore#//EClassifier">
       <genFeatures createChild="false" propertyDescription="The erased instance class name denoted by this classifier"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceClassName">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceClassName">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceClass"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceClass"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The default value for features of this type"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/defaultValue"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/defaultValue"/>
       <genFeatures createChild="false" propertyDescription="The full instance type name denoted by this classifier"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/instanceTypeName"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/ePackage"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/eTypeParameters"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/isInstance">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/isInstance/object"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EClassifier/instanceTypeName"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EClassifier/ePackage"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EClassifier/eTypeParameters"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClassifier/isInstance">
+        <genParameters ecoreParameter="ecore.ecore#//EClassifier/isInstance/object"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EClassifier/getClassifierID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EClassifier/getClassifierID"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType">
+    <genClasses ecoreClass="ecore.ecore#//EDataType">
       <genFeatures createChild="false" propertyDescription="Whether a value of this data type can be serialized using the factory"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EDataType/serializable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EDataType/serializable"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/eLiterals"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral/name"/>
+    <genClasses ecoreClass="ecore.ecore#//EEnum">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EEnum/eLiterals"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteral">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteral/name"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteral.1/value"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteral.1">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteral.1/value"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteralByLiteral">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnum/getEEnumLiteralByLiteral/literal"/>
+      <genOperations ecoreOperation="ecore.ecore#//EEnum/getEEnumLiteralByLiteral">
+        <genParameters ecoreParameter="ecore.ecore#//EEnum/getEEnumLiteralByLiteral/literal"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral">
+    <genClasses ecoreClass="ecore.ecore#//EEnumLiteral">
       <genFeatures createChild="false" propertyDescription="The integer value associated with this enumerator"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/value"/>
-      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/instance"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/value"/>
+      <genFeatures property="None" createChild="false" ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/instance"/>
       <genFeatures createChild="false" propertyDescription="The literal value associated with this enumerator"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/literal"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EEnumLiteral/eEnum"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EEnumLiteral/literal"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EEnumLiteral/eEnum"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory">
+    <genClasses ecoreClass="ecore.ecore#//EFactory">
       <genFeatures property="Readonly" createChild="false" propertyDescription="The package corresponding to this factory"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/ePackage"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/create">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/create/eClass"/>
+          ecoreFeature="ecore:EReference ecore.ecore#//EFactory/ePackage"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/create">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/create/eClass"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString/eDataType"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/createFromString/literalValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/createFromString">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/createFromString/eDataType"/>
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/createFromString/literalValue"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString/eDataType"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EFactory/convertToString/instanceValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EFactory/convertToString">
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/convertToString/eDataType"/>
+        <genParameters ecoreParameter="ecore.ecore#//EFactory/convertToString/instanceValue"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/eAnnotations"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/getEAnnotation">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EModelElement/getEAnnotation/source"/>
+    <genClasses image="false" ecoreClass="ecore.ecore#//EModelElement">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EModelElement/eAnnotations"/>
+      <genOperations ecoreOperation="ecore.ecore#//EModelElement/getEAnnotation">
+        <genParameters ecoreParameter="ecore.ecore#//EModelElement/getEAnnotation/source"/>
       </genOperations>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement">
+    <genClasses image="false" ecoreClass="ecore.ecore#//ENamedElement">
       <genFeatures createChild="false" propertyDescription="The name of this model element"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ENamedElement/name"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ENamedElement/name"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject">
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eClass"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsProxy"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eResource"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainer"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainingFeature"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContainmentFeature"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eContents"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eAllContents"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eCrossReferences"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet/feature"/>
+    <genClasses ecoreClass="ecore.ecore#//EObject">
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eClass"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eIsProxy"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eResource"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainer"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainingFeature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContainmentFeature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eContents"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eAllContents"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eCrossReferences"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eGet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1/feature"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eGet.1/resolve"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eGet.1">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet.1/feature"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eGet.1/resolve"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet/feature"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eSet/newValue"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eSet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eSet/feature"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eSet/newValue"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsSet">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eIsSet/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eIsSet">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eIsSet/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eUnset">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eUnset/feature"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eUnset">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eUnset/feature"/>
       </genOperations>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke/operation"/>
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EObject/eInvoke/arguments"/>
+      <genOperations ecoreOperation="ecore.ecore#//EObject/eInvoke">
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eInvoke/operation"/>
+        <genParameters ecoreParameter="ecore.ecore#//EObject/eInvoke/arguments"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eContainingClass"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eTypeParameters"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eParameters"/>
+    <genClasses ecoreClass="ecore.ecore#//EOperation">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eContainingClass"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eTypeParameters"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eParameters"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The exceptions thrown by this operation"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eExceptions"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/eGenericExceptions"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/getOperationID"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/isOverrideOf">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EOperation/isOverrideOf/someOperation"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eExceptions"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EOperation/eGenericExceptions"/>
+      <genOperations ecoreOperation="ecore.ecore#//EOperation/getOperationID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EOperation/isOverrideOf">
+        <genParameters ecoreParameter="ecore.ecore#//EOperation/isOverrideOf/someOperation"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage">
+    <genClasses ecoreClass="ecore.ecore#//EPackage">
       <genFeatures createChild="false" propertyCategory="" propertyDescription="The universally unique namespace identifier, typically an absolute URI, for this package"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/nsURI"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EPackage/nsURI"/>
       <genFeatures createChild="false" propertyDescription="The namespace prefix used by default when serializing instances of the package's classes"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/nsPrefix"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EPackage/nsPrefix"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The factory corresponding to this package"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eFactoryInstance">
+          ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eFactoryInstance">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eClassifiers"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eSubpackages"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/eSuperPackage"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/getEClassifier">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EPackage/getEClassifier/name"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eClassifiers"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eSubpackages"/>
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EPackage/eSuperPackage"/>
+      <genOperations ecoreOperation="ecore.ecore#//EPackage/getEClassifier">
+        <genParameters ecoreParameter="ecore.ecore#//EPackage/getEClassifier/name"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter">
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EParameter/eOperation"/>
+    <genClasses ecoreClass="ecore.ecore#//EParameter">
+      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference ecore.ecore#//EParameter/eOperation"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference">
+    <genClasses ecoreClass="ecore.ecore#//EReference">
       <genFeatures createChild="false" propertyDescription="Whether this reference represents a composite relationship"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/containment"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/containment"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether this reference has as its opposite a containment reference"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/container"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/container"/>
       <genFeatures createChild="false" propertyDescription="Whether this reference resolves proxies automatically"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/resolveProxies"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EReference/resolveProxies"/>
       <genFeatures createChild="false" propertyDescription="The reference that represents the bidirectional opposite of this reference"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eOpposite"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EReference/eOpposite"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The target class of the reference"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eReferenceType">
+          ecoreFeature="ecore:EReference ecore.ecore#//EReference/eReferenceType">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures notify="false" createChild="false" propertyDescription="The attributes of the referenced class that uniquely identify a referenced instance"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EReference/eKeys"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EReference/eKeys"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature">
+    <genClasses image="false" ecoreClass="ecore.ecore#//EStructuralFeature">
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature can be changed"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/changeable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/changeable"/>
       <genFeatures createChild="false" propertyDescription="Whether no field will be generated for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/volatile"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/volatile"/>
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature will be serialized"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/transient"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/transient"/>
       <genFeatures createChild="false" propertyDescription="The literal representation of the default value for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/defaultValueLiteral"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/defaultValueLiteral"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The default value for this feature"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/defaultValue">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/defaultValue">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures createChild="false" propertyDescription="Whether the value space for this feature includes the state of not being set"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/unsettable"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/unsettable"/>
       <genFeatures createChild="false" propertyDescription="Whether the value of this feature is derived from the values of other features"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/derived"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStructuralFeature/derived"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="The class that defines this feature"
-          ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/eContainingClass">
+          ecoreFeature="ecore:EReference ecore.ecore#//EStructuralFeature/eContainingClass">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/getFeatureID"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStructuralFeature/getContainerClass"/>
+      <genOperations ecoreOperation="ecore.ecore#//EStructuralFeature/getFeatureID"/>
+      <genOperations ecoreOperation="ecore.ecore#//EStructuralFeature/getContainerClass"/>
     </genClasses>
-    <genClasses image="false" ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement">
+    <genClasses image="false" ecoreClass="ecore.ecore#//ETypedElement">
       <genFeatures createChild="false" propertyDescription="Whether the order in which values occur is meaningful"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/ordered"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/ordered"/>
       <genFeatures createChild="false" propertyDescription="Whether the same value may occur more than once"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/unique"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/unique"/>
       <genFeatures createChild="false" propertyDescription="The minimum number of values that must occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/lowerBound"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/lowerBound"/>
       <genFeatures createChild="false" propertyDescription="The maximum number of values that may occur; -1 represents unbounded and -2 represents unspecified"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/upperBound"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/upperBound"/>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether more than one value may occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/many">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/many">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures property="Readonly" createChild="false" propertyDescription="Whether at least one value must occur"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/required">
+          ecoreFeature="ecore:EAttribute ecore.ecore#//ETypedElement/required">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
       <genFeatures createChild="false" propertyDescription="The type of this element"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/eType"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypedElement/eGenericType"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypedElement/eType"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypedElement/eGenericType"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry">
+    <genClasses ecoreClass="ecore.ecore#//EStringToStringMapEntry">
       <genFeatures createChild="false" propertyCategory="" propertyDescription="The key of this map entry"
-          ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry/key"/>
+          ecoreFeature="ecore:EAttribute ecore.ecore#//EStringToStringMapEntry/key"/>
       <genFeatures createChild="false" propertyDescription="The value of this map entry"
-          propertyMultiLine="true" ecoreFeature="ecore:EAttribute ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EStringToStringMapEntry/value"/>
+          propertyMultiLine="true" ecoreFeature="ecore:EAttribute ecore.ecore#//EStringToStringMapEntry/value"/>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eUpperBound"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eTypeArguments"/>
+    <genClasses ecoreClass="ecore.ecore#//EGenericType">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eUpperBound"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eTypeArguments"/>
       <genFeatures property="Readonly" notify="false" createChild="false" propertyDescription="The erased type denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eRawType">
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eRawType">
         <propertyFilterFlags>org.eclipse.ui.views.properties.expert</propertyFilterFlags>
       </genFeatures>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eLowerBound"/>
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eLowerBound"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The type parameter denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eTypeParameter"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eTypeParameter"/>
       <genFeatures notify="false" createChild="false" propertyDescription="The classifier denoted by this generic type"
-          propertySortChoices="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/eClassifier"/>
-      <genOperations ecoreOperation="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/isInstance">
-        <genParameters ecoreParameter="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//EGenericType/isInstance/object"/>
+          propertySortChoices="true" ecoreFeature="ecore:EReference ecore.ecore#//EGenericType/eClassifier"/>
+      <genOperations ecoreOperation="ecore.ecore#//EGenericType/isInstance">
+        <genParameters ecoreParameter="ecore.ecore#//EGenericType/isInstance/object"/>
       </genOperations>
     </genClasses>
-    <genClasses ecoreClass="../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypeParameter">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ../../../org.eclipse.emf.ecore/model/Ecore.ecore#//ETypeParameter/eBounds"/>
+    <genClasses ecoreClass="ecore.ecore#//ETypeParameter">
+      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference ecore.ecore#//ETypeParameter/eBounds"/>
     </genClasses>
   </genPackages>
 </genmodel:GenModel>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema-xmi/amalthea-xmi.xsd b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema-xmi/amalthea-xmi.xsd
index aac70eb..94e04e6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema-xmi/amalthea-xmi.xsd
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema-xmi/amalthea-xmi.xsd
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.6">
+<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.7">
   <xsd:annotation>
     <xsd:documentation>*
 *******************************************************************************
-Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+Copyright (c) 2015-2020 Robert Bosch GmbH and others.
 
 This program and the accompanying materials are made
 available under the terms of the Eclipse Public License 2.0
@@ -697,6 +697,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="namespaces" type="am:Namespace"/>
           <xsd:element name="coreClassifiers" type="am:CoreClassifier"/>
           <xsd:element name="memoryClassifiers" type="am:MemoryClassifier"/>
         </xsd:choice>
@@ -813,6 +814,16 @@
     <xsd:attribute name="description" type="xsd:string"/>
   </xsd:complexType>
   <xsd:element name="IDescription" type="am:IDescription"/>
+  <xsd:complexType abstract="true" name="INamespaceMember">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="namespace" type="am:Namespace"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="namespace" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="INamespaceMember" type="am:INamespaceMember"/>
   <xsd:complexType name="Tag">
     <xsd:annotation>
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
@@ -829,6 +840,18 @@
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
+  <xsd:complexType name="Namespace">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="nextSegments" type="am:Namespace"/>
+          <xsd:element name="previousSegment" type="am:Namespace"/>
+        </xsd:choice>
+        <xsd:attribute name="previousSegment" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="Namespace" type="am:Namespace"/>
   <xsd:complexType abstract="true" name="Classifier">
     <xsd:annotation>
       <xsd:documentation>Classifiers for hardware properties</xsd:documentation>
@@ -1687,12 +1710,32 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="components" type="am:Component"/>
+          <xsd:element name="interfaces" type="am:MainInterface"/>
+          <xsd:element name="structures" type="am:ComponentStructure"/>
           <xsd:element name="systems" type="am:System"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="ComponentsModel" type="am:ComponentsModel"/>
+  <xsd:complexType abstract="true" name="IComponentContainer">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="components" type="am:Component"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IComponentContainer" type="am:IComponentContainer"/>
+  <xsd:complexType abstract="true" name="IInterfaceContainer">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="interfaces" type="am:MainInterface"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IInterfaceContainer" type="am:IInterfaceContainer"/>
   <xsd:complexType abstract="true" name="ISystem">
     <xsd:choice maxOccurs="unbounded" minOccurs="0">
       <xsd:element name="componentInstances" type="am:ComponentInstance"/>
@@ -1704,33 +1747,100 @@
     <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
   </xsd:complexType>
   <xsd:element name="ISystem" type="am:ISystem"/>
-  <xsd:complexType abstract="true" name="Port">
+  <xsd:complexType abstract="true" name="ComponentInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableBaseObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="datatype" type="am:TypeDefinition"/>
+          <xsd:element name="subInterfaces" type="am:SubInterface"/>
+        </xsd:choice>
+        <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="datatype" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="ComponentInterface" type="am:ComponentInterface"/>
+  <xsd:complexType name="MainInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
+          <xsd:element name="structure" type="am:ComponentStructure"/>
+        </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
+        <xsd:attribute name="structure" type="xsd:string"/>
+        <xsd:attribute name="version" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="MainInterface" type="am:MainInterface"/>
+  <xsd:complexType name="SubInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="containingInterface" type="am:ComponentInterface"/>
+        </xsd:choice>
+        <xsd:attribute name="containingInterface" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="SubInterface" type="am:SubInterface"/>
+  <xsd:complexType name="ComponentPort">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
           <xsd:element name="containingComponent" type="am:Component"/>
+          <xsd:element name="interface" type="am:ComponentInterface"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="kind" type="am:InterfaceKind"/>
         <xsd:attribute name="containingComponent" type="xsd:string"/>
+        <xsd:attribute name="interface" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="Port" type="am:Port"/>
+  <xsd:element name="ComponentPort" type="am:ComponentPort"/>
+  <xsd:complexType name="ComponentStructure">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="subStructures" type="am:ComponentStructure"/>
+        </xsd:choice>
+        <xsd:attribute name="structureType" type="xsd:string"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:element name="ComponentStructure" type="am:ComponentStructure"/>
+  <xsd:complexType abstract="true" name="IComponentStructureMember">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="structure" type="am:ComponentStructure"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="structure" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="IComponentStructureMember" type="am:IComponentStructureMember"/>
   <xsd:complexType name="Component">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
-          <xsd:element name="ports" type="am:Port"/>
-          <xsd:element name="tasks" type="am:AbstractProcess"/>
+          <xsd:element name="namespace" type="am:Namespace"/>
+          <xsd:element name="structure" type="am:ComponentStructure"/>
+          <xsd:element name="ports" type="am:ComponentPort"/>
+          <xsd:element name="processes" type="am:AbstractProcess"/>
           <xsd:element name="runnables" type="am:Runnable"/>
           <xsd:element name="labels" type="am:Label"/>
           <xsd:element name="semaphores" type="am:Semaphore"/>
           <xsd:element name="osEvents" type="am:OsEvent"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
-        <xsd:attribute name="tasks" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
+        <xsd:attribute name="structure" type="xsd:string"/>
+        <xsd:attribute name="processes" type="xsd:string"/>
         <xsd:attribute name="runnables" type="xsd:string"/>
         <xsd:attribute name="labels" type="xsd:string"/>
         <xsd:attribute name="semaphores" type="xsd:string"/>
@@ -1770,9 +1880,11 @@
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="containingSystem" type="am:ISystem"/>
           <xsd:element name="type" type="am:Component"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="containingSystem" type="xsd:string"/>
         <xsd:attribute name="type" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -1783,21 +1895,36 @@
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="containingSystem" type="am:ISystem"/>
           <xsd:element name="sourcePort" type="am:QualifiedPort"/>
           <xsd:element name="targetPort" type="am:QualifiedPort"/>
+          <xsd:element name="implementedInterfaces" type="am:InterfaceChannel"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
         <xsd:attribute name="tags" type="xsd:string"/>
+        <xsd:attribute name="containingSystem" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="Connector" type="am:Connector"/>
+  <xsd:complexType name="InterfaceChannel">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="key" type="am:ComponentInterface"/>
+      <xsd:element name="value" type="am:Channel"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+    <xsd:attribute name="key" type="xsd:string"/>
+    <xsd:attribute name="value" type="xsd:string"/>
+  </xsd:complexType>
+  <xsd:element name="InterfaceChannel" type="am:InterfaceChannel"/>
   <xsd:complexType name="QualifiedPort">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="instance" type="am:ComponentInstance"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="instance" type="xsd:string"/>
         <xsd:attribute name="port" type="xsd:string"/>
@@ -1805,15 +1932,6 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="QualifiedPort" type="am:QualifiedPort"/>
-  <xsd:complexType name="InterfacePort">
-    <xsd:complexContent>
-      <xsd:extension base="am:Port">
-        <xsd:attribute name="interfaceName" type="xsd:string"/>
-        <xsd:attribute name="kind" type="am:InterfaceKind"/>
-      </xsd:extension>
-    </xsd:complexContent>
-  </xsd:complexType>
-  <xsd:element name="InterfacePort" type="am:InterfacePort"/>
   <xsd:complexType name="ConfigModel">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -4872,7 +4990,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractProcess">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="callGraph" type="am:CallGraph"/>
+          <xsd:element name="activityGraph" type="am:ActivityGraph"/>
           <xsd:element name="stimuli" type="am:Stimulus"/>
         </xsd:choice>
         <xsd:attribute name="stimuli" type="xsd:string"/>
@@ -4884,33 +5002,33 @@
       <xsd:documentation>Generalizes interrupt service routines and tasks</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
-  <xsd:complexType abstract="true" name="ICallGraphItemContainer">
+  <xsd:complexType abstract="true" name="IActivityGraphItemContainer">
     <xsd:choice maxOccurs="unbounded" minOccurs="0">
-      <xsd:element name="items" type="am:CallGraphItem"/>
+      <xsd:element name="items" type="am:ActivityGraphItem"/>
       <xsd:element ref="xmi:Extension"/>
     </xsd:choice>
     <xsd:attribute ref="xmi:id"/>
     <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
   </xsd:complexType>
-  <xsd:element name="ICallGraphItemContainer" type="am:ICallGraphItemContainer"/>
-  <xsd:complexType name="CallGraph">
+  <xsd:element name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/>
+  <xsd:complexType name="ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="CallGraph" type="am:CallGraph">
+  <xsd:element name="ActivityGraph" type="am:ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
   </xsd:element>
-  <xsd:complexType abstract="true" name="CallGraphItem">
+  <xsd:complexType abstract="true" name="ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4918,7 +5036,7 @@
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:element name="CallGraphItem" type="am:CallGraphItem">
+  <xsd:element name="ActivityGraphItem" type="am:ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4928,7 +5046,7 @@
       <xsd:documentation>A switch in the call graph, the selected path depends on the value of the provided mode conditions</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="entries" type="am:ModeSwitchEntry"/>
           <xsd:element name="defaultEntry" type="am:ModeSwitchDefault"/>
@@ -4949,7 +5067,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
           <xsd:element name="condition" type="am:ModeConditionDisjunction"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
@@ -4966,7 +5084,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
       </xsd:extension>
     </xsd:complexContent>
@@ -4977,7 +5095,7 @@
       <xsd:documentation>A switch in the call graph, each path has a probability</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="entries" type="am:ProbabilitySwitchEntry"/>
         </xsd:choice>
@@ -4997,7 +5115,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
         <xsd:attribute name="probability" type="xsd:double"/>
       </xsd:extension>
@@ -5031,7 +5149,7 @@
 maskType defines if the events in eventMask are linked by a AND or OR</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5054,7 +5172,7 @@
 If there is a process, it is possible to set the event for a specific process instance that is currently activated</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="process" type="am:Process"/>
@@ -5076,7 +5194,7 @@
       <xsd:documentation>Clears the events of eventMask</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="eventMask" type="am:EventMask"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5131,7 +5249,7 @@
       <xsd:documentation>Triggers a stimulus to activate its processes</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="stimulus" type="am:InterProcessStimulus"/>
           <xsd:element name="counter" type="am:Counter"/>
@@ -5150,7 +5268,7 @@
       <xsd:documentation>Migrates task to core of resource owner</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="resourceOwner" type="am:TaskScheduler"/>
         </xsd:choice>
@@ -5168,7 +5286,7 @@
       <xsd:documentation>Triggers scheduler</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="SchedulePoint" type="am:SchedulePoint">
@@ -5181,7 +5299,7 @@
       <xsd:documentation>Terminates the process</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="counter" type="am:Counter"/>
         </xsd:choice>
@@ -5318,6 +5436,15 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/>
+  <xsd:complexType abstract="true" name="IDependsOn">
+    <xsd:choice maxOccurs="unbounded" minOccurs="0">
+      <xsd:element name="dependsOn" type="am:DataDependency"/>
+      <xsd:element ref="xmi:Extension"/>
+    </xsd:choice>
+    <xsd:attribute ref="xmi:id"/>
+    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
+  </xsd:complexType>
+  <xsd:element name="IDependsOn" type="am:IDependsOn"/>
   <xsd:complexType name="DataDependency">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -5337,9 +5464,9 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="containingRunnable" type="am:Runnable"/>
           <xsd:element name="dataType" type="am:TypeDefinition"/>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="direction" type="am:DirectionType"/>
         <xsd:attribute name="containingRunnable" type="xsd:string"/>
@@ -5355,12 +5482,14 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="executionCondition" type="am:ModeConditionDisjunction"/>
           <xsd:element name="parameters" type="am:RunnableParameter"/>
-          <xsd:element name="callGraph" type="am:CallGraph"/>
+          <xsd:element name="activityGraph" type="am:ActivityGraph"/>
           <xsd:element name="activations" type="am:Activation"/>
           <xsd:element name="section" type="am:Section"/>
         </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="callback" type="xsd:boolean">
           <xsd:annotation>
             <xsd:documentation>Marker if runnable is used as callback.</xsd:documentation>
@@ -5393,10 +5522,12 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="dataType" type="am:DataType"/>
           <xsd:element name="section" type="am:Section"/>
         </xsd:choice>
         <xsd:attribute name="displayName" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="constant" type="xsd:boolean">
           <xsd:annotation>
             <xsd:documentation>Defines the label as a constant, not modifiable entity</xsd:documentation>
@@ -5426,9 +5557,11 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="elementType" type="am:DataType"/>
         </xsd:choice>
         <xsd:attribute name="displayName" type="xsd:string"/>
+        <xsd:attribute name="namespace" type="xsd:string"/>
         <xsd:attribute name="defaultElements" type="xsd:int"/>
         <xsd:attribute name="maxElements" type="xsd:int"/>
       </xsd:extension>
@@ -5476,7 +5609,7 @@
       <xsd:documentation>Representation of a object that describes computation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:element name="ComputationItem" type="am:ComputationItem">
@@ -5489,7 +5622,7 @@
       <xsd:documentation>Representation of the execution needs of a Runnable (default and core-specific)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="needs" type="am:NeedEntry"/>
         </xsd:choice>
@@ -5545,7 +5678,7 @@
       <xsd:documentation>Representation of a mode label access of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="data" type="am:ModeLabel"/>
         </xsd:choice>
@@ -5579,6 +5712,7 @@
       <xsd:extension base="am:ComputationItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="data" type="am:Label"/>
           <xsd:element name="statistic" type="am:LabelAccessStatistic">
             <xsd:annotation>
@@ -5590,7 +5724,6 @@
               <xsd:documentation>Optional parameter for transmission policy of larger data</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="tags" type="xsd:string"/>
         <xsd:attribute name="access" type="am:LabelAccessEnum"/>
@@ -5611,7 +5744,7 @@
   </xsd:element>
   <xsd:complexType abstract="true" name="ChannelAccess">
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="data" type="am:Channel"/>
           <xsd:element name="transmissionPolicy" type="am:TransmissionPolicy"/>
@@ -5644,7 +5777,7 @@
       <xsd:documentation>Describes an semaphore access</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="semaphore" type="am:Semaphore"/>
         </xsd:choice>
@@ -5664,10 +5797,10 @@
       <xsd:documentation>An abstract description for sender-receiver-communication (it can be read or write)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="label" type="am:Label"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="buffered" type="xsd:boolean"/>
         <xsd:attribute name="label" type="xsd:string"/>
@@ -5719,10 +5852,10 @@
 It refers to a required runnable that describes the called server operation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="serverRunnable" type="am:Runnable"/>
-          <xsd:element name="port" type="am:Port"/>
+          <xsd:element name="port" type="am:ComponentPort"/>
         </xsd:choice>
         <xsd:attribute name="serverRunnable" type="xsd:string"/>
         <xsd:attribute name="port" type="xsd:string"/>
@@ -5790,9 +5923,9 @@
       <xsd:documentation>Describes a group of deviation runnable items</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
-          <xsd:element name="items" type="am:CallGraphItem"/>
+          <xsd:element name="items" type="am:ActivityGraphItem"/>
         </xsd:choice>
         <xsd:attribute name="name" type="xsd:string"/>
         <xsd:attribute name="ordered" type="xsd:boolean"/>
@@ -5808,9 +5941,9 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="dependsOn" type="am:DataDependency"/>
           <xsd:element name="containingCall" type="am:RunnableCall"/>
           <xsd:element name="parameter" type="am:RunnableParameter"/>
-          <xsd:element name="dependsOn" type="am:DataDependency"/>
         </xsd:choice>
         <xsd:attribute name="containingCall" type="xsd:string"/>
         <xsd:attribute name="parameter" type="xsd:string"/>
@@ -5823,7 +5956,7 @@
       <xsd:documentation>Representation of a runnable call of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="tags" type="am:Tag"/>
           <xsd:element name="runnable" type="am:Runnable"/>
@@ -5846,7 +5979,7 @@
       <xsd:documentation>Explicitly trigger a custom event from a runnable.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
           <xsd:element name="event" type="am:CustomEvent"/>
         </xsd:choice>
@@ -5989,12 +6122,14 @@
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:choice maxOccurs="unbounded" minOccurs="0">
+          <xsd:element name="namespace" type="am:Namespace"/>
           <xsd:element name="size" type="am:DataSize">
             <xsd:annotation>
               <xsd:documentation>Size of the defined data type</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
         </xsd:choice>
+        <xsd:attribute name="namespace" type="xsd:string"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema/amalthea.xsd b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema/amalthea.xsd
index 70c4ef6..b5bf70f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema/amalthea.xsd
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml-schema/amalthea.xsd
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.6">
+<xsd:schema xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ecore:nsPrefix="am" ecore:package="org.eclipse.app4mc.amalthea.model" targetNamespace="http://app4mc.eclipse.org/amalthea/0.9.7">
   <xsd:import namespace="http://www.eclipse.org/emf/2002/Ecore" schemaLocation="platform:/plugin/org.eclipse.emf.ecore/model/Ecore.xsd"/>
   <xsd:annotation>
     <xsd:documentation>*
 *******************************************************************************
-Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+Copyright (c) 2015-2020 Robert Bosch GmbH and others.
 
 This program and the accompanying materials are made
 available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,9 @@
   <xsd:element ecore:ignore="true" name="IReferable" type="am:IReferable"/>
   <xsd:element ecore:ignore="true" name="IDisplayName" type="am:IDisplayName"/>
   <xsd:element ecore:ignore="true" name="IDescription" type="am:IDescription"/>
+  <xsd:element ecore:ignore="true" name="INamespaceMember" type="am:INamespaceMember"/>
   <xsd:element ecore:ignore="true" name="Tag" type="am:Tag"/>
+  <xsd:element ecore:ignore="true" name="Namespace" type="am:Namespace"/>
   <xsd:element ecore:ignore="true" name="Classifier" type="am:Classifier"/>
   <xsd:element ecore:ignore="true" name="CoreClassifier" type="am:CoreClassifier"/>
   <xsd:element ecore:ignore="true" name="MemoryClassifier" type="am:MemoryClassifier"/>
@@ -95,15 +97,22 @@
   <xsd:element ecore:ignore="true" name="EnumMode" type="am:EnumMode"/>
   <xsd:element ecore:ignore="true" name="ModeLiteral" type="am:ModeLiteral"/>
   <xsd:element ecore:ignore="true" name="ComponentsModel" type="am:ComponentsModel"/>
+  <xsd:element ecore:ignore="true" name="IComponentContainer" type="am:IComponentContainer"/>
+  <xsd:element ecore:ignore="true" name="IInterfaceContainer" type="am:IInterfaceContainer"/>
   <xsd:element ecore:ignore="true" name="ISystem" type="am:ISystem"/>
-  <xsd:element ecore:ignore="true" name="Port" type="am:Port"/>
+  <xsd:element ecore:ignore="true" name="ComponentInterface" type="am:ComponentInterface"/>
+  <xsd:element ecore:ignore="true" name="MainInterface" type="am:MainInterface"/>
+  <xsd:element ecore:ignore="true" name="SubInterface" type="am:SubInterface"/>
+  <xsd:element ecore:ignore="true" name="ComponentPort" type="am:ComponentPort"/>
+  <xsd:element ecore:ignore="true" name="ComponentStructure" type="am:ComponentStructure"/>
+  <xsd:element ecore:ignore="true" name="IComponentStructureMember" type="am:IComponentStructureMember"/>
   <xsd:element ecore:ignore="true" name="Component" type="am:Component"/>
   <xsd:element ecore:ignore="true" name="Composite" type="am:Composite"/>
   <xsd:element ecore:ignore="true" name="System" type="am:System"/>
   <xsd:element ecore:ignore="true" name="ComponentInstance" type="am:ComponentInstance"/>
   <xsd:element ecore:ignore="true" name="Connector" type="am:Connector"/>
+  <xsd:element ecore:ignore="true" name="InterfaceChannel" type="am:InterfaceChannel"/>
   <xsd:element ecore:ignore="true" name="QualifiedPort" type="am:QualifiedPort"/>
-  <xsd:element ecore:ignore="true" name="InterfacePort" type="am:InterfacePort"/>
   <xsd:element ecore:ignore="true" name="ConfigModel" type="am:ConfigModel"/>
   <xsd:element ecore:ignore="true" name="EventConfig" type="am:EventConfig"/>
   <xsd:element ecore:ignore="true" name="ConstraintsModel" type="am:ConstraintsModel"/>
@@ -301,9 +310,9 @@
   <xsd:element ecore:ignore="true" name="CustomEntity" type="am:CustomEntity"/>
   <xsd:element ecore:ignore="true" name="ProcessChain" type="am:ProcessChain"/>
   <xsd:element ecore:ignore="true" name="Process" type="am:Process"/>
-  <xsd:element ecore:ignore="true" name="ICallGraphItemContainer" type="am:ICallGraphItemContainer"/>
-  <xsd:element ecore:ignore="true" name="CallGraph" type="am:CallGraph"/>
-  <xsd:element ecore:ignore="true" name="CallGraphItem" type="am:CallGraphItem"/>
+  <xsd:element ecore:ignore="true" name="IActivityGraphItemContainer" type="am:IActivityGraphItemContainer"/>
+  <xsd:element ecore:ignore="true" name="ActivityGraph" type="am:ActivityGraph"/>
+  <xsd:element ecore:ignore="true" name="ActivityGraphItem" type="am:ActivityGraphItem"/>
   <xsd:element ecore:ignore="true" name="ModeSwitch" type="am:ModeSwitch"/>
   <xsd:element ecore:ignore="true" name="ModeSwitchEntry" type="am:ModeSwitchEntry"/>
   <xsd:element ecore:ignore="true" name="ModeSwitchDefault" type="am:ModeSwitchDefault"/>
@@ -326,6 +335,7 @@
   <xsd:element ecore:ignore="true" name="GeneralPrecedence" type="am:GeneralPrecedence"/>
   <xsd:element ecore:ignore="true" name="AccessPrecedenceSpec" type="am:AccessPrecedenceSpec"/>
   <xsd:element ecore:ignore="true" name="OrderPrecedenceSpec" type="am:OrderPrecedenceSpec"/>
+  <xsd:element ecore:ignore="true" name="IDependsOn" type="am:IDependsOn"/>
   <xsd:element ecore:ignore="true" name="DataDependency" type="am:DataDependency"/>
   <xsd:element ecore:ignore="true" name="RunnableParameter" type="am:RunnableParameter"/>
   <xsd:element ecore:ignore="true" name="Runnable" type="am:Runnable"/>
@@ -406,6 +416,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="tags" type="am:Tag"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="namespaces" type="am:Namespace"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="coreClassifiers" type="am:CoreClassifier"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="memoryClassifiers" type="am:MemoryClassifier"/>
         </xsd:sequence>
@@ -451,39 +462,82 @@
   </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="INamed">
     <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamedContainer" type="am:INamed" unique="false">
+          <body>&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _xifexpression = null;
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
+if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;))
+{
+	&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
+	_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer_1);
+}
+else
+{
+	_xifexpression = null;
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getNamePrefix" type="ecore:EString" unique="false">
+          <body>&lt;%java.lang.String%&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
+boolean _tripleEquals = (_namespace == null);
+if (_tripleEquals)
+{
+	return "";
+}
+else
+{
+	_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getQualifiedNameSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>final &lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; segments = this.getNamePrefixSegments();
+&lt;%java.lang.String%&gt; _name = this.getName();
+boolean _tripleNotEquals = (_name != null);
+if (_tripleNotEquals)
+{
+	segments.add(this.getName());
+}
+return segments;</body>
+        </operation>
+        <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
+          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
+            <detail key="documentation">Overwrite this method to define a specific name separator.</detail>
+          </annotation>
+          <body>return ".";</body>
+        </operation>
+        <operation name="getNamespace" type="am:Namespace" unique="false">
+          <body>return null;</body>
+        </operation>
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
+            <detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail>
+          </annotation>
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _namespace = this.getNamespace();
+boolean _tripleEquals = (_namespace == null);
+if (_tripleEquals)
+{
+	_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+}
+else
+{
+	_xifexpression = this.getNamespace().getQualifiedNameSegments();
+}
+return _xifexpression;</body>
+        </operation>
+      </xsd:appinfo>
       <xsd:documentation>INamed: Name attribute</xsd:documentation>
     </xsd:annotation>
     <xsd:attribute default="" ecore:unsettable="false" name="name" type="ecore:EString"/>
+    <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:transient="true" ecore:volatile="true" name="qualifiedName" type="ecore:EString"/>
   </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="IReferable">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <annotation source="http://www.eclipse.org/emf/2002/GenModel">
-            <detail key="documentation">Overwrite this method to define a specific prefix (used by name-based references).</detail>
-          </annotation>
-          <body>return "";</body>
-        </operation>
-        <operation name="encode" type="ecore:EString" unique="false">
-          <parameter name="str" type="ecore:EString" unique="false"/>
-          <body>try
-{
-	&lt;%java.lang.String%&gt; _xifexpression = null;
-	boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%&gt;.isNullOrEmpty(str);
-	if (_isNullOrEmpty)
-	{
-		_xifexpression = "no-name";
-	}
-	else
-	{
-		_xifexpression = &lt;%java.net.URLEncoder%&gt;.encode(str, &lt;%java.nio.charset.StandardCharsets%&gt;.UTF_8.toString());
-	}
-	return _xifexpression;
-}
-catch (Throwable _e)
-{
-	throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);
-}</body>
+        <operation name="getEncodedQualifiedName" type="ecore:EString" unique="false">
+          <body>return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%&gt;.toEncodedString(this.getQualifiedNameSegments());</body>
         </operation>
         <operation name="validateInvariants" type="ecore:EBoolean" unique="false">
           <parameter name="diagnostics" type="ecore:EDiagnosticChain" unique="false"/>
@@ -505,6 +559,9 @@
   <xsd:complexType abstract="true" ecore:interface="true" name="IDescription">
     <xsd:attribute name="description" type="ecore:EString"/>
   </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="INamespaceMember">
+    <xsd:attribute ecore:reference="am:Namespace" name="namespace" type="xsd:anyURI"/>
+  </xsd:complexType>
   <xsd:complexType ecore:implements="am:IDescription" name="Tag">
     <xsd:annotation>
       <xsd:documentation>A tag for processes, runnables, events and labels</xsd:documentation>
@@ -516,7 +573,51 @@
           <xsd:annotation>
             <xsd:documentation>
               <p>
-                <b>Returns an <em>immutable</em> list of objects (ITaggable) referring to the this tag.</b>
+                <b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b>
+              </p>
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:simpleType>
+            <xsd:list itemType="xsd:anyURI"/>
+          </xsd:simpleType>
+        </xsd:attribute>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType name="Namespace">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Namespace%&gt; _previousSegment = this.getPreviousSegment();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_previousSegment!=null)
+{
+	_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:sequence>
+          <xsd:element ecore:opposite="previousSegment" maxOccurs="unbounded" minOccurs="0" name="nextSegments" type="am:Namespace"/>
+        </xsd:sequence>
+        <xsd:attribute ecore:changeable="false" ecore:opposite="nextSegments" ecore:reference="am:Namespace" name="previousSegment" type="xsd:anyURI"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:INamespaceMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
+          <xsd:annotation>
+            <xsd:documentation>
+              <p>
+                <b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b>
               </p>
             </xsd:documentation>
           </xsd:annotation>
@@ -1583,14 +1684,23 @@
   <xsd:complexType name="ModeLiteral">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%&gt; _containingMode = this.getContainingMode();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%&gt; _containingMode = this.getContainingMode();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingMode!=null)
 {
-	_name=_containingMode.getName();
+	_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%java.lang.String%&gt; _xifexpression = null;
@@ -1651,20 +1761,30 @@
       <xsd:minInclusive value="0"/>
     </xsd:restriction>
   </xsd:simpleType>
-  <xsd:complexType name="ComponentsModel">
+  <xsd:complexType ecore:implements="am:IComponentContainer am:IInterfaceContainer" name="ComponentsModel">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:sequence>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="structures" type="am:ComponentStructure"/>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="systems" type="am:System"/>
         </xsd:sequence>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IComponentContainer">
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="components" type="am:Component"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IInterfaceContainer">
+    <xsd:sequence>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="interfaces" type="am:MainInterface"/>
+    </xsd:sequence>
+  </xsd:complexType>
   <xsd:complexType abstract="true" ecore:interface="true" name="ISystem">
     <xsd:sequence>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/>
+      <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="componentInstances" type="am:ComponentInstance"/>
+      <xsd:element ecore:opposite="containingSystem" maxOccurs="unbounded" minOccurs="0" name="connectors" type="am:Connector"/>
       <xsd:element maxOccurs="unbounded" minOccurs="0" name="groundedPorts" type="am:QualifiedPort"/>
     </xsd:sequence>
     <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:QualifiedPort" ecore:transient="true" ecore:volatile="true" name="innerPorts">
@@ -1673,33 +1793,150 @@
       </xsd:simpleType>
     </xsd:attribute>
   </xsd:complexType>
-  <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="Port">
+  <xsd:complexType abstract="true" ecore:implements="am:ITaggable" name="ComponentInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableBaseObject">
+        <xsd:sequence>
+          <xsd:element ecore:opposite="containingInterface" maxOccurs="unbounded" minOccurs="0" name="subInterfaces" type="am:SubInterface"/>
+        </xsd:sequence>
+        <xsd:attribute ecore:reference="am:TypeDefinition" name="datatype" type="xsd:anyURI"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:INamespaceMember am:IComponentStructureMember" name="MainInterface">
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:attribute default="1.0" ecore:unsettable="false" name="version" type="ecore:EString"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType name="SubInterface">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.Component%&gt; _containingComponent = this.getContainingComponent();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%&gt; _containingInterface = this.getContainingInterface();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_containingInterface!=null)
+{
+	_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ComponentInterface">
+        <xsd:attribute ecore:changeable="false" ecore:opposite="subInterfaces" ecore:reference="am:ComponentInterface" name="containingInterface" type="xsd:anyURI"/>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:ITaggable" name="ComponentPort">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Component%&gt; _containingComponent = this.getContainingComponent();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingComponent!=null)
 {
-	_name=_containingComponent.getName();
+	_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:attribute ecore:changeable="false" ecore:opposite="ports" ecore:reference="am:Component" name="containingComponent" type="xsd:anyURI"/>
+        <xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/>
+        <xsd:attribute ecore:reference="am:ComponentInterface" name="interface" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ITaggable" name="Component">
+  <xsd:complexType name="ComponentStructure">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getContainingStructure" type="am:ComponentStructure" unique="false">
+          <body>&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _xifexpression = null;
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
+if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;))
+{
+	&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer_1 = this.eContainer();
+	_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt;) _eContainer_1);
+}
+else
+{
+	_xifexpression = null;
+}
+return _xifexpression;</body>
+        </operation>
+        <operation name="getDefaultNameSeparator" type="ecore:EString" unique="false">
+          <body>return "::";</body>
+        </operation>
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _xifexpression = null;
+&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%&gt; _containingStructure = this.getContainingStructure();
+boolean _tripleEquals = (_containingStructure == null);
+if (_tripleEquals)
+{
+	_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+}
+else
+{
+	_xifexpression = this.getContainingStructure().getQualifiedNameSegments();
+}
+return _xifexpression;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
+    <xsd:complexContent>
+      <xsd:extension base="am:ReferableObject">
+        <xsd:sequence>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="subStructures" type="am:ComponentStructure"/>
+        </xsd:sequence>
+        <xsd:attribute default="" ecore:unsettable="false" name="structureType" type="ecore:EString"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:IComponentStructureMember" ecore:transient="true" ecore:volatile="true" name="memberObjects">
+          <xsd:annotation>
+            <xsd:documentation>
+              <p>
+                <b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b>
+              </p>
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:simpleType>
+            <xsd:list itemType="xsd:anyURI"/>
+          </xsd:simpleType>
+        </xsd:attribute>
+      </xsd:extension>
+    </xsd:complexContent>
+  </xsd:complexType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IComponentStructureMember">
+    <xsd:attribute ecore:reference="am:ComponentStructure" name="structure" type="xsd:anyURI"/>
+  </xsd:complexType>
+  <xsd:complexType ecore:implements="am:ITaggable am:INamespaceMember am:IComponentStructureMember" name="Component">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:sequence>
-          <xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:Port"/>
+          <xsd:element ecore:opposite="containingComponent" maxOccurs="unbounded" minOccurs="0" name="ports" type="am:ComponentPort"/>
         </xsd:sequence>
-        <xsd:attribute ecore:reference="am:AbstractProcess" name="tasks">
+        <xsd:attribute ecore:reference="am:AbstractProcess" name="processes">
           <xsd:simpleType>
             <xsd:list itemType="xsd:anyURI"/>
           </xsd:simpleType>
@@ -1738,8 +1975,31 @@
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType ecore:implements="am:ITaggable" name="ComponentInstance">
+    <xsd:annotation>
+      <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
+{
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
+}
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
+        </operation>
+      </xsd:appinfo>
+    </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
+        <xsd:attribute ecore:opposite="componentInstances" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
         <xsd:attribute ecore:reference="am:Component" name="type" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -1750,23 +2010,21 @@
         <xsd:sequence>
           <xsd:element minOccurs="0" name="sourcePort" type="am:QualifiedPort"/>
           <xsd:element minOccurs="0" name="targetPort" type="am:QualifiedPort"/>
+          <xsd:element maxOccurs="unbounded" minOccurs="0" name="implementedInterfaces" type="am:InterfaceChannel"/>
         </xsd:sequence>
+        <xsd:attribute ecore:opposite="connectors" ecore:reference="am:ISystem" name="containingSystem" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
+  <xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="InterfaceChannel">
+    <xsd:attribute ecore:reference="am:ComponentInterface" name="key" type="xsd:anyURI" use="required"/>
+    <xsd:attribute ecore:reference="am:Channel" name="value" type="xsd:anyURI"/>
+  </xsd:complexType>
   <xsd:complexType name="QualifiedPort">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
         <xsd:attribute ecore:reference="am:ComponentInstance" name="instance" type="xsd:anyURI"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
-      </xsd:extension>
-    </xsd:complexContent>
-  </xsd:complexType>
-  <xsd:complexType name="InterfacePort">
-    <xsd:complexContent>
-      <xsd:extension base="am:Port">
-        <xsd:attribute name="interfaceName" type="ecore:EString"/>
-        <xsd:attribute ecore:unsettable="false" name="kind" type="am:InterfaceKind"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -2945,14 +3203,23 @@
   <xsd:complexType name="HwFeature">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingCategory!=null)
 {
-	_name=_containingCategory.getName();
+	_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%&gt; _containingCategory = this.getContainingCategory();
@@ -2997,14 +3264,23 @@
   <xsd:complexType ecore:implements="am:ITaggable" name="HwPort">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
-&lt;%java.lang.String%&gt; _name = null;
-if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer)!=null)
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
 {
-	_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer).getName();
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
@@ -3043,14 +3319,23 @@
   <xsd:complexType ecore:implements="am:HwPathElement am:ITaggable" name="HwConnection">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = this.eContainer();
-&lt;%java.lang.String%&gt; _name = null;
-if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer)!=null)
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt; _namedContainer = this.getNamedContainer();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
+if (_namedContainer!=null)
 {
-	_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%&gt;) _eContainer).getName();
+	_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="getPorts" type="am:HwPort" unique="false" upperBound="-1">
           <body>return &lt;%org.eclipse.emf.common.util.ECollections%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;unmodifiableEList(&lt;%org.eclipse.emf.common.util.ECollections%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;toEList(&lt;%org.eclipse.xtext.xbase.lib.IterableExtensions%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;filterNull(&lt;%org.eclipse.xtext.xbase.lib.CollectionLiterals%&gt;.&lt;&lt;%org.eclipse.app4mc.amalthea.model.HwPort%&gt;&gt;newArrayList(this.getPort1(), this.getPort2()))));</body>
@@ -4748,7 +5033,7 @@
     <xsd:complexContent>
       <xsd:extension base="am:AbstractProcess">
         <xsd:sequence>
-          <xsd:element minOccurs="0" name="callGraph" type="am:CallGraph"/>
+          <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Stimulus" name="stimuli">
           <xsd:simpleType>
@@ -4758,12 +5043,12 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" ecore:interface="true" name="ICallGraphItemContainer">
+  <xsd:complexType abstract="true" ecore:interface="true" name="IActivityGraphItemContainer">
     <xsd:sequence>
-      <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:CallGraphItem"/>
+      <xsd:element maxOccurs="unbounded" minOccurs="0" name="items" type="am:ActivityGraphItem"/>
     </xsd:sequence>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="CallGraph">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ActivityGraph">
     <xsd:annotation>
       <xsd:documentation>Describes the different execution paths of a process or runnable</xsd:documentation>
     </xsd:annotation>
@@ -4771,7 +5056,7 @@
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" name="CallGraphItem">
+  <xsd:complexType abstract="true" name="ActivityGraphItem">
     <xsd:annotation>
       <xsd:documentation>An abstract item of a call graph</xsd:documentation>
     </xsd:annotation>
@@ -4779,6 +5064,7 @@
       <xsd:extension base="am:BaseObject">
         <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Process" ecore:transient="true" ecore:volatile="true" name="containingProcess" type="xsd:IDREF"/>
         <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:Runnable" ecore:transient="true" ecore:volatile="true" name="containingRunnable" type="xsd:IDREF"/>
+        <xsd:attribute ecore:changeable="false" ecore:derived="true" ecore:reference="am:ActivityGraph" ecore:transient="true" ecore:volatile="true" name="containingActivityGraph" type="xsd:IDREF"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -4787,7 +5073,7 @@
       <xsd:documentation>A switch in the call graph, the selected path depends on the value of the provided mode conditions</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ModeSwitchEntry"/>
           <xsd:element minOccurs="0" name="defaultEntry" type="am:ModeSwitchDefault"/>
@@ -4795,7 +5081,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:INamed am:ICallGraphItemContainer" name="ModeSwitchEntry">
+  <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="ModeSwitchEntry">
     <xsd:annotation>
       <xsd:documentation>A switch entry for a ModeSwitch.
 It describes a path of the switch and the required mode condition to use this path</xsd:documentation>
@@ -4808,7 +5094,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="ModeSwitchDefault">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ModeSwitchDefault">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject"/>
     </xsd:complexContent>
@@ -4818,14 +5104,14 @@
       <xsd:documentation>A switch in the call graph, each path has a probability</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="entries" type="am:ProbabilitySwitchEntry"/>
         </xsd:sequence>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ICallGraphItemContainer" name="ProbabilitySwitchEntry">
+  <xsd:complexType ecore:implements="am:IActivityGraphItemContainer" name="ProbabilitySwitchEntry">
     <xsd:annotation>
       <xsd:documentation>A switch entry for a ProbabilitySwitch
 It describes a path of the switch and it's probability</xsd:documentation>
@@ -4853,7 +5139,7 @@
 maskType defines if the events in eventMask are linked by a AND or OR</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4884,7 +5170,7 @@
 If there is a process, it is possible to set the event for a specific process instance that is currently activated</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4898,7 +5184,7 @@
       <xsd:documentation>Clears the events of eventMask</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="eventMask" type="am:EventMask"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -4947,7 +5233,7 @@
       <xsd:documentation>Triggers a stimulus to activate its processes</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
         </xsd:sequence>
@@ -4960,7 +5246,7 @@
       <xsd:documentation>Migrates task to core of resource owner</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:TaskScheduler" name="resourceOwner" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -4970,7 +5256,7 @@
       <xsd:documentation>Triggers scheduler</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="TerminateProcess">
@@ -4978,7 +5264,7 @@
       <xsd:documentation>Terminates the process</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
         </xsd:sequence>
@@ -5126,6 +5412,11 @@
       <xsd:enumeration ecore:value="0" value="inout"/>
     </xsd:restriction>
   </xsd:simpleType>
+  <xsd:complexType abstract="true" ecore:interface="true" name="IDependsOn">
+    <xsd:sequence>
+      <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
+    </xsd:sequence>
+  </xsd:complexType>
   <xsd:complexType name="DataDependency">
     <xsd:complexContent>
       <xsd:extension base="am:BaseObject">
@@ -5148,17 +5439,26 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="RunnableParameter">
+  <xsd:complexType ecore:implements="am:IDependsOn" name="RunnableParameter">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getNamePrefix" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
-&lt;%java.lang.String%&gt; _name = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
+&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_containingRunnable!=null)
 {
-	_name=_containingRunnable.getName();
+	_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();
 }
-return _name;</body>
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	&lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+	_elvis = _newBasicEList;
+}
+return _elvis;</body>
         </operation>
         <operation name="toString" type="ecore:EString" unique="false">
           <body>&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = this.getContainingRunnable();
@@ -5195,28 +5495,25 @@
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
-        <xsd:sequence>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
-        </xsd:sequence>
         <xsd:attribute ecore:changeable="false" ecore:opposite="parameters" ecore:reference="am:Runnable" name="containingRunnable" type="xsd:anyURI"/>
         <xsd:attribute ecore:unsettable="false" name="direction" type="am:DirectionType"/>
         <xsd:attribute ecore:reference="am:TypeDefinition" name="dataType" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="Runnable">
+  <xsd:complexType ecore:implements="am:INamespaceMember" name="Runnable">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
-        <operation name="getRunnableItems" type="am:CallGraphItem" unique="false" upperBound="-1">
-          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%&gt;&gt; _xblockexpression = null;
+        <operation name="getRunnableItems" type="am:ActivityGraphItem" unique="false" upperBound="-1">
+          <body>&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%&gt;&gt; _xblockexpression = null;
 {
-	&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%&gt; _callGraph = this.getCallGraph();
-	boolean _tripleEquals = (_callGraph == null);
+	&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%&gt; _activityGraph = this.getActivityGraph();
+	boolean _tripleEquals = (_activityGraph == null);
 	if (_tripleEquals)
 	{
-		this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%&gt;.eINSTANCE.createCallGraph());
+		this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%&gt;.eINSTANCE.createActivityGraph());
 	}
-	_xblockexpression = this.getCallGraph().getItems();
+	_xblockexpression = this.getActivityGraph().getItems();
 }
 return _xblockexpression;</body>
         </operation>
@@ -5231,7 +5528,7 @@
         <xsd:sequence>
           <xsd:element minOccurs="0" name="executionCondition" type="am:ModeConditionDisjunction"/>
           <xsd:element ecore:opposite="containingRunnable" maxOccurs="unbounded" minOccurs="0" name="parameters" type="am:RunnableParameter"/>
-          <xsd:element minOccurs="0" name="callGraph" type="am:CallGraph"/>
+          <xsd:element minOccurs="0" name="activityGraph" type="am:ActivityGraph"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Activation" name="activations">
           <xsd:simpleType>
@@ -5281,7 +5578,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:IDisplayName" name="Label">
+  <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Label">
     <xsd:annotation>
       <xsd:documentation>Data representation, which can be accessed by run entities.</xsd:documentation>
     </xsd:annotation>
@@ -5334,7 +5631,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:IDisplayName" name="Channel">
+  <xsd:complexType ecore:implements="am:IDisplayName am:INamespaceMember" name="Channel">
     <xsd:complexContent>
       <xsd:extension base="am:AbstractMemoryElement">
         <xsd:sequence>
@@ -5436,7 +5733,7 @@
       <xsd:documentation>Representation of a object that describes computation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem"/>
+      <xsd:extension base="am:ActivityGraphItem"/>
     </xsd:complexContent>
   </xsd:complexType>
   <xsd:complexType name="ExecutionNeed">
@@ -5444,7 +5741,7 @@
       <xsd:documentation>Representation of the execution needs of a Runnable (default and core-specific)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element maxOccurs="unbounded" minOccurs="0" name="needs" type="am:NeedEntry"/>
         </xsd:sequence>
@@ -5497,7 +5794,7 @@
       <xsd:documentation>Representation of a mode label access of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:ModeLabel" name="data" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:ModeLabelAccessEnum"/>
         <xsd:attribute name="value" type="ecore:EString">
@@ -5515,7 +5812,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType ecore:implements="am:ITaggable" name="LabelAccess">
+  <xsd:complexType ecore:implements="am:ITaggable am:IDependsOn" name="LabelAccess">
     <xsd:annotation>
       <xsd:documentation>Representation of a label access of a run entity.</xsd:documentation>
     </xsd:annotation>
@@ -5532,7 +5829,6 @@
               <xsd:documentation>Optional parameter for transmission policy of larger data</xsd:documentation>
             </xsd:annotation>
           </xsd:element>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
         </xsd:sequence>
         <xsd:attribute ecore:reference="am:Label" name="data" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:LabelAccessEnum"/>
@@ -5547,7 +5843,7 @@
   </xsd:complexType>
   <xsd:complexType abstract="true" name="ChannelAccess">
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element minOccurs="0" name="transmissionPolicy" type="am:TransmissionPolicy"/>
         </xsd:sequence>
@@ -5614,7 +5910,7 @@
       <xsd:documentation>Describes an semaphore access</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:Semaphore" name="semaphore" type="xsd:anyURI" use="required"/>
         <xsd:attribute ecore:unsettable="false" name="access" type="am:SemaphoreAccessEnum"/>
         <xsd:attribute ecore:unsettable="false" name="waitingBehaviour" type="am:WaitingBehaviour"/>
@@ -5639,10 +5935,10 @@
       <xsd:documentation>An abstract description for sender-receiver-communication (it can be read or write)</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute default="false" ecore:unsettable="false" name="buffered" type="ecore:EBoolean"/>
         <xsd:attribute ecore:reference="am:Label" name="label" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -5675,9 +5971,9 @@
 It refers to a required runnable that describes the called server operation</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:Runnable" name="serverRunnable" type="xsd:anyURI" use="required"/>
-        <xsd:attribute ecore:reference="am:Port" name="port" type="xsd:anyURI"/>
+        <xsd:attribute ecore:reference="am:ComponentPort" name="port" type="xsd:anyURI"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
@@ -5723,17 +6019,17 @@
       <xsd:enumeration ecore:value="0" value="non_blocking"/>
     </xsd:restriction>
   </xsd:simpleType>
-  <xsd:complexType ecore:implements="am:INamed am:ICallGraphItemContainer" name="Group">
+  <xsd:complexType ecore:implements="am:INamed am:IActivityGraphItemContainer" name="Group">
     <xsd:annotation>
       <xsd:documentation>Describes a group of deviation runnable items</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute default="true" ecore:unsettable="false" name="ordered" type="ecore:EBoolean"/>
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType name="CallArgument">
+  <xsd:complexType ecore:implements="am:IDependsOn" name="CallArgument">
     <xsd:annotation>
       <xsd:appinfo ecore:key="operations" source="http://www.eclipse.org/emf/2002/Ecore">
         <operation name="getName" type="ecore:EString" unique="false">
@@ -5741,7 +6037,7 @@
 boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%&gt;.isNullOrEmpty(super.getName());
 if (_isNullOrEmpty)
 {
-	_xifexpression = "access.1";
+	_xifexpression = "access-1";
 }
 else
 {
@@ -5749,56 +6045,67 @@
 }
 return _xifexpression;</body>
         </operation>
-        <operation name="computeUniqueName" type="ecore:EString" unique="false">
-          <body>&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall = this.getContainingCall();
-&lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _containingRunnable = null;
+        <operation name="getNamePrefixSegments" type="ecore:EString" unique="false" upperBound="-1">
+          <body>final &lt;%org.eclipse.emf.common.util.BasicEList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%&gt;.&lt;&lt;%java.lang.String%&gt;&gt;newBasicEList();
+&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall = this.getContainingCall();
+&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%&gt; _containingActivityGraph = null;
 if (_containingCall!=null)
 {
-	_containingRunnable=_containingCall.getContainingRunnable();
+	_containingActivityGraph=_containingCall.getContainingActivityGraph();
 }
-&lt;%java.lang.String%&gt; _name = null;
-if (_containingRunnable!=null)
+&lt;%org.eclipse.emf.ecore.EObject%&gt; _eContainer = null;
+if (_containingActivityGraph!=null)
 {
-	_name=_containingRunnable.getName();
+	_eContainer=_containingActivityGraph.eContainer();
 }
-&lt;%java.lang.String%&gt; _encode = this.encode(_name);
-&lt;%java.lang.String%&gt; _plus = (_encode + "/calls/");
+final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%&gt; runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%&gt;) _eContainer);
+if ((runnableOrProcess != null))
+{
+	segments.addAll(runnableOrProcess.getQualifiedNameSegments());
+}
+segments.add("calls");
+&lt;%java.util.List%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _elvis = null;
 &lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%&gt; _containingCall_1 = this.getContainingCall();
 &lt;%org.eclipse.app4mc.amalthea.model.Runnable%&gt; _runnable = null;
 if (_containingCall_1!=null)
 {
 	_runnable=_containingCall_1.getRunnable();
 }
-&lt;%java.lang.String%&gt; _name_1 = null;
+&lt;%org.eclipse.emf.common.util.EList%&gt;&lt;&lt;%java.lang.String%&gt;&gt; _qualifiedNameSegments = null;
 if (_runnable!=null)
 {
-	_name_1=_runnable.getName();
+	_qualifiedNameSegments=_runnable.getQualifiedNameSegments();
 }
-&lt;%java.lang.String%&gt; _encode_1 = this.encode(_name_1);
-&lt;%java.lang.String%&gt; _plus_1 = (_plus + _encode_1);
-&lt;%java.lang.String%&gt; _plus_2 = (_plus_1 + "/param/");
+if (_qualifiedNameSegments != null)
+{
+	_elvis = _qualifiedNameSegments;
+} else
+{
+	_elvis = java.util.Collections.&lt;&lt;%java.lang.String%&gt;&gt;unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%&gt;&gt;newArrayList(""));
+}
+segments.addAll(_elvis);
+segments.add("param");
+&lt;%java.lang.String%&gt; _elvis_1 = null;
 &lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%&gt; _parameter = this.getParameter();
-&lt;%java.lang.String%&gt; _name_2 = null;
+&lt;%java.lang.String%&gt; _name = null;
 if (_parameter!=null)
 {
-	_name_2=_parameter.getName();
+	_name=_parameter.getName();
 }
-&lt;%java.lang.String%&gt; _encode_2 = this.encode(_name_2);
-&lt;%java.lang.String%&gt; _plus_3 = (_plus_2 + _encode_2);
-&lt;%java.lang.String%&gt; _plus_4 = (_plus_3 + "/");
-&lt;%java.lang.String%&gt; _encode_3 = this.encode(this.getName());
-&lt;%java.lang.String%&gt; _plus_5 = (_plus_4 + _encode_3);
-&lt;%java.lang.String%&gt; _plus_6 = (_plus_5 + "?type=");
-&lt;%java.lang.String%&gt; _name_3 = this.eClass().getName();
-return (_plus_6 + _name_3);</body>
+if (_name != null)
+{
+	_elvis_1 = _name;
+} else
+{
+	_elvis_1 = "";
+}
+segments.add(_elvis_1);
+return segments;</body>
         </operation>
       </xsd:appinfo>
     </xsd:annotation>
     <xsd:complexContent>
       <xsd:extension base="am:ReferableObject">
-        <xsd:sequence>
-          <xsd:element minOccurs="0" name="dependsOn" type="am:DataDependency"/>
-        </xsd:sequence>
         <xsd:attribute ecore:changeable="false" ecore:opposite="arguments" ecore:reference="am:RunnableCall" name="containingCall" type="xsd:anyURI"/>
         <xsd:attribute ecore:reference="am:RunnableParameter" name="parameter" type="xsd:anyURI"/>
       </xsd:extension>
@@ -5809,7 +6116,7 @@
       <xsd:documentation>Representation of a runnable call of a run entity.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:sequence>
           <xsd:element ecore:opposite="containingCall" maxOccurs="unbounded" minOccurs="0" name="arguments" type="am:CallArgument"/>
           <xsd:element minOccurs="0" name="counter" type="am:Counter"/>
@@ -5854,7 +6161,7 @@
       <xsd:documentation>Explicitly trigger a custom event from a runnable.</xsd:documentation>
     </xsd:annotation>
     <xsd:complexContent>
-      <xsd:extension base="am:CallGraphItem">
+      <xsd:extension base="am:ActivityGraphItem">
         <xsd:attribute ecore:reference="am:CustomEvent" name="event" type="xsd:anyURI" use="required"/>
       </xsd:extension>
     </xsd:complexContent>
@@ -5944,7 +6251,7 @@
       </xsd:extension>
     </xsd:complexContent>
   </xsd:complexType>
-  <xsd:complexType abstract="true" name="TypeDefinition">
+  <xsd:complexType abstract="true" ecore:implements="am:INamespaceMember" name="TypeDefinition">
     <xsd:complexContent>
       <xsd:extension base="am:ReferableBaseObject">
         <xsd:sequence>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
index 5475a53..da334d9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.6" nsPrefix="am">
+    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http://app4mc.eclipse.org/amalthea/0.9.7" nsPrefix="am">
   <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
+    <details key="documentation" value="*&#xA;*******************************************************************************&#xA;Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xA;&#xA;This program and the accompanying materials are made&#xA;available under the terms of the Eclipse Public License 2.0&#xA;which is available at https://www.eclipse.org/legal/epl-2.0/&#xA;&#xA;SPDX-License-Identifier: EPL-2.0&#xA;*******************************************************************************"/>
     <details key="modelName" value="Amalthea"/>
     <details key="prefix" value="Amalthea"/>
     <details key="editDirectory" value="/org.eclipse.app4mc.amalthea.model.edit/src-gen"/>
@@ -14,7 +14,7 @@
     <details key="creationSubmenus" value="true"/>
     <details key="publicationLocation" value="org.eclipse.app4mc.amalthea.model/model-gen/xml/amalthea.xml"/>
     <details key="loadInitialization" value="false"/>
-    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2019 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
+    <details key="copyrightText" value="*******************************************************************************&#xD;&#xA; Copyright (c) 2015-2020 Robert Bosch GmbH and others.&#xD;&#xA;&#xD;&#xA; This program and the accompanying materials are made&#xD;&#xA; available under the terms of the Eclipse Public License 2.0&#xD;&#xA; which is available at https://www.eclipse.org/legal/epl-2.0/&#xD;&#xA;&#xD;&#xA; SPDX-License-Identifier: EPL-2.0&#xD;&#xA;&#xD;&#xA;    Generated using Eclipse EMF&#xD;&#xA;&#xD;&#xA;*******************************************************************************"/>
     <details key="decoration" value="Live"/>
     <details key="collapseAllAction" value="true"/>
     <details key="expandAllAction" value="true"/>
@@ -27,7 +27,7 @@
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
         volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="get" value="return &quot;0.9.6&quot;;"/>
+        <details key="get" value="return &quot;0.9.7&quot;;"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="commonElements" eType="#//CommonElements"
@@ -58,6 +58,8 @@
   <eClassifiers xsi:type="ecore:EClass" name="CommonElements" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//Tag"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespaces" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="coreClassifiers" upperBound="-1"
         eType="#//CoreClassifier" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memoryClassifiers" upperBound="-1"
@@ -88,10 +90,51 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="INamed: Name attribute"/>
     </eAnnotations>
+    <eOperations name="getNamedContainer" unique="false" eType="#//INamed">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.INamed%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;return &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getQualifiedNameSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> segments = this.getNamePrefixSegments();&#xA;&lt;%java.lang.String%> _name = this.getName();&#xA;boolean _tripleNotEquals = (_name != null);&#xA;if (_tripleNotEquals)&#xA;{&#xA;&#x9;segments.add(this.getName());&#xA;}&#xA;return segments;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific name separator."/>
+        <details key="body" value="return &quot;.&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamespace" unique="false" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return null;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _namespace = this.getNamespace();&#xA;boolean _tripleEquals = (_namespace == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getNamespace().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
         defaultValueLiteral="">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="qualifiedName" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" changeable="false"
+        volatile="true" transient="true" derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -100,18 +143,11 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="IReferable: Computed ID for name based references"/>
     </eAnnotations>
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getEncodedQualifiedName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="Overwrite this method to define a specific prefix (used by name-based references)."/>
-        <details key="body" value="return &quot;&quot;;"/>
+        <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaExtensions%>.toEncodedString(this.getQualifiedNameSegments());"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="encode" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
-      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="try&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _xifexpression = null;&#xA;&#x9;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(str);&#xA;&#x9;if (_isNullOrEmpty)&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &quot;no-name&quot;;&#xA;&#x9;}&#xA;&#x9;else&#xA;&#x9;{&#xA;&#x9;&#x9;_xifexpression = &lt;%java.net.URLEncoder%>.encode(str, &lt;%java.nio.charset.StandardCharsets%>.UTF_8.toString());&#xA;&#x9;}&#xA;&#x9;return _xifexpression;&#xA;}&#xA;catch (Throwable _e)&#xA;{&#xA;&#x9;throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);&#xA;}"/>
-      </eAnnotations>
-      <eParameters name="str" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    </eOperations>
     <eOperations name="validateInvariants" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="body" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaValidations%>.validateInvariants(this, diagnostics, context);"/>
@@ -130,7 +166,7 @@
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(this.getNamePrefix());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;&lt;%java.lang.String%> _encode = this.encode(this.getNamePrefix());&#xA;&#x9;_xifexpression = (_encode + &quot;/&quot;);&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus = (_xifexpression + _encode_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus_1 + _name);"/>
+        <details key="get" value="&lt;%java.lang.String%> _encodedQualifiedName = this.getEncodedQualifiedName();&#xA;&lt;%java.lang.String%> _plus = (_encodedQualifiedName + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name = this.eClass().getName();&#xA;return (_plus + _name);"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -146,6 +182,14 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="INamespaceMember" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="namespace" eType="#//Namespace">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Basic"/>
+        <details key="notify" value="true"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Tag" eSuperTypes="#//ReferableBaseObject #//IDescription">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A tag for processes, runnables, events and labels"/>
@@ -155,13 +199,38 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="taggedObjects" upperBound="-1"
         eType="#//ITaggable" changeable="false" volatile="true" transient="true" derived="true">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to the this tag.&lt;/b>&lt;/p>"/>
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (ITaggable) referring to this tag.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
         <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iTaggable_Tags = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getITaggable_Tags();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ITaggable%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getTag_TaggedObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iTaggable_Tags)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Namespace" eSuperTypes="#//ReferableObject">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Namespace%> _previousSegment = this.getPreviousSegment();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_previousSegment!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="nextSegments" upperBound="-1"
+        eType="#//Namespace" containment="true" resolveProxies="false" eOpposite="#//Namespace/previousSegment"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="previousSegment" eType="#//Namespace"
+        changeable="false" eOpposite="#//Namespace/nextSegments">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//INamespaceMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (INamespaceMember) referring to this namespace.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iNamespaceMember_Namespace = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getINamespaceMember_Namespace();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.INamespaceMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getNamespace_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iNamespaceMember_Namespace)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="RelationalOperator">
     <eLiterals name="_undefined_"/>
     <eLiterals name="EQUAL"/>
@@ -983,9 +1052,9 @@
         eType="#//ModeLiteral" containment="true" resolveProxies="false" eOpposite="#//ModeLiteral/containingMode"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ModeLiteral" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_name=_containingMode.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.EnumMode%> _containingMode = this.getContainingMode();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingMode!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -1040,17 +1109,27 @@
       <details key="minInclusive" value="0"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
-        eType="#//Component" containment="true" resolveProxies="false"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentsModel" eSuperTypes="#//BaseObject #//IComponentContainer #//IInterfaceContainer">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="systems" upperBound="-1"
         eType="#//System" containment="true" resolveProxies="false"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="components" upperBound="-1"
+        eType="#//Component" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IInterfaceContainer" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interfaces" upperBound="-1"
+        eType="#//MainInterface" containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="ISystem" abstract="true" interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="componentInstances" upperBound="-1"
-        eType="#//ComponentInstance" containment="true" resolveProxies="false"/>
+        eType="#//ComponentInstance" containment="true" resolveProxies="false" eOpposite="#//ComponentInstance/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="connectors" upperBound="-1"
-        eType="#//Connector" containment="true" resolveProxies="false"/>
+        eType="#//Connector" containment="true" resolveProxies="false" eOpposite="#//Connector/containingSystem"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="groundedPorts" upperBound="-1"
         eType="#//QualifiedPort" containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="innerPorts" upperBound="-1"
@@ -1063,10 +1142,39 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Port" abstract="true" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentInterface" abstract="true"
+      eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="datatype" eType="#//TypeDefinition"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subInterfaces" upperBound="-1"
+        eType="#//SubInterface" containment="true" resolveProxies="false" eOpposite="#//SubInterface/containingInterface"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="MainInterface" eSuperTypes="#//ComponentInterface #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="version" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral="1.0"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="SubInterface" eSuperTypes="#//ComponentInterface">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_name=_containingComponent.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentInterface%> _containingInterface = this.getContainingInterface();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingInterface!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingInterface" eType="#//ComponentInterface"
+        changeable="false" eOpposite="#//ComponentInterface/subInterfaces">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Component%> _containingComponent = this.getContainingComponent();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingComponent!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingComponent" eType="#//Component"
@@ -1075,40 +1183,113 @@
         <details key="propertyCategory" value="Read only"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="interface" eType="#//ComponentInterface"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="ComponentStructure" eSuperTypes="#//ReferableObject">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
+    <eOperations name="getContainingStructure" unique="false" eType="#//ComponentStructure">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _xifexpression = null;&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;if ((_eContainer instanceof &lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>))&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer_1 = this.eContainer();&#xA;&#x9;_xifexpression = ((&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%>) _eContainer_1);&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = null;&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getDefaultNameSeparator" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="return &quot;::&quot;;"/>
+      </eAnnotations>
+    </eOperations>
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _xifexpression = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ComponentStructure%> _containingStructure = this.getContainingStructure();&#xA;boolean _tripleEquals = (_containingStructure == null);&#xA;if (_tripleEquals)&#xA;{&#xA;&#x9;_xifexpression = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = this.getContainingStructure().getQualifiedNameSegments();&#xA;}&#xA;return _xifexpression;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EAttribute" name="structureType" unique="false"
+        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" defaultValueLiteral=""/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="subStructures" upperBound="-1"
+        eType="#//ComponentStructure" containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="memberObjects" upperBound="-1"
+        eType="#//IComponentStructureMember" changeable="false" volatile="true" transient="true"
+        derived="true">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of objects (IComponentStructureMember) referring to this structure.&lt;/b>&lt;/p>"/>
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _iComponentStructureMember_Structure = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getIComponentStructureMember_Structure();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.IComponentStructureMember%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponentStructure_MemberObjects(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_iComponentStructureMember_Structure)));"/>
+      </eAnnotations>
+    </eStructuralFeatures>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IComponentStructureMember" abstract="true"
+      interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="structure" eType="#//ComponentStructure"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="Component" eSuperTypes="#//ReferableBaseObject #//ITaggable #//INamespaceMember #//IComponentStructureMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ports" upperBound="-1"
-        eType="#//Port" containment="true" resolveProxies="false" eOpposite="#//Port/containingComponent"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="tasks" upperBound="-1"
-        eType="#//AbstractProcess"/>
+        eType="#//ComponentPort" containment="true" resolveProxies="false" eOpposite="#//ComponentPort/containingComponent"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="processes" upperBound="-1"
+        eType="#//AbstractProcess">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="runnables" upperBound="-1"
-        eType="#//Runnable"/>
+        eType="#//Runnable">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
-        eType="#//Label"/>
+        eType="#//Label">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="semaphores" upperBound="-1"
-        eType="#//Semaphore"/>
+        eType="#//Semaphore">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="osEvents" upperBound="-1"
-        eType="#//OsEvent"/>
+        eType="#//OsEvent">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Included SW Elements"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Composite" eSuperTypes="#//Component #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="System" eSuperTypes="#//ReferableBaseObject #//ITaggable #//ISystem"/>
   <eClassifiers xsi:type="ecore:EClass" name="ComponentInstance" eSuperTypes="#//ReferableBaseObject #//ITaggable">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
+      </eAnnotations>
+    </eOperations>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/componentInstances"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="#//Component"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Connector" eSuperTypes="#//BaseObject #//INamed #//ITaggable">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingSystem" eType="#//ISystem"
+        eOpposite="#//ISystem/connectors"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="sourcePort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="targetPort" eType="#//QualifiedPort"
         containment="true" resolveProxies="false"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="implementedInterfaces"
+        upperBound="-1" eType="#//InterfaceChannel" containment="true" resolveProxies="false"/>
+  </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="InterfaceChannel" instanceClassName="java.util.Map$Entry">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="key" lowerBound="1" eType="#//ComponentInterface"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Channel"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="QualifiedPort" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="instance" eType="#//ComponentInstance"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterfacePort" eSuperTypes="#//Port">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interfaceName" unique="false"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" unique="false" eType="#//InterfaceKind"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" lowerBound="1" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EEnum" name="InterfaceKind">
     <eLiterals name="_undefined_"/>
@@ -1875,9 +2056,9 @@
         eType="#//HwFeature" containment="true" resolveProxies="false" eOpposite="#//HwFeature/containingCategory"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwFeature" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_name=_containingCategory.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.HwFeatureCategory%> _containingCategory = this.getContainingCategory();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingCategory!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -1895,9 +2076,9 @@
         defaultValueLiteral="0.0"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwPort" eSuperTypes="#//ReferableBaseObject #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="bitWidth" unique="false"
@@ -1933,9 +2114,9 @@
         eType="#//HwConnection" containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="HwConnection" eSuperTypes="#//ReferableBaseObject #//HwPathElement #//ITaggable">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = this.eContainer();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer)!=null)&#xA;{&#xA;&#x9;_name=((&lt;%org.eclipse.app4mc.amalthea.model.INamed%>) _eContainer).getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.INamed%> _namedContainer = this.getNamedContainer();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_namedContainer!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getPorts" unique="false" upperBound="-1" eType="#//HwPort">
@@ -2249,7 +2430,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="origin" lowerBound="1"
         upperBound="-1" eType="#//Section">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="memory" lowerBound="1"
@@ -3108,7 +3289,7 @@
         <details key="documentation" value="&lt;p>&lt;b>Returns an &lt;em>immutable&lt;/em> list of components the abstract process belongs to.&lt;/b>&lt;/p>"/>
         <details key="propertyCategory" value="Read only"/>
         <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
-        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Tasks = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Tasks();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Tasks)));"/>
+        <details key="get" value="&lt;%org.eclipse.emf.ecore.EReference%> _component_Processes = &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getComponent_Processes();&#xA;return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaIndex%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Component%>>getInverseReferences(this, &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaPackage%>.eINSTANCE.getAbstractProcess_ReferringComponents(), &#xA;&#x9;java.util.Collections.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%org.eclipse.emf.ecore.EReference%>>newHashSet(_component_Processes)));"/>
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
@@ -3130,22 +3311,22 @@
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Generalizes interrupt service routines and tasks"/>
     </eAnnotations>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="stimuli" upperBound="-1"
         eType="#//Stimulus"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ICallGraphItemContainer" abstract="true"
+  <eClassifiers xsi:type="ecore:EClass" name="IActivityGraphItemContainer" abstract="true"
       interface="true">
     <eStructuralFeatures xsi:type="ecore:EReference" name="items" upperBound="-1"
-        eType="#//CallGraphItem" containment="true" resolveProxies="false"/>
+        eType="#//ActivityGraphItem" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraph" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraph" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes the different execution paths of a process or runnable"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallGraphItem" abstract="true" eSuperTypes="#//BaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="ActivityGraphItem" abstract="true" eSuperTypes="#//BaseObject">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract item of a call graph"/>
     </eAnnotations>
@@ -3165,8 +3346,17 @@
         <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.Runnable%>.class);"/>
       </eAnnotations>
     </eStructuralFeatures>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="containingActivityGraph"
+        eType="#//ActivityGraph" changeable="false" volatile="true" transient="true"
+        derived="true" resolveProxies="false">
+      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+        <details key="propertyCategory" value="Read only"/>
+        <details key="propertyFilterFlags" value="org.eclipse.ui.views.properties.expert"/>
+        <details key="get" value="return &lt;%org.eclipse.app4mc.amalthea.model.AmaltheaServices%>.&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>>getContainerOfType(this, &lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%>.class);"/>
+      </eAnnotations>
+    </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, the selected path depends on the value of the provided mode conditions"/>
     </eAnnotations>
@@ -3175,22 +3365,22 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="defaultEntry" eType="#//ModeSwitchDefault"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchEntry" eSuperTypes="#//BaseObject #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ModeSwitch.&#xA;It describes a path of the switch and the required mode condition to use this path"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
         eType="#//ModeConditionDisjunction" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//ICallGraphItemContainer"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeSwitchDefault" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer"/>
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitch" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch in the call graph, each path has a probability"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="entries" upperBound="-1"
         eType="#//ProbabilitySwitchEntry" containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="ProbabilitySwitchEntry" eSuperTypes="#//BaseObject #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="A switch entry for a ProbabilitySwitch&#xA;It describes a path of the switch and it's probability"/>
     </eAnnotations>
@@ -3206,7 +3396,7 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="offset" unique="false"
         eType="#//NonNegativeLong" defaultValueLiteral="0"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="WaitEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Let the process wait for a combination of events defined by eventMask&#xA;maskType defines if the events in eventMask are linked by a AND or OR"/>
     </eAnnotations>
@@ -3229,7 +3419,7 @@
     <eLiterals name="active"/>
     <eLiterals name="passive"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SetEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Sets the events of eventMask&#xA;These events can be set for a specific process, if there is no process, is is global (for all processes)&#xA;If there is a process, it is possible to set the event for a specific process instance that is currently activated"/>
     </eAnnotations>
@@ -3239,7 +3429,7 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ClearEvent" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Clears the events of eventMask"/>
     </eAnnotations>
@@ -3272,7 +3462,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="InterProcessTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers a stimulus to activate its processes"/>
     </eAnnotations>
@@ -3281,19 +3471,19 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="counter" eType="#//Counter"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="EnforcedMigration" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Migrates task to core of resource owner"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="resourceOwner" lowerBound="1"
         eType="#//TaskScheduler"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SchedulePoint" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Triggers scheduler"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="TerminateProcess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Terminates the process"/>
     </eAnnotations>
@@ -3414,6 +3604,10 @@
     <eLiterals name="out"/>
     <eLiterals name="inout"/>
   </eClassifiers>
+  <eClassifiers xsi:type="ecore:EClass" name="IDependsOn" abstract="true" interface="true">
+    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
+        containment="true" resolveProxies="false"/>
+  </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataDependency" eSuperTypes="#//BaseObject">
     <eStructuralFeatures xsi:type="ecore:EReference" name="labels" upperBound="-1"
         eType="#//Label"/>
@@ -3430,10 +3624,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject">
-    <eOperations name="getNamePrefix" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableParameter" eSuperTypes="#//ReferableBaseObject #//IDependsOn">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;return _name;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = this.getContainingRunnable();&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;&lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> _newBasicEList = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&#x9;_elvis = _newBasicEList;&#xA;}&#xA;return _elvis;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="toString" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
@@ -3450,16 +3644,15 @@
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" unique="false"
         eType="#//DirectionType"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//TypeDefinition"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement">
+  <eClassifiers xsi:type="ecore:EClass" name="Runnable" eSuperTypes="#//AbstractMemoryElement #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
-    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//CallGraphItem">
+    <eOperations name="getRunnableItems" unique="false" upperBound="-1" eType="#//ActivityGraphItem">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.CallGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.CallGraph%> _callGraph = this.getCallGraph();&#xA;&#x9;boolean _tripleEquals = (_callGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setCallGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createCallGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getCallGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
+        <details key="body" value="&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraphItem%>> _xblockexpression = null;&#xA;{&#xA;&#x9;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _activityGraph = this.getActivityGraph();&#xA;&#x9;boolean _tripleEquals = (_activityGraph == null);&#xA;&#x9;if (_tripleEquals)&#xA;&#x9;{&#xA;&#x9;&#x9;this.setActivityGraph(&lt;%org.eclipse.app4mc.amalthea.model.AmaltheaFactory%>.eINSTANCE.createActivityGraph());&#xA;&#x9;}&#xA;&#x9;_xblockexpression = this.getActivityGraph().getItems();&#xA;}&#xA;return _xblockexpression;"/>
       </eAnnotations>
     </eOperations>
     <eOperations name="getFirstActivation" unique="false" eType="#//Activation">
@@ -3471,7 +3664,7 @@
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
         eType="#//RunnableParameter" containment="true" resolveProxies="false" eOpposite="#//RunnableParameter/containingRunnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="callGraph" eType="#//CallGraph"
+    <eStructuralFeatures xsi:type="ecore:EReference" name="activityGraph" eType="#//ActivityGraph"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="activations" upperBound="-1"
         eType="#//Activation"/>
@@ -3514,9 +3707,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Label" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Data representation, which can be accessed by run entities."/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
@@ -3561,7 +3755,10 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName">
+  <eClassifiers xsi:type="ecore:EClass" name="Channel" eSuperTypes="#//AbstractMemoryElement #//IDisplayName #//INamespaceMember">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultElements" unique="false"
@@ -3642,12 +3839,12 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ComputationItem" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a object that describes computation"/>
     </eAnnotations>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ExecutionNeed" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of the execution needs of a Runnable (default and core-specific)"/>
     </eAnnotations>
@@ -3681,7 +3878,7 @@
     <eLiterals name="increment"/>
     <eLiterals name="decrement"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ModeLabelAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a mode label access of a run entity."/>
     </eAnnotations>
@@ -3712,7 +3909,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="LabelAccess" eSuperTypes="#//ComputationItem #//ITaggable #//IDependsOn">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a label access of a run entity."/>
     </eAnnotations>
@@ -3739,10 +3936,8 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="implementation" unique="false"
         eType="#//LabelAccessImplementation"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ChannelAccess" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eStructuralFeatures xsi:type="ecore:EReference" name="data" lowerBound="1" eType="#//Channel"/>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="elements" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" defaultValueLiteral="0"/>
@@ -3789,7 +3984,7 @@
     <eLiterals name="implicit"/>
     <eLiterals name="timed"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="SemaphoreAccess" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes an semaphore access"/>
     </eAnnotations>
@@ -3810,14 +4005,14 @@
     <eLiterals name="release"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverCommunication" abstract="true"
-      eSuperTypes="#//CallGraphItem">
+      eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for sender-receiver-communication (it can be read or write)"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="buffered" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="label" lowerBound="1" eType="#//Label"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SenderReceiverRead" eSuperTypes="#//SenderReceiverCommunication">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3831,13 +4026,13 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="notifiedRunnables" upperBound="-1"
         eType="#//Runnable"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="ServerCall" abstract="true" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="An abstract description for client/server communication&#xA;It refers to a required runnable that describes the called server operation"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="serverRunnable" lowerBound="1"
         eType="#//Runnable"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//Port"/>
+    <eStructuralFeatures xsi:type="ecore:EReference" name="port" eType="#//ComponentPort"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="SynchronousServerCall" eSuperTypes="#//ServerCall">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -3868,22 +4063,22 @@
     <eLiterals name="passive_wait"/>
     <eLiterals name="non_blocking"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//CallGraphItem #//INamed #//ICallGraphItemContainer">
+  <eClassifiers xsi:type="ecore:EClass" name="Group" eSuperTypes="#//ActivityGraphItem #//INamed #//IActivityGraphItemContainer">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Describes a group of deviation runnable items"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" unique="false"
         eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject">
+  <eClassifiers xsi:type="ecore:EClass" name="CallArgument" eSuperTypes="#//ReferableObject #//IDependsOn">
     <eOperations name="getName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access.1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
+        <details key="body" value="&lt;%java.lang.String%> _xifexpression = null;&#xA;boolean _isNullOrEmpty = &lt;%org.eclipse.xtext.xbase.lib.StringExtensions%>.isNullOrEmpty(super.getName());&#xA;if (_isNullOrEmpty)&#xA;{&#xA;&#x9;_xifexpression = &quot;access-1&quot;;&#xA;}&#xA;else&#xA;{&#xA;&#x9;_xifexpression = super.getName();&#xA;}&#xA;return _xifexpression;"/>
       </eAnnotations>
     </eOperations>
-    <eOperations name="computeUniqueName" unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
+    <eOperations name="getNamePrefixSegments" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="body" value="&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _containingRunnable = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingRunnable=_containingCall.getContainingRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_containingRunnable!=null)&#xA;{&#xA;&#x9;_name=_containingRunnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode = this.encode(_name);&#xA;&lt;%java.lang.String%> _plus = (_encode + &quot;/calls/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%java.lang.String%> _name_1 = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_name_1=_runnable.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_1 = this.encode(_name_1);&#xA;&lt;%java.lang.String%> _plus_1 = (_plus + _encode_1);&#xA;&lt;%java.lang.String%> _plus_2 = (_plus_1 + &quot;/param/&quot;);&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name_2 = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name_2=_parameter.getName();&#xA;}&#xA;&lt;%java.lang.String%> _encode_2 = this.encode(_name_2);&#xA;&lt;%java.lang.String%> _plus_3 = (_plus_2 + _encode_2);&#xA;&lt;%java.lang.String%> _plus_4 = (_plus_3 + &quot;/&quot;);&#xA;&lt;%java.lang.String%> _encode_3 = this.encode(this.getName());&#xA;&lt;%java.lang.String%> _plus_5 = (_plus_4 + _encode_3);&#xA;&lt;%java.lang.String%> _plus_6 = (_plus_5 + &quot;?type=&quot;);&#xA;&lt;%java.lang.String%> _name_3 = this.eClass().getName();&#xA;return (_plus_6 + _name_3);"/>
+        <details key="body" value="final &lt;%org.eclipse.emf.common.util.BasicEList%>&lt;&lt;%java.lang.String%>> segments = &lt;%org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals%>.&lt;&lt;%java.lang.String%>>newBasicEList();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.ActivityGraph%> _containingActivityGraph = null;&#xA;if (_containingCall!=null)&#xA;{&#xA;&#x9;_containingActivityGraph=_containingCall.getContainingActivityGraph();&#xA;}&#xA;&lt;%org.eclipse.emf.ecore.EObject%> _eContainer = null;&#xA;if (_containingActivityGraph!=null)&#xA;{&#xA;&#x9;_eContainer=_containingActivityGraph.eContainer();&#xA;}&#xA;final &lt;%org.eclipse.app4mc.amalthea.model.IReferable%> runnableOrProcess = ((&lt;%org.eclipse.app4mc.amalthea.model.IReferable%>) _eContainer);&#xA;if ((runnableOrProcess != null))&#xA;{&#xA;&#x9;segments.addAll(runnableOrProcess.getQualifiedNameSegments());&#xA;}&#xA;segments.add(&quot;calls&quot;);&#xA;&lt;%java.util.List%>&lt;&lt;%java.lang.String%>> _elvis = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableCall%> _containingCall_1 = this.getContainingCall();&#xA;&lt;%org.eclipse.app4mc.amalthea.model.Runnable%> _runnable = null;&#xA;if (_containingCall_1!=null)&#xA;{&#xA;&#x9;_runnable=_containingCall_1.getRunnable();&#xA;}&#xA;&lt;%org.eclipse.emf.common.util.EList%>&lt;&lt;%java.lang.String%>> _qualifiedNameSegments = null;&#xA;if (_runnable!=null)&#xA;{&#xA;&#x9;_qualifiedNameSegments=_runnable.getQualifiedNameSegments();&#xA;}&#xA;if (_qualifiedNameSegments != null)&#xA;{&#xA;&#x9;_elvis = _qualifiedNameSegments;&#xA;} else&#xA;{&#xA;&#x9;_elvis = java.util.Collections.&lt;&lt;%java.lang.String%>>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.&lt;&lt;%java.lang.String%>>newArrayList(&quot;&quot;));&#xA;}&#xA;segments.addAll(_elvis);&#xA;segments.add(&quot;param&quot;);&#xA;&lt;%java.lang.String%> _elvis_1 = null;&#xA;&lt;%org.eclipse.app4mc.amalthea.model.RunnableParameter%> _parameter = this.getParameter();&#xA;&lt;%java.lang.String%> _name = null;&#xA;if (_parameter!=null)&#xA;{&#xA;&#x9;_name=_parameter.getName();&#xA;}&#xA;if (_name != null)&#xA;{&#xA;&#x9;_elvis_1 = _name;&#xA;} else&#xA;{&#xA;&#x9;_elvis_1 = &quot;&quot;;&#xA;}&#xA;segments.add(_elvis_1);&#xA;return segments;"/>
       </eAnnotations>
     </eOperations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="containingCall" eType="#//RunnableCall"
@@ -3894,13 +4089,11 @@
     </eStructuralFeatures>
     <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//RunnableParameter">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
-        <details key="propertyCategory" value="Main"/>
+        <details key="propertyCategory" value="Basic"/>
       </eAnnotations>
     </eStructuralFeatures>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="dependsOn" eType="#//DataDependency"
-        containment="true" resolveProxies="false"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//CallGraphItem #//ITaggable">
+  <eClassifiers xsi:type="ecore:EClass" name="RunnableCall" eSuperTypes="#//ActivityGraphItem #//ITaggable">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Representation of a runnable call of a run entity."/>
     </eAnnotations>
@@ -3939,7 +4132,7 @@
     </eLiterals>
     <eLiterals name="SingleCorePrioSafe"/>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//CallGraphItem">
+  <eClassifiers xsi:type="ecore:EClass" name="CustomEventTrigger" eSuperTypes="#//ActivityGraphItem">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Explicitly trigger a custom event from a runnable."/>
     </eAnnotations>
@@ -4001,7 +4194,7 @@
       </eAnnotations>
     </eStructuralFeatures>
   </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject">
+  <eClassifiers xsi:type="ecore:EClass" name="TypeDefinition" abstract="true" eSuperTypes="#//ReferableBaseObject #//INamespaceMember">
     <eStructuralFeatures xsi:type="ecore:EReference" name="size" eType="#//DataSize"
         containment="true" resolveProxies="false">
       <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
@@ -4010,12 +4203,16 @@
     </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="DataTypeDefinition" eSuperTypes="#//TypeDefinition">
+    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
+      <details key="labelFeature" value="qualifiedName"/>
+    </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="dataType" eType="#//DataType"
         containment="true" resolveProxies="false"/>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="BaseTypeDefinition" eSuperTypes="#//TypeDefinition">
     <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
       <details key="documentation" value="Basic data type definition, including naming (alias) in target environments"/>
+      <details key="labelFeature" value="qualifiedName"/>
     </eAnnotations>
     <eStructuralFeatures xsi:type="ecore:EReference" name="aliases" upperBound="-1"
         eType="#//Alias" containment="true" resolveProxies="false">
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
index 3fe49b4..7f4cf0b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
+++ b/plugins/org.eclipse.app4mc.amalthea.model/model/amalthea.xcore
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -24,7 +24,7 @@
 	loadInitialization="false",	// can be removed with Neon.3 ??
 //	dynamicTemplates="true",
 //	templateDirectory="org.eclipse.app4mc.amalthea.model/templates",
-	copyrightText="*******************************************************************************\r\n Copyright (c) 2015-2019 Robert Bosch GmbH and others.\r\n\r\n This program and the accompanying materials are made\r\n available under the terms of the Eclipse Public License 2.0\r\n which is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\n SPDX-License-Identifier: EPL-2.0\r\n\r\n    Generated using Eclipse EMF\r\n\r\n*******************************************************************************",
+	copyrightText="*******************************************************************************\r\n Copyright (c) 2015-2020 Robert Bosch GmbH and others.\r\n\r\n This program and the accompanying materials are made\r\n available under the terms of the Eclipse Public License 2.0\r\n which is available at https://www.eclipse.org/legal/epl-2.0/\r\n\r\n SPDX-License-Identifier: EPL-2.0\r\n\r\n    Generated using Eclipse EMF\r\n\r\n*******************************************************************************",
 	decoration="Live",
 	collapseAllAction="true",
 	expandAllAction="true", 
@@ -34,19 +34,16 @@
 
 @Ecore(
 	nsPrefix="am",
-	nsURI="http://app4mc.eclipse.org/amalthea/0.9.6"
+	nsURI="http://app4mc.eclipse.org/amalthea/0.9.7"
 )
 
 package org.eclipse.app4mc.amalthea.model
 
-import java.net.URLEncoder
-import java.nio.charset.StandardCharsets
 import org.eclipse.emf.ecore.EDiagnosticChain
 import org.eclipse.emf.ecore.EMap
 import org.eclipse.emf.ecore.InternalEObject
 import org.eclipse.emf.ecore.util.EcoreEList$UnmodifiableEList
 
-
 // ===============================================================================
 // ===============================================================================
 // 
@@ -59,7 +56,7 @@
 class Amalthea extends BaseObject
 {
 	derived readonly String version get {
-		return "0.9.6"
+		return "0.9.7"
 	}
 	
 	contains CommonElements commonElements
@@ -89,6 +86,7 @@
 class CommonElements extends BaseObject
 {
 	contains Tag[] tags
+	contains Namespace[] namespaces
 	contains CoreClassifier[] coreClassifiers
 	contains MemoryClassifier[] memoryClassifiers
 }
@@ -124,8 +122,41 @@
  */
 interface INamed
 {
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic", notify="true")
 	String name = ""
+
+	op INamed getNamedContainer() {
+		if (eContainer instanceof INamed) eContainer as INamed else null
+	}
+	
+	op String getNamePrefix() {
+		if (namespace === null) return "" else  AmaltheaExtensions.toPlainString(namePrefixSegments, defaultNameSeparator)
+	}
+
+	@GenModel(propertyCategory="Read only")
+	derived readonly String qualifiedName get { AmaltheaExtensions.toPlainString(qualifiedNameSegments, defaultNameSeparator) }
+
+	// Definition: [qualified name] = [name prefix] + [name]
+	
+	op String[] getQualifiedNameSegments() {
+		val segments = getNamePrefixSegments()
+		if (name !== null) segments.add(name)
+		return segments
+	}
+
+	// Default name separator for [name prefix] and [qualified name]
+
+	@GenModel(documentation="Overwrite this method to define a specific name separator.")
+	op String getDefaultNameSeparator() { "." }
+
+	// Default implementation of [name prefix]: use namespace if available
+	
+	op Namespace getNamespace() { null }
+	
+	@GenModel(documentation="Overwrite this method to define a specific prefix (used by name-based references).")
+	op String[] getNamePrefixSegments() {
+		if (namespace === null) newBasicEList else namespace.qualifiedNameSegments
+	}
 }
 
 /*
@@ -133,19 +164,12 @@
  */
 interface IReferable extends INamed
 {
+	op String getEncodedQualifiedName () { AmaltheaExtensions.toEncodedString(qualifiedNameSegments) }
+
 	// use IPropertySheetEntry.FILTER_ID_EXPERT ("org.eclipse.ui.views.properties.expert")
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
-	id derived readonly String uniqueName get {
-		return (if (namePrefix.nullOrEmpty) "" else encode(namePrefix) + "/") + encode(name) + "?type=" + eClass.name
-	}
-	
-	@GenModel(documentation="Overwrite this method to define a specific prefix (used by name-based references).")
-	op String getNamePrefix() { "" }
-	
-	op String encode(String str) {
-		return (if (str.nullOrEmpty) "no-name" else URLEncoder.encode(str, StandardCharsets.UTF_8.toString))
-	}
-	
+	id derived readonly String uniqueName get { encodedQualifiedName + "?type=" + eClass.name }
+
 	op boolean validateInvariants(EDiagnosticChain diagnostics, EMap<Object,Object> context) {
 		AmaltheaValidations.validateInvariants(this, diagnostics, context)
 	}
@@ -162,6 +186,11 @@
 	String description
 }
 
+interface INamespaceMember {
+	@GenModel(propertyCategory="Basic", notify="true")
+	refers Namespace namespace
+}
+
 /*
  * A tag for processes, runnables, events and labels
  */
@@ -170,7 +199,7 @@
 	String tagType
 	
 	// back pointer (readonly)
-	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to the this tag.</b></p>")
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b></p>")
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
 	refers transient readonly volatile derived ITaggable[] taggedObjects get {
 		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.tag_TaggedObjects,
@@ -179,6 +208,25 @@
 	}
 }
 
+class Namespace extends ReferableObject
+{
+	contains Namespace[] nextSegments opposite previousSegment
+
+	@GenModel(propertyCategory="Read only")
+	container readonly Namespace previousSegment opposite nextSegments
+
+	op String[] getNamePrefixSegments() { (previousSegment?.qualifiedNameSegments) ?: newBasicEList	}
+
+	// back pointer (readonly)
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b></p>")
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers transient readonly volatile derived INamespaceMember[] memberObjects get {
+		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.namespace_MemberObjects,
+			#{AmaltheaPackage.eINSTANCE.INamespaceMember_Namespace}
+		)
+	}
+}
+
 enum RelationalOperator
 {
 	_undefined_ // Display: "<relation>"
@@ -897,9 +945,9 @@
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly EnumMode containingMode opposite literals
-	
-	op String getNamePrefix() { containingMode?.name }
-	
+
+	op String[] getNamePrefixSegments() { (containingMode?.qualifiedNameSegments) ?: newBasicEList  }
+
 	op String toString() {
 		if (name.nullOrEmpty) "<literal>" else name
 	}
@@ -964,16 +1012,24 @@
 // ===============================================================================
 
 
-class ComponentsModel extends BaseObject
+class ComponentsModel extends BaseObject, IComponentContainer, IInterfaceContainer
 {
-	contains Component[] components
+	contains ComponentStructure[] structures
 	contains System[] systems
 }
 
+interface IComponentContainer {
+		contains Component[] components
+}
+
+interface IInterfaceContainer {
+		contains MainInterface[] interfaces
+}
+
 interface ISystem
 {
-	contains ComponentInstance[] componentInstances
-	contains Connector[] connectors
+	contains ComponentInstance[] componentInstances opposite containingSystem
+	contains Connector[] connectors opposite containingSystem
 	contains QualifiedPort[] groundedPorts
 	
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
@@ -982,21 +1038,81 @@
 	}
 }
 
-abstract class Port extends ReferableBaseObject, ITaggable
+abstract class ComponentInterface extends ReferableBaseObject, ITaggable
+{
+	refers TypeDefinition datatype
+	contains SubInterface[] subInterfaces opposite containingInterface
+}
+
+@GenModel(labelFeature="qualifiedName")
+class MainInterface extends ComponentInterface, INamespaceMember, IComponentStructureMember
+{
+	String version = "1.0"
+}
+
+@GenModel(labelFeature="qualifiedName")
+class SubInterface extends ComponentInterface
+{
+	@GenModel(propertyCategory="Read only")
+	container readonly ComponentInterface containingInterface opposite subInterfaces
+
+	op String[] getNamePrefixSegments() { (containingInterface?.qualifiedNameSegments) ?: newBasicEList }
+}
+
+class ComponentPort extends ReferableBaseObject, ITaggable
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly Component containingComponent opposite ports
-	
-	op String getNamePrefix() { containingComponent?.name }
+
+	op String[] getNamePrefixSegments() { (containingComponent?.qualifiedNameSegments) ?: newBasicEList }
+
+	InterfaceKind kind
+	refers ComponentInterface ^interface
 }
 
-class Component extends ReferableBaseObject, ITaggable
+@GenModel(labelFeature="qualifiedName")
+class ComponentStructure extends ReferableObject
 {
-	contains Port[] ports opposite containingComponent
-	refers AbstractProcess[] tasks
+	String structureType = ""
+	contains ComponentStructure[] subStructures
+
+	op ComponentStructure getContainingStructure() {
+		if (eContainer instanceof ComponentStructure) eContainer as ComponentStructure else null
+	}
+
+	op String getDefaultNameSeparator() { "::" }
+	op String[] getNamePrefixSegments() {
+		if (containingStructure === null) newBasicEList else containingStructure.qualifiedNameSegments
+	}
+
+	// back pointer (readonly)
+	@GenModel(documentation="<p><b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b></p>")
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers transient readonly volatile derived IComponentStructureMember[] memberObjects get {
+		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.componentStructure_MemberObjects,
+			#{AmaltheaPackage.eINSTANCE.IComponentStructureMember_Structure}
+		)
+	}
+}
+
+interface IComponentStructureMember {
+	refers ComponentStructure structure
+}
+
+@GenModel(labelFeature="qualifiedName")
+class Component extends ReferableBaseObject, ITaggable, INamespaceMember, IComponentStructureMember
+{
+	contains ComponentPort[] ports opposite containingComponent
+
+	@GenModel(propertyCategory="Included SW Elements")
+	refers AbstractProcess[] processes
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Runnable[] runnables
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Label[] labels
+	@GenModel(propertyCategory="Included SW Elements")
 	refers Semaphore[] semaphores
+	@GenModel(propertyCategory="Included SW Elements")
 	refers OsEvent[] osEvents
 }
 
@@ -1006,25 +1122,33 @@
 
 class ComponentInstance extends ReferableBaseObject, ITaggable
 {
+	container ISystem containingSystem opposite componentInstances
+
 	refers Component ^type
+
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 }
 
 class Connector extends BaseObject, INamed, ITaggable
 {
+	container ISystem containingSystem opposite connectors
+
 	contains QualifiedPort sourcePort
 	contains QualifiedPort targetPort
+	
+	contains InterfaceChannel[] implementedInterfaces
+}
+
+class InterfaceChannel wraps java.util.Map$Entry
+{
+	refers ComponentInterface[1] key
+	refers Channel value
 }
 
 class QualifiedPort extends BaseObject
 {
 	refers ComponentInstance instance
-	refers Port port
-}
-
-class InterfacePort extends Port
-{
-	String interfaceName
-	InterfaceKind kind
+	refers ComponentPort[1] port
 }
 
 enum InterfaceKind
@@ -1971,8 +2095,8 @@
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly HwFeatureCategory containingCategory opposite features
-	
-	op String getNamePrefix() { containingCategory?.name }
+
+	op String[] getNamePrefixSegments() { (containingCategory?.qualifiedNameSegments) ?: newBasicEList }
 	
 	op String toString() {
 		val featureName = containingCategory?.name
@@ -1984,7 +2108,7 @@
 
 class HwPort extends ReferableBaseObject, ITaggable
 {
-	op String getNamePrefix() { (eContainer as INamed)?.name }
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 	
 	int bitWidth = "0"
 	int priority = "0"
@@ -2015,7 +2139,7 @@
 
 class HwConnection extends ReferableBaseObject, HwPathElement, ITaggable
 {
-	op String getNamePrefix() { (eContainer as INamed)?.name }
+	op String[] getNamePrefixSegments() { (namedContainer?.qualifiedNameSegments) ?: newBasicEList }
 	
 	@GenModel(documentation="<p><b>Read latency [cycles]</b></p>")
 	contains IDiscreteValueDeviation readLatency
@@ -2294,7 +2418,7 @@
 
 class PhysicalSectionMapping extends ReferableBaseObject
 {
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic")
 	refers Section[+] origin
 	@GenModel(propertyCategory="Memory")
 	refers Memory[1] memory
@@ -3156,7 +3280,7 @@
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
 	refers transient readonly volatile derived Component[] referringComponents get {
 		AmaltheaIndex.getInverseReferences(this, AmaltheaPackage.eINSTANCE.abstractProcess_ReferringComponents,
-			#{AmaltheaPackage.eINSTANCE.component_Tasks} )
+			#{AmaltheaPackage.eINSTANCE.component_Processes} )
 	}	
 }
 
@@ -3183,25 +3307,25 @@
  */
 abstract class Process extends AbstractProcess
 {
-	contains CallGraph callGraph
+	contains ActivityGraph activityGraph
 	refers Stimulus[] stimuli
 }
 
-interface ICallGraphItemContainer
+interface IActivityGraphItemContainer
 {
-	contains CallGraphItem[] items
+	contains ActivityGraphItem[] items
 }
 
 
 /*
  * Describes the different execution paths of a process or runnable
  */
-class CallGraph extends BaseObject, ICallGraphItemContainer {}
+class ActivityGraph extends BaseObject, IActivityGraphItemContainer {}
 
 /*
  * An abstract item of a call graph
  */
-abstract class CallGraphItem extends BaseObject
+abstract class ActivityGraphItem extends BaseObject
 {
 	// container (read only)
 	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
@@ -3214,12 +3338,18 @@
 	refers local readonly derived Runnable containingRunnable get {
 		AmaltheaServices.getContainerOfType(this, Runnable)
 	}
+	
+	// container (read only)
+	@GenModel(propertyCategory="Read only", propertyFilterFlags="org.eclipse.ui.views.properties.expert")
+	refers local readonly derived ActivityGraph containingActivityGraph get {
+		AmaltheaServices.getContainerOfType(this, ActivityGraph)
+	}
 }
 
 /*
  * A switch in the call graph, the selected path depends on the value of the provided mode conditions
  */
-class ModeSwitch extends CallGraphItem
+class ModeSwitch extends ActivityGraphItem
 {
 	contains ModeSwitchEntry[] entries
 	contains ModeSwitchDefault defaultEntry
@@ -3229,17 +3359,17 @@
  * A switch entry for a ModeSwitch. 
  * It describes a path of the switch and the required mode condition to use this path
  */
-class ModeSwitchEntry extends BaseObject, INamed, ICallGraphItemContainer
+class ModeSwitchEntry extends BaseObject, INamed, IActivityGraphItemContainer
 {
 	contains ModeConditionDisjunction[1] condition
 }
 
-class ModeSwitchDefault extends BaseObject, ICallGraphItemContainer {}
+class ModeSwitchDefault extends BaseObject, IActivityGraphItemContainer {}
 
 /*
  * A switch in the call graph, each path has a probability
  */
-class ProbabilitySwitch extends CallGraphItem
+class ProbabilitySwitch extends ActivityGraphItem
 {
 	contains ProbabilitySwitchEntry[] entries
 }
@@ -3248,7 +3378,7 @@
  * A switch entry for a ProbabilitySwitch
  * It describes a path of the switch and it's probability
  */
-class ProbabilitySwitchEntry extends BaseObject, ICallGraphItemContainer
+class ProbabilitySwitchEntry extends BaseObject, IActivityGraphItemContainer
 {
 	double probability = "0.0"
 }
@@ -3266,7 +3396,7 @@
  * Let the process wait for a combination of events defined by eventMask
  * maskType defines if the events in eventMask are linked by a AND or OR
  */
-class WaitEvent extends CallGraphItem
+class WaitEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	WaitEventType maskType
@@ -3294,7 +3424,7 @@
  * These events can be set for a specific process, if there is no process, is is global (for all processes)
  * If there is a process, it is possible to set the event for a specific process instance that is currently activated
  */
-class SetEvent extends CallGraphItem
+class SetEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	refers Process process
@@ -3305,7 +3435,7 @@
 /*
  * Clears the events of eventMask
  */
-class ClearEvent extends CallGraphItem
+class ClearEvent extends ActivityGraphItem
 {
 	contains EventMask eventMask
 	
@@ -3339,7 +3469,7 @@
 /*
  * Triggers a stimulus to activate its processes
  */
-class InterProcessTrigger extends CallGraphItem
+class InterProcessTrigger extends ActivityGraphItem
 {
 	refers InterProcessStimulus[1] stimulus
 	
@@ -3349,7 +3479,7 @@
 /*
  * Migrates task to core of resource owner
  */
-class EnforcedMigration extends CallGraphItem
+class EnforcedMigration extends ActivityGraphItem
 {
 	refers TaskScheduler[1] resourceOwner
 }
@@ -3357,14 +3487,14 @@
 /*
  * Triggers scheduler
  */
-class SchedulePoint extends CallGraphItem
+class SchedulePoint extends ActivityGraphItem
 {
 }
 
 /*
  * Terminates the process
  */
-class TerminateProcess extends CallGraphItem
+class TerminateProcess extends ActivityGraphItem
 {
 	contains Counter counter
 }
@@ -3493,6 +3623,10 @@
 	inout	
 }
 
+interface IDependsOn {
+	contains DataDependency dependsOn
+}
+
 class DataDependency extends BaseObject 
 {
 	refers Label[] labels
@@ -3506,16 +3640,15 @@
 	}
 }
 
-class RunnableParameter extends ReferableBaseObject
+class RunnableParameter extends ReferableBaseObject, IDependsOn
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly Runnable containingRunnable opposite parameters
-	
-	op String getNamePrefix() { containingRunnable?.name }
+
+	op String[] getNamePrefixSegments() { (containingRunnable?.qualifiedNameSegments) ?: newBasicEList }
 	
 	DirectionType direction
 	refers TypeDefinition dataType
-	contains DataDependency dependsOn
 	
 	op String toString() {
 		val runName = containingRunnable?.name
@@ -3527,16 +3660,17 @@
 /*
  * Smallest allocatable unit, which provides additional (optional) attributes for allocation algorithms.
  */
-class Runnable extends AbstractMemoryElement
+@GenModel(labelFeature="qualifiedName")
+class Runnable extends AbstractMemoryElement, INamespaceMember
 {
 	contains ModeConditionDisjunction executionCondition
 	contains RunnableParameter[] parameters opposite containingRunnable
-	contains CallGraph callGraph
+	contains ActivityGraph activityGraph
 	refers Activation[] activations
 	
-	op CallGraphItem[] getRunnableItems() {
-		if (callGraph === null) callGraph = AmaltheaFactory.eINSTANCE.createCallGraph()
-		callGraph.items
+	op ActivityGraphItem[] getRunnableItems() {
+		if (activityGraph === null) activityGraph = AmaltheaFactory.eINSTANCE.createActivityGraph()
+		activityGraph.items
 	}
 	op Activation getFirstActivation() {
 		activations.head
@@ -3575,7 +3709,8 @@
 /*
  * Data representation, which can be accessed by run entities.
  */
-class Label extends AbstractMemoryElement, IDisplayName
+@GenModel(labelFeature="qualifiedName")
+class Label extends AbstractMemoryElement, IDisplayName, INamespaceMember
 {
 	contains DataType dataType
 	/*
@@ -3611,7 +3746,8 @@
 
 }
 
-class Channel extends AbstractMemoryElement, IDisplayName
+@GenModel(labelFeature="qualifiedName")
+class Channel extends AbstractMemoryElement, IDisplayName, INamespaceMember
 {
 	contains DataType elementType
 	int defaultElements = "0"
@@ -3684,12 +3820,12 @@
 /*
  * Representation of a object that describes computation
  */
-abstract class ComputationItem extends CallGraphItem {}
+abstract class ComputationItem extends ActivityGraphItem {}
 
 /*
  * Representation of the execution needs of a Runnable (default and core-specific)
  */
-class ExecutionNeed extends CallGraphItem
+class ExecutionNeed extends ActivityGraphItem
 {
 	contains NeedEntry[] needs
 }
@@ -3724,7 +3860,7 @@
 /*
  * Representation of a mode label access of a run entity.
  */
-class ModeLabelAccess extends CallGraphItem
+class ModeLabelAccess extends ActivityGraphItem
 {
 	refers ModeLabel[1] data
 	ModeLabelAccessEnum access
@@ -3747,7 +3883,7 @@
 /*
  * Representation of a label access of a run entity.
  */
-class LabelAccess extends ComputationItem, ITaggable
+class LabelAccess extends ComputationItem, ITaggable, IDependsOn
 {
 	refers Label[1] data
 	LabelAccessEnum access
@@ -3767,11 +3903,9 @@
 	 */
 	LabelAccessDataStability dataStability
 	LabelAccessImplementation implementation	 
-		
-	contains DataDependency dependsOn
 }
 
-abstract class ChannelAccess extends CallGraphItem
+abstract class ChannelAccess extends ActivityGraphItem
 {
 	refers Channel[1] data
 	int elements = "0"
@@ -3832,7 +3966,7 @@
 /*
  * Describes an semaphore access
  */
-class SemaphoreAccess extends CallGraphItem
+class SemaphoreAccess extends ActivityGraphItem
 {
 	refers Semaphore[1] semaphore
 	SemaphoreAccessEnum access
@@ -3855,11 +3989,11 @@
 /*
  * An abstract description for sender-receiver-communication (it can be read or write)
  */
-abstract class SenderReceiverCommunication extends CallGraphItem
+abstract class SenderReceiverCommunication extends ActivityGraphItem
 {
 	boolean buffered = "false"
 	refers Label[1] label
-	refers Port port
+	refers ComponentPort port
 }
 
 /*
@@ -3880,10 +4014,10 @@
  * An abstract description for client/server communication
  * It refers to a required runnable that describes the called server operation
  */
-abstract class ServerCall extends CallGraphItem
+abstract class ServerCall extends ActivityGraphItem
 {
 	refers Runnable[1] serverRunnable
-	refers Port port
+	refers ComponentPort port
 }
 
 /*
@@ -3925,37 +4059,42 @@
 /*
  * Describes a group of deviation runnable items
  */
-class Group extends CallGraphItem, INamed, ICallGraphItemContainer
+class Group extends ActivityGraphItem, INamed, IActivityGraphItemContainer
 {
 	boolean ordered = "true"
 }
 
-class CallArgument extends ReferableObject
+class CallArgument extends ReferableObject, IDependsOn
 {
 	@GenModel(propertyCategory="Read only")
 	container readonly RunnableCall containingCall opposite arguments
 	
 	op String getName() {
-		if (super.name.nullOrEmpty) "access.1" else super.name
+		if (super.name.nullOrEmpty) "access-1" else super.name
 	}
 	
-	op String computeUniqueName() {
-		return encode(containingCall?.containingRunnable?.name)
-				+ "/calls/" + encode(containingCall?.runnable?.name)
-				+ "/param/" + encode(parameter?.name) + "/" + encode(name)
-				+ "?type=" + eClass.name
+	op String[] getNamePrefixSegments() {
+		val segments = newBasicEList
+		val runnableOrProcess = containingCall?.containingActivityGraph?.eContainer as IReferable
+		if (runnableOrProcess !== null) {
+			// segments.add( runnableOrProcess.eClass.name.toUpperCase )
+			segments.addAll( runnableOrProcess.qualifiedNameSegments )
+		}
+		segments.add( "calls" )
+		segments.addAll( containingCall?.runnable?.qualifiedNameSegments ?: #[""] )
+		segments.add( "param" )
+		segments.add( (parameter?.name) ?: "" )
+		return segments
 	}
 	
-	@GenModel(propertyCategory="Main")
+	@GenModel(propertyCategory="Basic")
 	refers RunnableParameter parameter
-	
-	contains DataDependency dependsOn
 }
 
 /*
  * Representation of a runnable call of a run entity.
  */
-class RunnableCall extends CallGraphItem, ITaggable
+class RunnableCall extends ActivityGraphItem, ITaggable
 {
 	refers Runnable[1] runnable
 	contains CallArgument[] arguments opposite containingCall
@@ -3996,7 +4135,7 @@
 /*
  * Explicitly trigger a custom event from a runnable.
  */
-class CustomEventTrigger extends CallGraphItem
+class CustomEventTrigger extends ActivityGraphItem
 {
 	refers CustomEvent[1] event
 }
@@ -4066,7 +4205,7 @@
 	String alias
 }
 
-abstract class TypeDefinition extends ReferableBaseObject
+abstract class TypeDefinition extends ReferableBaseObject, INamespaceMember
 {
 	/*
 	 * Size of the defined data type
@@ -4074,6 +4213,7 @@
 	contains DataSize size
 }
 
+@GenModel(labelFeature="qualifiedName")
 class DataTypeDefinition extends TypeDefinition
 {
 	contains DataType dataType
@@ -4082,6 +4222,7 @@
 /*
  * Basic data type definition, including naming (alias) in target environments
  */
+@GenModel(labelFeature="qualifiedName")
 class BaseTypeDefinition extends TypeDefinition
 {
 	/*
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/plugin.xml b/plugins/org.eclipse.app4mc.amalthea.model/plugin.xml
index 5fe4e19..b99d41a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/plugin.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.model/plugin.xml
@@ -19,7 +19,7 @@
    <extension point="org.eclipse.emf.ecore.generated_package">
       <!-- @generated amalthea -->
       <package
-            uri="http://app4mc.eclipse.org/amalthea/0.9.6"
+            uri="http://app4mc.eclipse.org/amalthea/0.9.7"
             class="org.eclipse.app4mc.amalthea.model.AmaltheaPackage"
             genModel="model/amalthea.xcore"/>
    </extension>
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ASILType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ASILType.java
index c5b92ef..130fc66 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ASILType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ASILType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractElementMappingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractElementMappingConstraint.java
index e5c4fa8..9f69971 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractElementMappingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractElementMappingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractEventChain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractEventChain.java
index 9561f29..8afe93e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractEventChain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractEventChain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractMemoryElement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractMemoryElement.java
index 49c9c8d..f0f58ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractMemoryElement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractMemoryElement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractProcess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractProcess.java
index 97dc903..c62a1f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractProcess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AbstractProcess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessMultiplicity.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessMultiplicity.java
index 978340e..c4b0a6d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessMultiplicity.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessMultiplicity.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceSpec.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceSpec.java
index 353df17..969bfa5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceSpec.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceSpec.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceType.java
index dbcb35d..1126050 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AccessPrecedenceType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Activation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Activation.java
index 6ae57e7..95c5461 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Activation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Activation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraph.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraph.java
similarity index 69%
rename from plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraph.java
rename to plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraph.java
index 287f59c..261939b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraph.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraph.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -17,7 +17,7 @@
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Call Graph</b></em>'.
+ * A representation of the model object '<em><b>Activity Graph</b></em>'.
  * <!-- end-user-doc -->
  *
  * <!-- begin-model-doc -->
@@ -25,9 +25,9 @@
  * <!-- end-model-doc -->
  *
  *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallGraph()
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getActivityGraph()
  * @model
  * @generated
  */
-public interface CallGraph extends BaseObject, ICallGraphItemContainer {
-} // CallGraph
+public interface ActivityGraph extends BaseObject, IActivityGraphItemContainer {
+} // ActivityGraph
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraphItem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraphItem.java
new file mode 100644
index 0000000..f575f92
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ActivityGraphItem.java
@@ -0,0 +1,74 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Activity Graph Item</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <!-- begin-model-doc -->
+ * An abstract item of a call graph
+ * <!-- end-model-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingProcess <em>Containing Process</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingRunnable <em>Containing Runnable</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingActivityGraph <em>Containing Activity Graph</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getActivityGraphItem()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ActivityGraphItem extends BaseObject {
+	/**
+	 * Returns the value of the '<em><b>Containing Process</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing Process</em>' reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getActivityGraphItem_ContainingProcess()
+	 * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	org.eclipse.app4mc.amalthea.model.Process getContainingProcess();
+
+	/**
+	 * Returns the value of the '<em><b>Containing Runnable</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing Runnable</em>' reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getActivityGraphItem_ContainingRunnable()
+	 * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable();
+
+	/**
+	 * Returns the value of the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing Activity Graph</em>' reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getActivityGraphItem_ContainingActivityGraph()
+	 * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	ActivityGraph getContainingActivityGraph();
+
+} // ActivityGraphItem
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AffinityConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AffinityConstraint.java
index 33a4a71..8d95769 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AffinityConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AffinityConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Algorithm.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Algorithm.java
index f6ffa42..71658ed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Algorithm.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Algorithm.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Alias.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Alias.java
index 90933ad..96c50ce 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Alias.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Alias.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Amalthea.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Amalthea.java
index 63a2d65..708af90 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Amalthea.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Amalthea.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaFactory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaFactory.java
index fd77346..06b9d98 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaFactory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaFactory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -61,6 +61,15 @@
 	Tag createTag();
 
 	/**
+	 * Returns a new object of class '<em>Namespace</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Namespace</em>'.
+	 * @generated
+	 */
+	Namespace createNamespace();
+
+	/**
 	 * Returns a new object of class '<em>Core Classifier</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -511,6 +520,42 @@
 	ComponentsModel createComponentsModel();
 
 	/**
+	 * Returns a new object of class '<em>Main Interface</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Main Interface</em>'.
+	 * @generated
+	 */
+	MainInterface createMainInterface();
+
+	/**
+	 * Returns a new object of class '<em>Sub Interface</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Sub Interface</em>'.
+	 * @generated
+	 */
+	SubInterface createSubInterface();
+
+	/**
+	 * Returns a new object of class '<em>Component Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Component Port</em>'.
+	 * @generated
+	 */
+	ComponentPort createComponentPort();
+
+	/**
+	 * Returns a new object of class '<em>Component Structure</em>'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return a new object of class '<em>Component Structure</em>'.
+	 * @generated
+	 */
+	ComponentStructure createComponentStructure();
+
+	/**
 	 * Returns a new object of class '<em>Component</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -565,15 +610,6 @@
 	QualifiedPort createQualifiedPort();
 
 	/**
-	 * Returns a new object of class '<em>Interface Port</em>'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Interface Port</em>'.
-	 * @generated
-	 */
-	InterfacePort createInterfacePort();
-
-	/**
 	 * Returns a new object of class '<em>Config Model</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1888,13 +1924,13 @@
 	ProcessChain createProcessChain();
 
 	/**
-	 * Returns a new object of class '<em>Call Graph</em>'.
+	 * Returns a new object of class '<em>Activity Graph</em>'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return a new object of class '<em>Call Graph</em>'.
+	 * @return a new object of class '<em>Activity Graph</em>'.
 	 * @generated
 	 */
-	CallGraph createCallGraph();
+	ActivityGraph createActivityGraph();
 
 	/**
 	 * Returns a new object of class '<em>Mode Switch</em>'.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
index ba0e4d6..1a9a40d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AmaltheaPackage.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -37,7 +37,7 @@
  * <!-- begin-model-doc -->
  * *
  * *******************************************************************************
- * Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -65,7 +65,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	String eNS_URI = "http://app4mc.eclipse.org/amalthea/0.9.6";
+	String eNS_URI = "http://app4mc.eclipse.org/amalthea/0.9.7";
 
 	/**
 	 * The package namespace name.
@@ -340,13 +340,22 @@
 	int COMMON_ELEMENTS__TAGS = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Namespaces</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMMON_ELEMENTS__NAMESPACES = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Core Classifiers</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMMON_ELEMENTS__CORE_CLASSIFIERS = BASE_OBJECT_FEATURE_COUNT + 1;
+	int COMMON_ELEMENTS__CORE_CLASSIFIERS = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Memory Classifiers</b></em>' containment reference list.
@@ -355,7 +364,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMMON_ELEMENTS__MEMORY_CLASSIFIERS = BASE_OBJECT_FEATURE_COUNT + 2;
+	int COMMON_ELEMENTS__MEMORY_CLASSIFIERS = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Common Elements</em>' class.
@@ -364,7 +373,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMMON_ELEMENTS_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+	int COMMON_ELEMENTS_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Common Elements</em>' class.
@@ -395,13 +404,76 @@
 	int INAMED__NAME = 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED__QUALIFIED_NAME = 1;
+
+	/**
 	 * The number of structural features of the '<em>INamed</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INAMED_FEATURE_COUNT = 1;
+	int INAMED_FEATURE_COUNT = 2;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_NAMED_CONTAINER = 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_NAME_PREFIX = 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_QUALIFIED_NAME_SEGMENTS = 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_DEFAULT_NAME_SEPARATOR = 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_NAMESPACE = 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMED___GET_NAME_PREFIX_SEGMENTS = 5;
 
 	/**
 	 * The number of operations of the '<em>INamed</em>' class.
@@ -410,7 +482,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INAMED_OPERATION_COUNT = 0;
+	int INAMED_OPERATION_COUNT = 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IReferable <em>IReferable</em>}' class.
@@ -432,6 +504,15 @@
 	int IREFERABLE__NAME = INAMED__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE__QUALIFIED_NAME = INAMED__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -450,22 +531,67 @@
 	int IREFERABLE_FEATURE_COUNT = INAMED_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE___GET_NAMED_CONTAINER = INAMED___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IREFERABLE___GET_NAME_PREFIX = INAMED_OPERATION_COUNT + 0;
+	int IREFERABLE___GET_NAME_PREFIX = INAMED___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int IREFERABLE___ENCODE__STRING = INAMED_OPERATION_COUNT + 1;
+	int IREFERABLE___GET_QUALIFIED_NAME_SEGMENTS = INAMED___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE___GET_DEFAULT_NAME_SEPARATOR = INAMED___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE___GET_NAMESPACE = INAMED___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE___GET_NAME_PREFIX_SEGMENTS = INAMED___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IREFERABLE___GET_ENCODED_QUALIFIED_NAME = INAMED_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -474,7 +600,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = INAMED_OPERATION_COUNT + 2;
+	int IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = INAMED_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>IReferable</em>' class.
@@ -483,7 +609,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int IREFERABLE_OPERATION_COUNT = INAMED_OPERATION_COUNT + 3;
+	int IREFERABLE_OPERATION_COUNT = INAMED_OPERATION_COUNT + 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ReferableObjectImpl <em>Referable Object</em>}' class.
@@ -505,6 +631,15 @@
 	int REFERABLE_OBJECT__NAME = IREFERABLE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT__QUALIFIED_NAME = IREFERABLE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -523,6 +658,15 @@
 	int REFERABLE_OBJECT_FEATURE_COUNT = IREFERABLE_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT___GET_NAMED_CONTAINER = IREFERABLE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -532,13 +676,49 @@
 	int REFERABLE_OBJECT___GET_NAME_PREFIX = IREFERABLE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_OBJECT___ENCODE__STRING = IREFERABLE___ENCODE__STRING;
+	int REFERABLE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS = IREFERABLE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT___GET_DEFAULT_NAME_SEPARATOR = IREFERABLE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT___GET_NAMESPACE = IREFERABLE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT___GET_NAME_PREFIX_SEGMENTS = IREFERABLE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_OBJECT___GET_ENCODED_QUALIFIED_NAME = IREFERABLE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -587,13 +767,22 @@
 	int REFERABLE_BASE_OBJECT__NAME = IANNOTATABLE_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT__QUALIFIED_NAME = IANNOTATABLE_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT__UNIQUE_NAME = IANNOTATABLE_FEATURE_COUNT + 1;
+	int REFERABLE_BASE_OBJECT__UNIQUE_NAME = IANNOTATABLE_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Referable Base Object</em>' class.
@@ -602,7 +791,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT_FEATURE_COUNT = IANNOTATABLE_FEATURE_COUNT + 2;
+	int REFERABLE_BASE_OBJECT_FEATURE_COUNT = IANNOTATABLE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER = IANNOTATABLE_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -611,16 +809,52 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT___GET_NAME_PREFIX = IANNOTATABLE_OPERATION_COUNT + 0;
+	int REFERABLE_BASE_OBJECT___GET_NAME_PREFIX = IANNOTATABLE_OPERATION_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT___ENCODE__STRING = IANNOTATABLE_OPERATION_COUNT + 1;
+	int REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS = IANNOTATABLE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR = IANNOTATABLE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT___GET_NAMESPACE = IANNOTATABLE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS = IANNOTATABLE_OPERATION_COUNT + 5;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME = IANNOTATABLE_OPERATION_COUNT + 6;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -629,7 +863,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = IANNOTATABLE_OPERATION_COUNT + 2;
+	int REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = IANNOTATABLE_OPERATION_COUNT + 7;
 
 	/**
 	 * The number of operations of the '<em>Referable Base Object</em>' class.
@@ -638,7 +872,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REFERABLE_BASE_OBJECT_OPERATION_COUNT = IANNOTATABLE_OPERATION_COUNT + 3;
+	int REFERABLE_BASE_OBJECT_OPERATION_COUNT = IANNOTATABLE_OPERATION_COUNT + 8;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ITaggable <em>ITaggable</em>}' class.
@@ -752,6 +986,43 @@
 	int IDESCRIPTION_OPERATION_COUNT = 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.INamespaceMember <em>INamespace Member</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.INamespaceMember
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getINamespaceMember()
+	 * @generated
+	 */
+	int INAMESPACE_MEMBER = 11;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMESPACE_MEMBER__NAMESPACE = 0;
+
+	/**
+	 * The number of structural features of the '<em>INamespace Member</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMESPACE_MEMBER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>INamespace Member</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INAMESPACE_MEMBER_OPERATION_COUNT = 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.TagImpl <em>Tag</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -759,7 +1030,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTag()
 	 * @generated
 	 */
-	int TAG = 11;
+	int TAG = 12;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -780,6 +1051,15 @@
 	int TAG__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -825,6 +1105,15 @@
 	int TAG_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -834,13 +1123,49 @@
 	int TAG___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TAG___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int TAG___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TAG___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -861,6 +1186,160 @@
 	int TAG_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.NamespaceImpl <em>Namespace</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.NamespaceImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNamespace()
+	 * @generated
+	 */
+	int NAMESPACE = 13;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__NAME = REFERABLE_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__QUALIFIED_NAME = REFERABLE_OBJECT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__UNIQUE_NAME = REFERABLE_OBJECT__UNIQUE_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Next Segments</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__NEXT_SEGMENTS = REFERABLE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Previous Segment</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__PREVIOUS_SEGMENT = REFERABLE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Member Objects</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE__MEMBER_OBJECTS = REFERABLE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Namespace</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE_FEATURE_COUNT = REFERABLE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_NAMED_CONTAINER = REFERABLE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_NAME_PREFIX = REFERABLE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_NAMESPACE = REFERABLE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Namespace</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NAMESPACE_OPERATION_COUNT = REFERABLE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ClassifierImpl <em>Classifier</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -868,7 +1347,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClassifier()
 	 * @generated
 	 */
-	int CLASSIFIER = 12;
+	int CLASSIFIER = 14;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -889,6 +1368,15 @@
 	int CLASSIFIER__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -916,6 +1404,15 @@
 	int CLASSIFIER_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -925,13 +1422,49 @@
 	int CLASSIFIER___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLASSIFIER___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int CLASSIFIER___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLASSIFIER___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -959,7 +1492,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCoreClassifier()
 	 * @generated
 	 */
-	int CORE_CLASSIFIER = 13;
+	int CORE_CLASSIFIER = 15;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -980,6 +1513,15 @@
 	int CORE_CLASSIFIER__NAME = CLASSIFIER__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1007,6 +1549,15 @@
 	int CORE_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER___GET_NAMED_CONTAINER = CLASSIFIER___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1016,13 +1567,49 @@
 	int CORE_CLASSIFIER___GET_NAME_PREFIX = CLASSIFIER___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CORE_CLASSIFIER___ENCODE__STRING = CLASSIFIER___ENCODE__STRING;
+	int CORE_CLASSIFIER___GET_QUALIFIED_NAME_SEGMENTS = CLASSIFIER___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER___GET_DEFAULT_NAME_SEPARATOR = CLASSIFIER___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER___GET_NAME_PREFIX_SEGMENTS = CLASSIFIER___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CORE_CLASSIFIER___GET_ENCODED_QUALIFIED_NAME = CLASSIFIER___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -1050,7 +1637,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryClassifier()
 	 * @generated
 	 */
-	int MEMORY_CLASSIFIER = 14;
+	int MEMORY_CLASSIFIER = 16;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -1071,6 +1658,15 @@
 	int MEMORY_CLASSIFIER__NAME = CLASSIFIER__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER__QUALIFIED_NAME = CLASSIFIER__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1098,6 +1694,15 @@
 	int MEMORY_CLASSIFIER_FEATURE_COUNT = CLASSIFIER_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER___GET_NAMED_CONTAINER = CLASSIFIER___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -1107,13 +1712,49 @@
 	int MEMORY_CLASSIFIER___GET_NAME_PREFIX = CLASSIFIER___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MEMORY_CLASSIFIER___ENCODE__STRING = CLASSIFIER___ENCODE__STRING;
+	int MEMORY_CLASSIFIER___GET_QUALIFIED_NAME_SEGMENTS = CLASSIFIER___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER___GET_DEFAULT_NAME_SEPARATOR = CLASSIFIER___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER___GET_NAMESPACE = CLASSIFIER___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER___GET_NAME_PREFIX_SEGMENTS = CLASSIFIER___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_CLASSIFIER___GET_ENCODED_QUALIFIED_NAME = CLASSIFIER___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -1141,7 +1782,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTransmissionPolicy()
 	 * @generated
 	 */
-	int TRANSMISSION_POLICY = 15;
+	int TRANSMISSION_POLICY = 17;
 
 	/**
 	 * The feature id for the '<em><b>Chunk Size</b></em>' containment reference.
@@ -1196,7 +1837,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getQuantity()
 	 * @generated
 	 */
-	int QUANTITY = 16;
+	int QUANTITY = 18;
 
 	/**
 	 * The number of structural features of the '<em>Quantity</em>' class.
@@ -1224,7 +1865,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeComparable()
 	 * @generated
 	 */
-	int TIME_COMPARABLE = 17;
+	int TIME_COMPARABLE = 19;
 
 	/**
 	 * The number of structural features of the '<em>Time Comparable</em>' class.
@@ -1252,7 +1893,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTime()
 	 * @generated
 	 */
-	int TIME = 18;
+	int TIME = 20;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1370,7 +2011,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFrequency()
 	 * @generated
 	 */
-	int FREQUENCY = 19;
+	int FREQUENCY = 21;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1425,7 +2066,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getVoltage()
 	 * @generated
 	 */
-	int VOLTAGE = 20;
+	int VOLTAGE = 22;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1480,7 +2121,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataSize()
 	 * @generated
 	 */
-	int DATA_SIZE = 21;
+	int DATA_SIZE = 23;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1553,7 +2194,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataRateComparable()
 	 * @generated
 	 */
-	int DATA_RATE_COMPARABLE = 22;
+	int DATA_RATE_COMPARABLE = 24;
 
 	/**
 	 * The number of structural features of the '<em>Data Rate Comparable</em>' class.
@@ -1581,7 +2222,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataRate()
 	 * @generated
 	 */
-	int DATA_RATE = 23;
+	int DATA_RATE = 25;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1645,7 +2286,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomProperty()
 	 * @generated
 	 */
-	int CUSTOM_PROPERTY = 24;
+	int CUSTOM_PROPERTY = 26;
 
 	/**
 	 * The feature id for the '<em><b>Key</b></em>' attribute.
@@ -1691,7 +2332,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getValue()
 	 * @generated
 	 */
-	int VALUE = 25;
+	int VALUE = 27;
 
 	/**
 	 * The number of structural features of the '<em>Value</em>' class.
@@ -1719,7 +2360,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getListObject()
 	 * @generated
 	 */
-	int LIST_OBJECT = 26;
+	int LIST_OBJECT = 28;
 
 	/**
 	 * The feature id for the '<em><b>Values</b></em>' containment reference list.
@@ -1756,7 +2397,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStringObject()
 	 * @generated
 	 */
-	int STRING_OBJECT = 27;
+	int STRING_OBJECT = 29;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1793,7 +2434,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBigIntegerObject()
 	 * @generated
 	 */
-	int BIG_INTEGER_OBJECT = 28;
+	int BIG_INTEGER_OBJECT = 30;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1830,7 +2471,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getReferenceObject()
 	 * @generated
 	 */
-	int REFERENCE_OBJECT = 29;
+	int REFERENCE_OBJECT = 31;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' reference.
@@ -1867,7 +2508,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIntegerObject()
 	 * @generated
 	 */
-	int INTEGER_OBJECT = 30;
+	int INTEGER_OBJECT = 32;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1904,7 +2545,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLongObject()
 	 * @generated
 	 */
-	int LONG_OBJECT = 31;
+	int LONG_OBJECT = 33;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1941,7 +2582,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFloatObject()
 	 * @generated
 	 */
-	int FLOAT_OBJECT = 32;
+	int FLOAT_OBJECT = 34;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -1978,7 +2619,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDoubleObject()
 	 * @generated
 	 */
-	int DOUBLE_OBJECT = 33;
+	int DOUBLE_OBJECT = 35;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -2015,7 +2656,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBooleanObject()
 	 * @generated
 	 */
-	int BOOLEAN_OBJECT = 34;
+	int BOOLEAN_OBJECT = 36;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -2052,7 +2693,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNumericStatistic()
 	 * @generated
 	 */
-	int NUMERIC_STATISTIC = 35;
+	int NUMERIC_STATISTIC = 37;
 
 	/**
 	 * The number of structural features of the '<em>Numeric Statistic</em>' class.
@@ -2080,7 +2721,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMinAvgMaxStatistic()
 	 * @generated
 	 */
-	int MIN_AVG_MAX_STATISTIC = 36;
+	int MIN_AVG_MAX_STATISTIC = 38;
 
 	/**
 	 * The feature id for the '<em><b>Min</b></em>' attribute.
@@ -2144,7 +2785,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSingleValueStatistic()
 	 * @generated
 	 */
-	int SINGLE_VALUE_STATISTIC = 37;
+	int SINGLE_VALUE_STATISTIC = 39;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -2181,7 +2822,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getITimeDeviation()
 	 * @generated
 	 */
-	int ITIME_DEVIATION = 38;
+	int ITIME_DEVIATION = 40;
 
 	/**
 	 * The number of structural features of the '<em>ITime Deviation</em>' class.
@@ -2236,7 +2877,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeInterval()
 	 * @generated
 	 */
-	int TIME_INTERVAL = 39;
+	int TIME_INTERVAL = 41;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2300,7 +2941,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeConstant()
 	 * @generated
 	 */
-	int TIME_CONSTANT = 40;
+	int TIME_CONSTANT = 42;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' containment reference.
@@ -2364,7 +3005,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeHistogram()
 	 * @generated
 	 */
-	int TIME_HISTOGRAM = 41;
+	int TIME_HISTOGRAM = 43;
 
 	/**
 	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
@@ -2428,7 +3069,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeHistogramEntry()
 	 * @generated
 	 */
-	int TIME_HISTOGRAM_ENTRY = 42;
+	int TIME_HISTOGRAM_ENTRY = 44;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2501,7 +3142,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBoundedTimeDistribution()
 	 * @generated
 	 */
-	int BOUNDED_TIME_DISTRIBUTION = 43;
+	int BOUNDED_TIME_DISTRIBUTION = 45;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2583,7 +3224,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTruncatedTimeDistribution()
 	 * @generated
 	 */
-	int TRUNCATED_TIME_DISTRIBUTION = 44;
+	int TRUNCATED_TIME_DISTRIBUTION = 46;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2665,7 +3306,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeBoundaries()
 	 * @generated
 	 */
-	int TIME_BOUNDARIES = 45;
+	int TIME_BOUNDARIES = 47;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2756,7 +3397,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeStatistics()
 	 * @generated
 	 */
-	int TIME_STATISTICS = 46;
+	int TIME_STATISTICS = 48;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2847,7 +3488,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeUniformDistribution()
 	 * @generated
 	 */
-	int TIME_UNIFORM_DISTRIBUTION = 47;
+	int TIME_UNIFORM_DISTRIBUTION = 49;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -2929,7 +3570,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeGaussDistribution()
 	 * @generated
 	 */
-	int TIME_GAUSS_DISTRIBUTION = 48;
+	int TIME_GAUSS_DISTRIBUTION = 50;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -3029,7 +3670,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeWeibullEstimatorsDistribution()
 	 * @generated
 	 */
-	int TIME_WEIBULL_ESTIMATORS_DISTRIBUTION = 49;
+	int TIME_WEIBULL_ESTIMATORS_DISTRIBUTION = 51;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -3129,7 +3770,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeBetaDistribution()
 	 * @generated
 	 */
-	int TIME_BETA_DISTRIBUTION = 50;
+	int TIME_BETA_DISTRIBUTION = 52;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' containment reference.
@@ -3229,7 +3870,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIDiscreteValueDeviation()
 	 * @generated
 	 */
-	int IDISCRETE_VALUE_DEVIATION = 51;
+	int IDISCRETE_VALUE_DEVIATION = 53;
 
 	/**
 	 * The number of structural features of the '<em>IDiscrete Value Deviation</em>' class.
@@ -3284,7 +3925,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueInterval()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_INTERVAL = 52;
+	int DISCRETE_VALUE_INTERVAL = 54;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3348,7 +3989,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueConstant()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_CONSTANT = 53;
+	int DISCRETE_VALUE_CONSTANT = 55;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -3412,7 +4053,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueHistogram()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_HISTOGRAM = 54;
+	int DISCRETE_VALUE_HISTOGRAM = 56;
 
 	/**
 	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
@@ -3476,7 +4117,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueHistogramEntry()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_HISTOGRAM_ENTRY = 55;
+	int DISCRETE_VALUE_HISTOGRAM_ENTRY = 57;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3549,7 +4190,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBoundedDiscreteValueDistribution()
 	 * @generated
 	 */
-	int BOUNDED_DISCRETE_VALUE_DISTRIBUTION = 56;
+	int BOUNDED_DISCRETE_VALUE_DISTRIBUTION = 58;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3631,7 +4272,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTruncatedDiscreteValueDistribution()
 	 * @generated
 	 */
-	int TRUNCATED_DISCRETE_VALUE_DISTRIBUTION = 57;
+	int TRUNCATED_DISCRETE_VALUE_DISTRIBUTION = 59;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3713,7 +4354,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueBoundaries()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_BOUNDARIES = 58;
+	int DISCRETE_VALUE_BOUNDARIES = 60;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3804,7 +4445,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueStatistics()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_STATISTICS = 59;
+	int DISCRETE_VALUE_STATISTICS = 61;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3895,7 +4536,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueUniformDistribution()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_UNIFORM_DISTRIBUTION = 60;
+	int DISCRETE_VALUE_UNIFORM_DISTRIBUTION = 62;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -3977,7 +4618,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueGaussDistribution()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_GAUSS_DISTRIBUTION = 61;
+	int DISCRETE_VALUE_GAUSS_DISTRIBUTION = 63;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4077,7 +4718,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueWeibullEstimatorsDistribution()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_WEIBULL_ESTIMATORS_DISTRIBUTION = 62;
+	int DISCRETE_VALUE_WEIBULL_ESTIMATORS_DISTRIBUTION = 64;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4177,7 +4818,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDiscreteValueBetaDistribution()
 	 * @generated
 	 */
-	int DISCRETE_VALUE_BETA_DISTRIBUTION = 63;
+	int DISCRETE_VALUE_BETA_DISTRIBUTION = 65;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4277,7 +4918,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIContinuousValueDeviation()
 	 * @generated
 	 */
-	int ICONTINUOUS_VALUE_DEVIATION = 64;
+	int ICONTINUOUS_VALUE_DEVIATION = 66;
 
 	/**
 	 * The number of structural features of the '<em>IContinuous Value Deviation</em>' class.
@@ -4332,7 +4973,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueInterval()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_INTERVAL = 65;
+	int CONTINUOUS_VALUE_INTERVAL = 67;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4396,7 +5037,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueConstant()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_CONSTANT = 66;
+	int CONTINUOUS_VALUE_CONSTANT = 68;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -4460,7 +5101,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueHistogram()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_HISTOGRAM = 67;
+	int CONTINUOUS_VALUE_HISTOGRAM = 69;
 
 	/**
 	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
@@ -4524,7 +5165,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueHistogramEntry()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_HISTOGRAM_ENTRY = 68;
+	int CONTINUOUS_VALUE_HISTOGRAM_ENTRY = 70;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4597,7 +5238,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBoundedContinuousValueDistribution()
 	 * @generated
 	 */
-	int BOUNDED_CONTINUOUS_VALUE_DISTRIBUTION = 69;
+	int BOUNDED_CONTINUOUS_VALUE_DISTRIBUTION = 71;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4679,7 +5320,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTruncatedContinuousValueDistribution()
 	 * @generated
 	 */
-	int TRUNCATED_CONTINUOUS_VALUE_DISTRIBUTION = 70;
+	int TRUNCATED_CONTINUOUS_VALUE_DISTRIBUTION = 72;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4761,7 +5402,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueBoundaries()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_BOUNDARIES = 71;
+	int CONTINUOUS_VALUE_BOUNDARIES = 73;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4852,7 +5493,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueStatistics()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_STATISTICS = 72;
+	int CONTINUOUS_VALUE_STATISTICS = 74;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -4943,7 +5584,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueUniformDistribution()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_UNIFORM_DISTRIBUTION = 73;
+	int CONTINUOUS_VALUE_UNIFORM_DISTRIBUTION = 75;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -5025,7 +5666,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueGaussDistribution()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_GAUSS_DISTRIBUTION = 74;
+	int CONTINUOUS_VALUE_GAUSS_DISTRIBUTION = 76;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -5125,7 +5766,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueWeibullEstimatorsDistribution()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_WEIBULL_ESTIMATORS_DISTRIBUTION = 75;
+	int CONTINUOUS_VALUE_WEIBULL_ESTIMATORS_DISTRIBUTION = 77;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -5225,7 +5866,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getContinuousValueBetaDistribution()
 	 * @generated
 	 */
-	int CONTINUOUS_VALUE_BETA_DISTRIBUTION = 76;
+	int CONTINUOUS_VALUE_BETA_DISTRIBUTION = 78;
 
 	/**
 	 * The feature id for the '<em><b>Lower Bound</b></em>' attribute.
@@ -5325,7 +5966,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMode()
 	 * @generated
 	 */
-	int MODE = 77;
+	int MODE = 79;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5346,6 +5987,15 @@
 	int MODE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5364,6 +6014,15 @@
 	int MODE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5373,13 +6032,49 @@
 	int MODE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MODE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int MODE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -5407,7 +6102,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNumericMode()
 	 * @generated
 	 */
-	int NUMERIC_MODE = 78;
+	int NUMERIC_MODE = 80;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5428,6 +6123,15 @@
 	int NUMERIC_MODE__NAME = MODE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE__QUALIFIED_NAME = MODE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5446,6 +6150,15 @@
 	int NUMERIC_MODE_FEATURE_COUNT = MODE_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE___GET_NAMED_CONTAINER = MODE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5455,13 +6168,49 @@
 	int NUMERIC_MODE___GET_NAME_PREFIX = MODE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int NUMERIC_MODE___ENCODE__STRING = MODE___ENCODE__STRING;
+	int NUMERIC_MODE___GET_QUALIFIED_NAME_SEGMENTS = MODE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE___GET_DEFAULT_NAME_SEPARATOR = MODE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE___GET_NAMESPACE = MODE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE___GET_NAME_PREFIX_SEGMENTS = MODE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int NUMERIC_MODE___GET_ENCODED_QUALIFIED_NAME = MODE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -5489,7 +6238,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEnumMode()
 	 * @generated
 	 */
-	int ENUM_MODE = 79;
+	int ENUM_MODE = 81;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5510,6 +6259,15 @@
 	int ENUM_MODE__NAME = MODE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE__QUALIFIED_NAME = MODE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5537,6 +6295,15 @@
 	int ENUM_MODE_FEATURE_COUNT = MODE_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE___GET_NAMED_CONTAINER = MODE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5546,13 +6313,49 @@
 	int ENUM_MODE___GET_NAME_PREFIX = MODE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ENUM_MODE___ENCODE__STRING = MODE___ENCODE__STRING;
+	int ENUM_MODE___GET_QUALIFIED_NAME_SEGMENTS = MODE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE___GET_DEFAULT_NAME_SEPARATOR = MODE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE___GET_NAMESPACE = MODE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE___GET_NAME_PREFIX_SEGMENTS = MODE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENUM_MODE___GET_ENCODED_QUALIFIED_NAME = MODE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -5589,7 +6392,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeLiteral()
 	 * @generated
 	 */
-	int MODE_LITERAL = 80;
+	int MODE_LITERAL = 82;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5610,6 +6413,15 @@
 	int MODE_LITERAL__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5637,13 +6449,58 @@
 	int MODE_LITERAL_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LITERAL___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int MODE_LITERAL___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LITERAL___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -5655,13 +6512,13 @@
 	int MODE_LITERAL___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LITERAL___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>To String</em>' operation.
@@ -5689,7 +6546,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentsModel()
 	 * @generated
 	 */
-	int COMPONENTS_MODEL = 81;
+	int COMPONENTS_MODEL = 83;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5710,13 +6567,31 @@
 	int COMPONENTS_MODEL__COMPONENTS = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Interfaces</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENTS_MODEL__INTERFACES = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Structures</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENTS_MODEL__STRUCTURES = BASE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
 	 * The feature id for the '<em><b>Systems</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENTS_MODEL__SYSTEMS = BASE_OBJECT_FEATURE_COUNT + 1;
+	int COMPONENTS_MODEL__SYSTEMS = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Components Model</em>' class.
@@ -5725,7 +6600,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENTS_MODEL_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int COMPONENTS_MODEL_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Components Model</em>' class.
@@ -5737,6 +6612,80 @@
 	int COMPONENTS_MODEL_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IComponentContainer <em>IComponent Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentContainer
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIComponentContainer()
+	 * @generated
+	 */
+	int ICOMPONENT_CONTAINER = 84;
+
+	/**
+	 * The feature id for the '<em><b>Components</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_CONTAINER__COMPONENTS = 0;
+
+	/**
+	 * The number of structural features of the '<em>IComponent Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_CONTAINER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>IComponent Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_CONTAINER_OPERATION_COUNT = 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IInterfaceContainer <em>IInterface Container</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.IInterfaceContainer
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIInterfaceContainer()
+	 * @generated
+	 */
+	int IINTERFACE_CONTAINER = 85;
+
+	/**
+	 * The feature id for the '<em><b>Interfaces</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IINTERFACE_CONTAINER__INTERFACES = 0;
+
+	/**
+	 * The number of structural features of the '<em>IInterface Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IINTERFACE_CONTAINER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>IInterface Container</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IINTERFACE_CONTAINER_OPERATION_COUNT = 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ISystem <em>ISystem</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5744,7 +6693,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getISystem()
 	 * @generated
 	 */
-	int ISYSTEM = 82;
+	int ISYSTEM = 86;
 
 	/**
 	 * The feature id for the '<em><b>Component Instances</b></em>' containment reference list.
@@ -5801,14 +6750,14 @@
 	int ISYSTEM_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.PortImpl <em>Port</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInterfaceImpl <em>Component Interface</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.app4mc.amalthea.model.impl.PortImpl
-	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPort()
+	 * @see org.eclipse.app4mc.amalthea.model.impl.ComponentInterfaceImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentInterface()
 	 * @generated
 	 */
-	int PORT = 83;
+	int COMPONENT_INTERFACE = 87;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5817,7 +6766,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__CUSTOM_PROPERTIES = REFERABLE_BASE_OBJECT__CUSTOM_PROPERTIES;
+	int COMPONENT_INTERFACE__CUSTOM_PROPERTIES = REFERABLE_BASE_OBJECT__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -5826,7 +6775,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__NAME = REFERABLE_BASE_OBJECT__NAME;
+	int COMPONENT_INTERFACE__NAME = REFERABLE_BASE_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
 
 	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
@@ -5835,7 +6793,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
+	int COMPONENT_INTERFACE__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
 
 	/**
 	 * The feature id for the '<em><b>Tags</b></em>' reference list.
@@ -5844,43 +6802,43 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__TAGS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+	int COMPONENT_INTERFACE__TAGS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
-	 * The feature id for the '<em><b>Containing Component</b></em>' container reference.
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT__CONTAINING_COMPONENT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+	int COMPONENT_INTERFACE__DATATYPE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Port</em>' class.
+	 * The feature id for the '<em><b>Sub Interfaces</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+	int COMPONENT_INTERFACE__SUB_INTERFACES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The number of structural features of the '<em>Component Interface</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int COMPONENT_INTERFACE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
-	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+	int COMPONENT_INTERFACE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -5889,16 +6847,804 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PORT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int COMPONENT_INTERFACE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The number of operations of the '<em>Port</em>' class.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PORT_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
+	int COMPONENT_INTERFACE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The number of operations of the '<em>Component Interface</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INTERFACE_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl <em>Main Interface</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMainInterface()
+	 * @generated
+	 */
+	int MAIN_INTERFACE = 88;
+
+	/**
+	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__CUSTOM_PROPERTIES = COMPONENT_INTERFACE__CUSTOM_PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__NAME = COMPONENT_INTERFACE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__QUALIFIED_NAME = COMPONENT_INTERFACE__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__UNIQUE_NAME = COMPONENT_INTERFACE__UNIQUE_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__TAGS = COMPONENT_INTERFACE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__DATATYPE = COMPONENT_INTERFACE__DATATYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sub Interfaces</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__SUB_INTERFACES = COMPONENT_INTERFACE__SUB_INTERFACES;
+
+	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__NAMESPACE = COMPONENT_INTERFACE_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Structure</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__STRUCTURE = COMPONENT_INTERFACE_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Version</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE__VERSION = COMPONENT_INTERFACE_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Main Interface</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE_FEATURE_COUNT = COMPONENT_INTERFACE_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_NAMED_CONTAINER = COMPONENT_INTERFACE___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_NAME_PREFIX = COMPONENT_INTERFACE___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_QUALIFIED_NAME_SEGMENTS = COMPONENT_INTERFACE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_DEFAULT_NAME_SEPARATOR = COMPONENT_INTERFACE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_NAMESPACE = COMPONENT_INTERFACE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_NAME_PREFIX_SEGMENTS = COMPONENT_INTERFACE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___GET_ENCODED_QUALIFIED_NAME = COMPONENT_INTERFACE___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = COMPONENT_INTERFACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The number of operations of the '<em>Main Interface</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MAIN_INTERFACE_OPERATION_COUNT = COMPONENT_INTERFACE_OPERATION_COUNT + 0;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SubInterfaceImpl <em>Sub Interface</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.SubInterfaceImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSubInterface()
+	 * @generated
+	 */
+	int SUB_INTERFACE = 89;
+
+	/**
+	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__CUSTOM_PROPERTIES = COMPONENT_INTERFACE__CUSTOM_PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__NAME = COMPONENT_INTERFACE__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__QUALIFIED_NAME = COMPONENT_INTERFACE__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__UNIQUE_NAME = COMPONENT_INTERFACE__UNIQUE_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__TAGS = COMPONENT_INTERFACE__TAGS;
+
+	/**
+	 * The feature id for the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__DATATYPE = COMPONENT_INTERFACE__DATATYPE;
+
+	/**
+	 * The feature id for the '<em><b>Sub Interfaces</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__SUB_INTERFACES = COMPONENT_INTERFACE__SUB_INTERFACES;
+
+	/**
+	 * The feature id for the '<em><b>Containing Interface</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE__CONTAINING_INTERFACE = COMPONENT_INTERFACE_FEATURE_COUNT + 0;
+
+	/**
+	 * The number of structural features of the '<em>Sub Interface</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE_FEATURE_COUNT = COMPONENT_INTERFACE_FEATURE_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_NAMED_CONTAINER = COMPONENT_INTERFACE___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_NAME_PREFIX = COMPONENT_INTERFACE___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_QUALIFIED_NAME_SEGMENTS = COMPONENT_INTERFACE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_DEFAULT_NAME_SEPARATOR = COMPONENT_INTERFACE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_NAMESPACE = COMPONENT_INTERFACE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_ENCODED_QUALIFIED_NAME = COMPONENT_INTERFACE___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = COMPONENT_INTERFACE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS = COMPONENT_INTERFACE_OPERATION_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Sub Interface</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_INTERFACE_OPERATION_COUNT = COMPONENT_INTERFACE_OPERATION_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl <em>Component Port</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentPort()
+	 * @generated
+	 */
+	int COMPONENT_PORT = 90;
+
+	/**
+	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__CUSTOM_PROPERTIES = REFERABLE_BASE_OBJECT__CUSTOM_PROPERTIES;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__NAME = REFERABLE_BASE_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Tags</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__TAGS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Containing Component</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__CONTAINING_COMPONENT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Kind</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__KIND = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Interface</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT__INTERFACE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of structural features of the '<em>Component Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The number of operations of the '<em>Component Port</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_PORT_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ComponentStructureImpl <em>Component Structure</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.ComponentStructureImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentStructure()
+	 * @generated
+	 */
+	int COMPONENT_STRUCTURE = 91;
+
+	/**
+	 * The feature id for the '<em><b>Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__NAME = REFERABLE_OBJECT__NAME;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__QUALIFIED_NAME = REFERABLE_OBJECT__QUALIFIED_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__UNIQUE_NAME = REFERABLE_OBJECT__UNIQUE_NAME;
+
+	/**
+	 * The feature id for the '<em><b>Structure Type</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__STRUCTURE_TYPE = REFERABLE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Sub Structures</b></em>' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__SUB_STRUCTURES = REFERABLE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Member Objects</b></em>' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE__MEMBER_OBJECTS = REFERABLE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The number of structural features of the '<em>Component Structure</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE_FEATURE_COUNT = REFERABLE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_NAMED_CONTAINER = REFERABLE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_NAME_PREFIX = REFERABLE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_NAMESPACE = REFERABLE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
+
+	/**
+	 * The operation id for the '<em>Validate Invariants</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
+
+	/**
+	 * The operation id for the '<em>Get Containing Structure</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_CONTAINING_STRUCTURE = REFERABLE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The number of operations of the '<em>Component Structure</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_STRUCTURE_OPERATION_COUNT = REFERABLE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember <em>IComponent Structure Member</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentStructureMember
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIComponentStructureMember()
+	 * @generated
+	 */
+	int ICOMPONENT_STRUCTURE_MEMBER = 92;
+
+	/**
+	 * The feature id for the '<em><b>Structure</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE = 0;
+
+	/**
+	 * The number of structural features of the '<em>IComponent Structure Member</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_STRUCTURE_MEMBER_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>IComponent Structure Member</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ICOMPONENT_STRUCTURE_MEMBER_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl <em>Component</em>}' class.
@@ -5908,7 +7654,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponent()
 	 * @generated
 	 */
-	int COMPONENT = 84;
+	int COMPONENT = 93;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -5929,6 +7675,15 @@
 	int COMPONENT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -5947,22 +7702,40 @@
 	int COMPONENT__TAGS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT__NAMESPACE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
+	 * The feature id for the '<em><b>Structure</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT__STRUCTURE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
 	 * The feature id for the '<em><b>Ports</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__PORTS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+	int COMPONENT__PORTS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
-	 * The feature id for the '<em><b>Tasks</b></em>' reference list.
+	 * The feature id for the '<em><b>Processes</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__TASKS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+	int COMPONENT__PROCESSES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Runnables</b></em>' reference list.
@@ -5971,7 +7744,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__RUNNABLES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
+	int COMPONENT__RUNNABLES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Labels</b></em>' reference list.
@@ -5980,7 +7753,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__LABELS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
+	int COMPONENT__LABELS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Semaphores</b></em>' reference list.
@@ -5989,7 +7762,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__SEMAPHORES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 5;
+	int COMPONENT__SEMAPHORES = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Os Events</b></em>' reference list.
@@ -5998,7 +7771,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT__OS_EVENTS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 6;
+	int COMPONENT__OS_EVENTS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 8;
 
 	/**
 	 * The number of structural features of the '<em>Component</em>' class.
@@ -6007,7 +7780,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 7;
+	int COMPONENT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 9;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -6019,13 +7801,49 @@
 	int COMPONENT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int COMPONENT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -6053,7 +7871,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComposite()
 	 * @generated
 	 */
-	int COMPOSITE = 85;
+	int COMPOSITE = 94;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6074,6 +7892,15 @@
 	int COMPOSITE__NAME = COMPONENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE__QUALIFIED_NAME = COMPONENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6092,6 +7919,24 @@
 	int COMPOSITE__TAGS = COMPONENT__TAGS;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE__NAMESPACE = COMPONENT__NAMESPACE;
+
+	/**
+	 * The feature id for the '<em><b>Structure</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE__STRUCTURE = COMPONENT__STRUCTURE;
+
+	/**
 	 * The feature id for the '<em><b>Ports</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6101,13 +7946,13 @@
 	int COMPOSITE__PORTS = COMPONENT__PORTS;
 
 	/**
-	 * The feature id for the '<em><b>Tasks</b></em>' reference list.
+	 * The feature id for the '<em><b>Processes</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPOSITE__TASKS = COMPONENT__TASKS;
+	int COMPOSITE__PROCESSES = COMPONENT__PROCESSES;
 
 	/**
 	 * The feature id for the '<em><b>Runnables</b></em>' reference list.
@@ -6191,6 +8036,15 @@
 	int COMPOSITE_FEATURE_COUNT = COMPONENT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE___GET_NAMED_CONTAINER = COMPONENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6200,13 +8054,49 @@
 	int COMPOSITE___GET_NAME_PREFIX = COMPONENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPOSITE___ENCODE__STRING = COMPONENT___ENCODE__STRING;
+	int COMPOSITE___GET_QUALIFIED_NAME_SEGMENTS = COMPONENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE___GET_DEFAULT_NAME_SEPARATOR = COMPONENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE___GET_NAMESPACE = COMPONENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE___GET_NAME_PREFIX_SEGMENTS = COMPONENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPOSITE___GET_ENCODED_QUALIFIED_NAME = COMPONENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -6234,7 +8124,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSystem()
 	 * @generated
 	 */
-	int SYSTEM = 86;
+	int SYSTEM = 95;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6255,6 +8145,15 @@
 	int SYSTEM__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6318,6 +8217,15 @@
 	int SYSTEM_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6327,13 +8235,49 @@
 	int SYSTEM___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SYSTEM___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int SYSTEM___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYSTEM___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -6361,7 +8305,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentInstance()
 	 * @generated
 	 */
-	int COMPONENT_INSTANCE = 87;
+	int COMPONENT_INSTANCE = 96;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6382,6 +8326,15 @@
 	int COMPONENT_INSTANCE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6400,13 +8353,22 @@
 	int COMPONENT_INSTANCE__TAGS = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Containing System</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE__CONTAINING_SYSTEM = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Type</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_INSTANCE__TYPE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+	int COMPONENT_INSTANCE__TYPE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Component Instance</em>' class.
@@ -6415,7 +8377,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_INSTANCE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+	int COMPONENT_INSTANCE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -6427,13 +8398,40 @@
 	int COMPONENT_INSTANCE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_INSTANCE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int COMPONENT_INSTANCE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -6445,13 +8443,22 @@
 	int COMPONENT_INSTANCE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
 	 * The number of operations of the '<em>Component Instance</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_INSTANCE_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int COMPONENT_INSTANCE_OPERATION_COUNT = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl <em>Connector</em>}' class.
@@ -6461,7 +8468,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConnector()
 	 * @generated
 	 */
-	int CONNECTOR = 88;
+	int CONNECTOR = 97;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6482,13 +8489,31 @@
 	int CONNECTOR__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Tags</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR__TAGS = BASE_OBJECT_FEATURE_COUNT + 1;
+	int CONNECTOR__TAGS = BASE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The feature id for the '<em><b>Containing System</b></em>' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR__CONTAINING_SYSTEM = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Source Port</b></em>' containment reference.
@@ -6497,7 +8522,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR__SOURCE_PORT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int CONNECTOR__SOURCE_PORT = BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Target Port</b></em>' containment reference.
@@ -6506,7 +8531,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR__TARGET_PORT = BASE_OBJECT_FEATURE_COUNT + 3;
+	int CONNECTOR__TARGET_PORT = BASE_OBJECT_FEATURE_COUNT + 5;
+
+	/**
+	 * The feature id for the '<em><b>Implemented Interfaces</b></em>' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR__IMPLEMENTED_INTERFACES = BASE_OBJECT_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of structural features of the '<em>Connector</em>' class.
@@ -6515,7 +8549,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 4;
+	int CONNECTOR_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTOR___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Connector</em>' class.
@@ -6524,7 +8612,53 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTOR_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int CONNECTOR_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
+
+	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl <em>Interface Channel</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterfaceChannel()
+	 * @generated
+	 */
+	int INTERFACE_CHANNEL = 98;
+
+	/**
+	 * The feature id for the '<em><b>Key</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_CHANNEL__KEY = 0;
+
+	/**
+	 * The feature id for the '<em><b>Value</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_CHANNEL__VALUE = 1;
+
+	/**
+	 * The number of structural features of the '<em>Interface Channel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_CHANNEL_FEATURE_COUNT = 2;
+
+	/**
+	 * The number of operations of the '<em>Interface Channel</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERFACE_CHANNEL_OPERATION_COUNT = 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.QualifiedPortImpl <em>Qualified Port</em>}' class.
@@ -6534,7 +8668,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getQualifiedPort()
 	 * @generated
 	 */
-	int QUALIFIED_PORT = 89;
+	int QUALIFIED_PORT = 99;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6582,124 +8716,6 @@
 	int QUALIFIED_PORT_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.InterfacePortImpl <em>Interface Port</em>}' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see org.eclipse.app4mc.amalthea.model.impl.InterfacePortImpl
-	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterfacePort()
-	 * @generated
-	 */
-	int INTERFACE_PORT = 90;
-
-	/**
-	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__CUSTOM_PROPERTIES = PORT__CUSTOM_PROPERTIES;
-
-	/**
-	 * The feature id for the '<em><b>Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__NAME = PORT__NAME;
-
-	/**
-	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__UNIQUE_NAME = PORT__UNIQUE_NAME;
-
-	/**
-	 * The feature id for the '<em><b>Tags</b></em>' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__TAGS = PORT__TAGS;
-
-	/**
-	 * The feature id for the '<em><b>Containing Component</b></em>' container reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__CONTAINING_COMPONENT = PORT__CONTAINING_COMPONENT;
-
-	/**
-	 * The feature id for the '<em><b>Interface Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__INTERFACE_NAME = PORT_FEATURE_COUNT + 0;
-
-	/**
-	 * The feature id for the '<em><b>Kind</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT__KIND = PORT_FEATURE_COUNT + 1;
-
-	/**
-	 * The number of structural features of the '<em>Interface Port</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT_FEATURE_COUNT = PORT_FEATURE_COUNT + 2;
-
-	/**
-	 * The operation id for the '<em>Encode</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT___ENCODE__STRING = PORT___ENCODE__STRING;
-
-	/**
-	 * The operation id for the '<em>Validate Invariants</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = PORT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
-
-	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT___GET_NAME_PREFIX = PORT___GET_NAME_PREFIX;
-
-	/**
-	 * The number of operations of the '<em>Interface Port</em>' class.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int INTERFACE_PORT_OPERATION_COUNT = PORT_OPERATION_COUNT + 0;
-
-	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ConfigModelImpl <em>Config Model</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6707,7 +8723,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConfigModel()
 	 * @generated
 	 */
-	int CONFIG_MODEL = 91;
+	int CONFIG_MODEL = 100;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6753,7 +8769,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventConfig()
 	 * @generated
 	 */
-	int EVENT_CONFIG = 92;
+	int EVENT_CONFIG = 101;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6774,13 +8790,22 @@
 	int EVENT_CONFIG__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Event</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CONFIG__EVENT = BASE_OBJECT_FEATURE_COUNT + 1;
+	int EVENT_CONFIG__EVENT = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Event Config</em>' class.
@@ -6789,7 +8814,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CONFIG_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int EVENT_CONFIG_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CONFIG___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Event Config</em>' class.
@@ -6798,7 +8877,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CONFIG_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int EVENT_CONFIG_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ConstraintsModelImpl <em>Constraints Model</em>}' class.
@@ -6808,7 +8887,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConstraintsModel()
 	 * @generated
 	 */
-	int CONSTRAINTS_MODEL = 93;
+	int CONSTRAINTS_MODEL = 102;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6926,7 +9005,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableSequencingConstraint()
 	 * @generated
 	 */
-	int RUNNABLE_SEQUENCING_CONSTRAINT = 94;
+	int RUNNABLE_SEQUENCING_CONSTRAINT = 103;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -6947,6 +9026,15 @@
 	int RUNNABLE_SEQUENCING_CONSTRAINT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -6992,6 +9080,15 @@
 	int RUNNABLE_SEQUENCING_CONSTRAINT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7001,13 +9098,49 @@
 	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_SEQUENCING_CONSTRAINT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEQUENCING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7035,7 +9168,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAffinityConstraint()
 	 * @generated
 	 */
-	int AFFINITY_CONSTRAINT = 95;
+	int AFFINITY_CONSTRAINT = 104;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7056,6 +9189,15 @@
 	int AFFINITY_CONSTRAINT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7074,6 +9216,15 @@
 	int AFFINITY_CONSTRAINT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7083,13 +9234,49 @@
 	int AFFINITY_CONSTRAINT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int AFFINITY_CONSTRAINT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int AFFINITY_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int AFFINITY_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7117,7 +9304,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSeparationConstraint()
 	 * @generated
 	 */
-	int SEPARATION_CONSTRAINT = 96;
+	int SEPARATION_CONSTRAINT = 105;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7138,6 +9325,15 @@
 	int SEPARATION_CONSTRAINT__NAME = AFFINITY_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT__QUALIFIED_NAME = AFFINITY_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7156,6 +9352,15 @@
 	int SEPARATION_CONSTRAINT_FEATURE_COUNT = AFFINITY_CONSTRAINT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER = AFFINITY_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7165,13 +9370,49 @@
 	int SEPARATION_CONSTRAINT___GET_NAME_PREFIX = AFFINITY_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEPARATION_CONSTRAINT___ENCODE__STRING = AFFINITY_CONSTRAINT___ENCODE__STRING;
+	int SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = AFFINITY_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = AFFINITY_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT___GET_NAMESPACE = AFFINITY_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = AFFINITY_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = AFFINITY_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7199,7 +9440,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPairingConstraint()
 	 * @generated
 	 */
-	int PAIRING_CONSTRAINT = 97;
+	int PAIRING_CONSTRAINT = 106;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7220,6 +9461,15 @@
 	int PAIRING_CONSTRAINT__NAME = AFFINITY_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT__QUALIFIED_NAME = AFFINITY_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7238,6 +9488,15 @@
 	int PAIRING_CONSTRAINT_FEATURE_COUNT = AFFINITY_CONSTRAINT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT___GET_NAMED_CONTAINER = AFFINITY_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7247,13 +9506,49 @@
 	int PAIRING_CONSTRAINT___GET_NAME_PREFIX = AFFINITY_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PAIRING_CONSTRAINT___ENCODE__STRING = AFFINITY_CONSTRAINT___ENCODE__STRING;
+	int PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = AFFINITY_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = AFFINITY_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT___GET_NAMESPACE = AFFINITY_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = AFFINITY_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = AFFINITY_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7281,7 +9576,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessConstraint()
 	 * @generated
 	 */
-	int PROCESS_CONSTRAINT = 98;
+	int PROCESS_CONSTRAINT = 107;
 
 	/**
 	 * The feature id for the '<em><b>Target</b></em>' containment reference.
@@ -7318,7 +9613,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableConstraint()
 	 * @generated
 	 */
-	int RUNNABLE_CONSTRAINT = 99;
+	int RUNNABLE_CONSTRAINT = 108;
 
 	/**
 	 * The feature id for the '<em><b>Target</b></em>' containment reference.
@@ -7355,7 +9650,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataConstraint()
 	 * @generated
 	 */
-	int DATA_CONSTRAINT = 100;
+	int DATA_CONSTRAINT = 109;
 
 	/**
 	 * The feature id for the '<em><b>Target</b></em>' containment reference.
@@ -7392,7 +9687,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableSeparationConstraint()
 	 * @generated
 	 */
-	int RUNNABLE_SEPARATION_CONSTRAINT = 101;
+	int RUNNABLE_SEPARATION_CONSTRAINT = 110;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7413,6 +9708,15 @@
 	int RUNNABLE_SEPARATION_CONSTRAINT__NAME = SEPARATION_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT__QUALIFIED_NAME = SEPARATION_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7449,6 +9753,15 @@
 	int RUNNABLE_SEPARATION_CONSTRAINT_FEATURE_COUNT = SEPARATION_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER = SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7458,13 +9771,49 @@
 	int RUNNABLE_SEPARATION_CONSTRAINT___GET_NAME_PREFIX = SEPARATION_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_SEPARATION_CONSTRAINT___ENCODE__STRING = SEPARATION_CONSTRAINT___ENCODE__STRING;
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_NAMESPACE = SEPARATION_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7492,7 +9841,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessSeparationConstraint()
 	 * @generated
 	 */
-	int PROCESS_SEPARATION_CONSTRAINT = 102;
+	int PROCESS_SEPARATION_CONSTRAINT = 111;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7513,6 +9862,15 @@
 	int PROCESS_SEPARATION_CONSTRAINT__NAME = SEPARATION_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT__QUALIFIED_NAME = SEPARATION_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7549,6 +9907,15 @@
 	int PROCESS_SEPARATION_CONSTRAINT_FEATURE_COUNT = SEPARATION_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER = SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7558,13 +9925,49 @@
 	int PROCESS_SEPARATION_CONSTRAINT___GET_NAME_PREFIX = SEPARATION_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_SEPARATION_CONSTRAINT___ENCODE__STRING = SEPARATION_CONSTRAINT___ENCODE__STRING;
+	int PROCESS_SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT___GET_NAMESPACE = SEPARATION_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7592,7 +9995,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataSeparationConstraint()
 	 * @generated
 	 */
-	int DATA_SEPARATION_CONSTRAINT = 103;
+	int DATA_SEPARATION_CONSTRAINT = 112;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7613,6 +10016,15 @@
 	int DATA_SEPARATION_CONSTRAINT__NAME = SEPARATION_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT__QUALIFIED_NAME = SEPARATION_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7649,6 +10061,15 @@
 	int DATA_SEPARATION_CONSTRAINT_FEATURE_COUNT = SEPARATION_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER = SEPARATION_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7658,13 +10079,49 @@
 	int DATA_SEPARATION_CONSTRAINT___GET_NAME_PREFIX = SEPARATION_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_SEPARATION_CONSTRAINT___ENCODE__STRING = SEPARATION_CONSTRAINT___ENCODE__STRING;
+	int DATA_SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = SEPARATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = SEPARATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT___GET_NAMESPACE = SEPARATION_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = SEPARATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = SEPARATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7692,7 +10149,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnablePairingConstraint()
 	 * @generated
 	 */
-	int RUNNABLE_PAIRING_CONSTRAINT = 104;
+	int RUNNABLE_PAIRING_CONSTRAINT = 113;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7713,6 +10170,15 @@
 	int RUNNABLE_PAIRING_CONSTRAINT__NAME = PAIRING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT__QUALIFIED_NAME = PAIRING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7749,6 +10215,15 @@
 	int RUNNABLE_PAIRING_CONSTRAINT_FEATURE_COUNT = PAIRING_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_NAMED_CONTAINER = PAIRING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7758,13 +10233,49 @@
 	int RUNNABLE_PAIRING_CONSTRAINT___GET_NAME_PREFIX = PAIRING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PAIRING_CONSTRAINT___ENCODE__STRING = PAIRING_CONSTRAINT___ENCODE__STRING;
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_NAMESPACE = PAIRING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7792,7 +10303,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessPairingConstraint()
 	 * @generated
 	 */
-	int PROCESS_PAIRING_CONSTRAINT = 105;
+	int PROCESS_PAIRING_CONSTRAINT = 114;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7813,6 +10324,15 @@
 	int PROCESS_PAIRING_CONSTRAINT__NAME = PAIRING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT__QUALIFIED_NAME = PAIRING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7849,6 +10369,15 @@
 	int PROCESS_PAIRING_CONSTRAINT_FEATURE_COUNT = PAIRING_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT___GET_NAMED_CONTAINER = PAIRING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7858,13 +10387,49 @@
 	int PROCESS_PAIRING_CONSTRAINT___GET_NAME_PREFIX = PAIRING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_PAIRING_CONSTRAINT___ENCODE__STRING = PAIRING_CONSTRAINT___ENCODE__STRING;
+	int PROCESS_PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT___GET_NAMESPACE = PAIRING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7892,7 +10457,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataPairingConstraint()
 	 * @generated
 	 */
-	int DATA_PAIRING_CONSTRAINT = 106;
+	int DATA_PAIRING_CONSTRAINT = 115;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -7913,6 +10478,15 @@
 	int DATA_PAIRING_CONSTRAINT__NAME = PAIRING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT__QUALIFIED_NAME = PAIRING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7949,6 +10523,15 @@
 	int DATA_PAIRING_CONSTRAINT_FEATURE_COUNT = PAIRING_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT___GET_NAMED_CONTAINER = PAIRING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -7958,13 +10541,49 @@
 	int DATA_PAIRING_CONSTRAINT___GET_NAME_PREFIX = PAIRING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_PAIRING_CONSTRAINT___ENCODE__STRING = PAIRING_CONSTRAINT___ENCODE__STRING;
+	int DATA_PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = PAIRING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = PAIRING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT___GET_NAMESPACE = PAIRING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = PAIRING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = PAIRING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -7992,7 +10611,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableConstraintTarget()
 	 * @generated
 	 */
-	int RUNNABLE_CONSTRAINT_TARGET = 107;
+	int RUNNABLE_CONSTRAINT_TARGET = 116;
 
 	/**
 	 * The number of structural features of the '<em>Runnable Constraint Target</em>' class.
@@ -8020,7 +10639,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessConstraintTarget()
 	 * @generated
 	 */
-	int PROCESS_CONSTRAINT_TARGET = 108;
+	int PROCESS_CONSTRAINT_TARGET = 117;
 
 	/**
 	 * The number of structural features of the '<em>Process Constraint Target</em>' class.
@@ -8048,7 +10667,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataConstraintTarget()
 	 * @generated
 	 */
-	int DATA_CONSTRAINT_TARGET = 109;
+	int DATA_CONSTRAINT_TARGET = 118;
 
 	/**
 	 * The number of structural features of the '<em>Data Constraint Target</em>' class.
@@ -8076,7 +10695,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTargetMemory()
 	 * @generated
 	 */
-	int TARGET_MEMORY = 110;
+	int TARGET_MEMORY = 119;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8122,7 +10741,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTargetCore()
 	 * @generated
 	 */
-	int TARGET_CORE = 111;
+	int TARGET_CORE = 120;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8168,7 +10787,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTargetScheduler()
 	 * @generated
 	 */
-	int TARGET_SCHEDULER = 112;
+	int TARGET_SCHEDULER = 121;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8214,7 +10833,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelGroup()
 	 * @generated
 	 */
-	int LABEL_GROUP = 113;
+	int LABEL_GROUP = 122;
 
 	/**
 	 * The number of structural features of the '<em>Label Group</em>' class.
@@ -8242,7 +10861,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableGroup()
 	 * @generated
 	 */
-	int RUNNABLE_GROUP = 114;
+	int RUNNABLE_GROUP = 123;
 
 	/**
 	 * The number of structural features of the '<em>Runnable Group</em>' class.
@@ -8270,7 +10889,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessGroup()
 	 * @generated
 	 */
-	int PROCESS_GROUP = 115;
+	int PROCESS_GROUP = 124;
 
 	/**
 	 * The number of structural features of the '<em>Process Group</em>' class.
@@ -8298,7 +10917,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelEntityGroup()
 	 * @generated
 	 */
-	int LABEL_ENTITY_GROUP = 116;
+	int LABEL_ENTITY_GROUP = 125;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8344,7 +10963,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableEntityGroup()
 	 * @generated
 	 */
-	int RUNNABLE_ENTITY_GROUP = 117;
+	int RUNNABLE_ENTITY_GROUP = 126;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8390,7 +11009,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessEntityGroup()
 	 * @generated
 	 */
-	int PROCESS_ENTITY_GROUP = 118;
+	int PROCESS_ENTITY_GROUP = 127;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8436,7 +11055,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTagGroup()
 	 * @generated
 	 */
-	int TAG_GROUP = 119;
+	int TAG_GROUP = 128;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8482,7 +11101,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAbstractEventChain()
 	 * @generated
 	 */
-	int ABSTRACT_EVENT_CHAIN = 120;
+	int ABSTRACT_EVENT_CHAIN = 129;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8503,13 +11122,22 @@
 	int ABSTRACT_EVENT_CHAIN__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Stimulus</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN__STIMULUS = BASE_OBJECT_FEATURE_COUNT + 1;
+	int ABSTRACT_EVENT_CHAIN__STIMULUS = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Response</b></em>' reference.
@@ -8518,7 +11146,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN__RESPONSE = BASE_OBJECT_FEATURE_COUNT + 2;
+	int ABSTRACT_EVENT_CHAIN__RESPONSE = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
@@ -8527,7 +11155,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN__ITEMS = BASE_OBJECT_FEATURE_COUNT + 3;
+	int ABSTRACT_EVENT_CHAIN__ITEMS = BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Item Type</b></em>' attribute.
@@ -8536,7 +11164,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN__ITEM_TYPE = BASE_OBJECT_FEATURE_COUNT + 4;
+	int ABSTRACT_EVENT_CHAIN__ITEM_TYPE = BASE_OBJECT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Min Items Completed</b></em>' attribute.
@@ -8545,7 +11173,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN__MIN_ITEMS_COMPLETED = BASE_OBJECT_FEATURE_COUNT + 5;
+	int ABSTRACT_EVENT_CHAIN__MIN_ITEMS_COMPLETED = BASE_OBJECT_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of structural features of the '<em>Abstract Event Chain</em>' class.
@@ -8554,7 +11182,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 6;
+	int ABSTRACT_EVENT_CHAIN_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 7;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Abstract Event Chain</em>' class.
@@ -8563,7 +11245,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_EVENT_CHAIN_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int ABSTRACT_EVENT_CHAIN_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.EventChainImpl <em>Event Chain</em>}' class.
@@ -8573,7 +11255,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChain()
 	 * @generated
 	 */
-	int EVENT_CHAIN = 121;
+	int EVENT_CHAIN = 130;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8594,6 +11276,15 @@
 	int EVENT_CHAIN__NAME = ABSTRACT_EVENT_CHAIN__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN__QUALIFIED_NAME = ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Stimulus</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8657,22 +11348,67 @@
 	int EVENT_CHAIN_FEATURE_COUNT = ABSTRACT_EVENT_CHAIN_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN___GET_NAMED_CONTAINER = ABSTRACT_EVENT_CHAIN___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN___GET_NAME_PREFIX = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 0;
+	int EVENT_CHAIN___GET_NAME_PREFIX = ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN___ENCODE__STRING = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 1;
+	int EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN___GET_NAMESPACE = ABSTRACT_EVENT_CHAIN___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -8681,7 +11417,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 2;
+	int EVENT_CHAIN___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Event Chain</em>' class.
@@ -8690,7 +11426,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN_OPERATION_COUNT = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 3;
+	int EVENT_CHAIN_OPERATION_COUNT = ABSTRACT_EVENT_CHAIN_OPERATION_COUNT + 2;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SubEventChainImpl <em>Sub Event Chain</em>}' class.
@@ -8700,7 +11436,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSubEventChain()
 	 * @generated
 	 */
-	int SUB_EVENT_CHAIN = 122;
+	int SUB_EVENT_CHAIN = 131;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8721,6 +11457,15 @@
 	int SUB_EVENT_CHAIN__NAME = ABSTRACT_EVENT_CHAIN__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN__QUALIFIED_NAME = ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Stimulus</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8775,6 +11520,60 @@
 	int SUB_EVENT_CHAIN_FEATURE_COUNT = ABSTRACT_EVENT_CHAIN_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_NAMED_CONTAINER = ABSTRACT_EVENT_CHAIN___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_NAME_PREFIX = ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_NAMESPACE = ABSTRACT_EVENT_CHAIN___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SUB_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Sub Event Chain</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8791,7 +11590,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainItem()
 	 * @generated
 	 */
-	int EVENT_CHAIN_ITEM = 123;
+	int EVENT_CHAIN_ITEM = 132;
 
 	/**
 	 * The number of structural features of the '<em>Event Chain Item</em>' class.
@@ -8828,7 +11627,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainReference()
 	 * @generated
 	 */
-	int EVENT_CHAIN_REFERENCE = 124;
+	int EVENT_CHAIN_REFERENCE = 133;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8883,7 +11682,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainContainer()
 	 * @generated
 	 */
-	int EVENT_CHAIN_CONTAINER = 125;
+	int EVENT_CHAIN_CONTAINER = 134;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8938,7 +11737,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimingConstraint()
 	 * @generated
 	 */
-	int TIMING_CONSTRAINT = 126;
+	int TIMING_CONSTRAINT = 135;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -8959,6 +11758,15 @@
 	int TIMING_CONSTRAINT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8977,6 +11785,15 @@
 	int TIMING_CONSTRAINT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -8986,13 +11803,49 @@
 	int TIMING_CONSTRAINT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TIMING_CONSTRAINT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int TIMING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TIMING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9020,7 +11873,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPhysicalSectionConstraint()
 	 * @generated
 	 */
-	int PHYSICAL_SECTION_CONSTRAINT = 127;
+	int PHYSICAL_SECTION_CONSTRAINT = 136;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9041,6 +11894,15 @@
 	int PHYSICAL_SECTION_CONSTRAINT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9077,6 +11939,15 @@
 	int PHYSICAL_SECTION_CONSTRAINT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9086,13 +11957,49 @@
 	int PHYSICAL_SECTION_CONSTRAINT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PHYSICAL_SECTION_CONSTRAINT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int PHYSICAL_SECTION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9120,7 +12027,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSynchronizationConstraint()
 	 * @generated
 	 */
-	int SYNCHRONIZATION_CONSTRAINT = 128;
+	int SYNCHRONIZATION_CONSTRAINT = 137;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9141,6 +12048,15 @@
 	int SYNCHRONIZATION_CONSTRAINT__NAME = TIMING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT__QUALIFIED_NAME = TIMING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9177,6 +12093,15 @@
 	int SYNCHRONIZATION_CONSTRAINT_FEATURE_COUNT = TIMING_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT___GET_NAMED_CONTAINER = TIMING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9186,13 +12111,49 @@
 	int SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX = TIMING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SYNCHRONIZATION_CONSTRAINT___ENCODE__STRING = TIMING_CONSTRAINT___ENCODE__STRING;
+	int SYNCHRONIZATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = TIMING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = TIMING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT___GET_NAMESPACE = TIMING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = TIMING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONIZATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = TIMING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9220,7 +12181,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventSynchronizationConstraint()
 	 * @generated
 	 */
-	int EVENT_SYNCHRONIZATION_CONSTRAINT = 129;
+	int EVENT_SYNCHRONIZATION_CONSTRAINT = 138;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9241,6 +12202,15 @@
 	int EVENT_SYNCHRONIZATION_CONSTRAINT__NAME = SYNCHRONIZATION_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT__QUALIFIED_NAME = SYNCHRONIZATION_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9286,6 +12256,15 @@
 	int EVENT_SYNCHRONIZATION_CONSTRAINT_FEATURE_COUNT = SYNCHRONIZATION_CONSTRAINT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_NAMED_CONTAINER = SYNCHRONIZATION_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9295,13 +12274,49 @@
 	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX = SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_SYNCHRONIZATION_CONSTRAINT___ENCODE__STRING = SYNCHRONIZATION_CONSTRAINT___ENCODE__STRING;
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = SYNCHRONIZATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = SYNCHRONIZATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_NAMESPACE = SYNCHRONIZATION_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SYNCHRONIZATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = SYNCHRONIZATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9329,7 +12344,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainSynchronizationConstraint()
 	 * @generated
 	 */
-	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT = 130;
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT = 139;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9350,6 +12365,15 @@
 	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT__NAME = SYNCHRONIZATION_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT__QUALIFIED_NAME = SYNCHRONIZATION_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9404,6 +12428,15 @@
 	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT_FEATURE_COUNT = SYNCHRONIZATION_CONSTRAINT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_NAMED_CONTAINER = SYNCHRONIZATION_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9413,13 +12446,49 @@
 	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX = SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___ENCODE__STRING = SYNCHRONIZATION_CONSTRAINT___ENCODE__STRING;
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = SYNCHRONIZATION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = SYNCHRONIZATION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_NAMESPACE = SYNCHRONIZATION_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = SYNCHRONIZATION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_SYNCHRONIZATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = SYNCHRONIZATION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9447,7 +12516,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDelayConstraint()
 	 * @generated
 	 */
-	int DELAY_CONSTRAINT = 131;
+	int DELAY_CONSTRAINT = 140;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9468,6 +12537,15 @@
 	int DELAY_CONSTRAINT__NAME = TIMING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT__QUALIFIED_NAME = TIMING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9531,6 +12609,15 @@
 	int DELAY_CONSTRAINT_FEATURE_COUNT = TIMING_CONSTRAINT_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT___GET_NAMED_CONTAINER = TIMING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9540,13 +12627,49 @@
 	int DELAY_CONSTRAINT___GET_NAME_PREFIX = TIMING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DELAY_CONSTRAINT___ENCODE__STRING = TIMING_CONSTRAINT___ENCODE__STRING;
+	int DELAY_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = TIMING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = TIMING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT___GET_NAMESPACE = TIMING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = TIMING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DELAY_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = TIMING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9574,7 +12697,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainLatencyConstraint()
 	 * @generated
 	 */
-	int EVENT_CHAIN_LATENCY_CONSTRAINT = 132;
+	int EVENT_CHAIN_LATENCY_CONSTRAINT = 141;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9595,6 +12718,15 @@
 	int EVENT_CHAIN_LATENCY_CONSTRAINT__NAME = TIMING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT__QUALIFIED_NAME = TIMING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9649,6 +12781,15 @@
 	int EVENT_CHAIN_LATENCY_CONSTRAINT_FEATURE_COUNT = TIMING_CONSTRAINT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_NAMED_CONTAINER = TIMING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9658,13 +12799,49 @@
 	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_NAME_PREFIX = TIMING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_CHAIN_LATENCY_CONSTRAINT___ENCODE__STRING = TIMING_CONSTRAINT___ENCODE__STRING;
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = TIMING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = TIMING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_NAMESPACE = TIMING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = TIMING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_CHAIN_LATENCY_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = TIMING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9692,7 +12869,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRepetitionConstraint()
 	 * @generated
 	 */
-	int REPETITION_CONSTRAINT = 133;
+	int REPETITION_CONSTRAINT = 142;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9713,6 +12890,15 @@
 	int REPETITION_CONSTRAINT__NAME = TIMING_CONSTRAINT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT__QUALIFIED_NAME = TIMING_CONSTRAINT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9785,6 +12971,15 @@
 	int REPETITION_CONSTRAINT_FEATURE_COUNT = TIMING_CONSTRAINT_FEATURE_COUNT + 6;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT___GET_NAMED_CONTAINER = TIMING_CONSTRAINT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9794,13 +12989,49 @@
 	int REPETITION_CONSTRAINT___GET_NAME_PREFIX = TIMING_CONSTRAINT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REPETITION_CONSTRAINT___ENCODE__STRING = TIMING_CONSTRAINT___ENCODE__STRING;
+	int REPETITION_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = TIMING_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = TIMING_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT___GET_NAMESPACE = TIMING_CONSTRAINT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = TIMING_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REPETITION_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = TIMING_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9828,7 +13059,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataAgeConstraint()
 	 * @generated
 	 */
-	int DATA_AGE_CONSTRAINT = 134;
+	int DATA_AGE_CONSTRAINT = 143;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -9849,6 +13080,15 @@
 	int DATA_AGE_CONSTRAINT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9894,6 +13134,15 @@
 	int DATA_AGE_CONSTRAINT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -9903,13 +13152,49 @@
 	int DATA_AGE_CONSTRAINT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_AGE_CONSTRAINT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int DATA_AGE_CONSTRAINT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_AGE_CONSTRAINT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -9937,7 +13222,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataAge()
 	 * @generated
 	 */
-	int DATA_AGE = 135;
+	int DATA_AGE = 144;
 
 	/**
 	 * The number of structural features of the '<em>Data Age</em>' class.
@@ -9965,7 +13250,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataAgeCycle()
 	 * @generated
 	 */
-	int DATA_AGE_CYCLE = 136;
+	int DATA_AGE_CYCLE = 145;
 
 	/**
 	 * The feature id for the '<em><b>Minimum Cycle</b></em>' attribute.
@@ -10011,7 +13296,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataAgeTime()
 	 * @generated
 	 */
-	int DATA_AGE_TIME = 137;
+	int DATA_AGE_TIME = 146;
 
 	/**
 	 * The feature id for the '<em><b>Minimum Time</b></em>' containment reference.
@@ -10057,7 +13342,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRequirement()
 	 * @generated
 	 */
-	int REQUIREMENT = 138;
+	int REQUIREMENT = 147;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10078,13 +13363,22 @@
 	int REQUIREMENT__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Severity</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIREMENT__SEVERITY = BASE_OBJECT_FEATURE_COUNT + 1;
+	int REQUIREMENT__SEVERITY = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Limit</b></em>' containment reference.
@@ -10093,7 +13387,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIREMENT__LIMIT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int REQUIREMENT__LIMIT = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Requirement</em>' class.
@@ -10102,7 +13396,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIREMENT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+	int REQUIREMENT_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int REQUIREMENT___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Requirement</em>' class.
@@ -10111,7 +13459,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int REQUIREMENT_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int REQUIREMENT_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ProcessRequirementImpl <em>Process Requirement</em>}' class.
@@ -10121,7 +13469,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessRequirement()
 	 * @generated
 	 */
-	int PROCESS_REQUIREMENT = 139;
+	int PROCESS_REQUIREMENT = 148;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10142,6 +13490,15 @@
 	int PROCESS_REQUIREMENT__NAME = REQUIREMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT__QUALIFIED_NAME = REQUIREMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Severity</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10178,6 +13535,60 @@
 	int PROCESS_REQUIREMENT_FEATURE_COUNT = REQUIREMENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_NAMED_CONTAINER = REQUIREMENT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_NAME_PREFIX = REQUIREMENT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS = REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR = REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_NAMESPACE = REQUIREMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_REQUIREMENT___GET_NAME_PREFIX_SEGMENTS = REQUIREMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Process Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10194,7 +13605,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableRequirement()
 	 * @generated
 	 */
-	int RUNNABLE_REQUIREMENT = 140;
+	int RUNNABLE_REQUIREMENT = 149;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10215,6 +13626,15 @@
 	int RUNNABLE_REQUIREMENT__NAME = REQUIREMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT__QUALIFIED_NAME = REQUIREMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Severity</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10251,6 +13671,60 @@
 	int RUNNABLE_REQUIREMENT_FEATURE_COUNT = REQUIREMENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_NAMED_CONTAINER = REQUIREMENT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_NAME_PREFIX = REQUIREMENT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS = REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR = REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_NAMESPACE = REQUIREMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_REQUIREMENT___GET_NAME_PREFIX_SEGMENTS = REQUIREMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Runnable Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10267,7 +13741,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getArchitectureRequirement()
 	 * @generated
 	 */
-	int ARCHITECTURE_REQUIREMENT = 141;
+	int ARCHITECTURE_REQUIREMENT = 150;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10288,6 +13762,15 @@
 	int ARCHITECTURE_REQUIREMENT__NAME = REQUIREMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT__QUALIFIED_NAME = REQUIREMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Severity</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10324,6 +13807,60 @@
 	int ARCHITECTURE_REQUIREMENT_FEATURE_COUNT = REQUIREMENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_NAMED_CONTAINER = REQUIREMENT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_NAME_PREFIX = REQUIREMENT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS = REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR = REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_NAMESPACE = REQUIREMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARCHITECTURE_REQUIREMENT___GET_NAME_PREFIX_SEGMENTS = REQUIREMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Architecture Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10340,7 +13877,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessChainRequirement()
 	 * @generated
 	 */
-	int PROCESS_CHAIN_REQUIREMENT = 142;
+	int PROCESS_CHAIN_REQUIREMENT = 151;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10361,6 +13898,15 @@
 	int PROCESS_CHAIN_REQUIREMENT__NAME = REQUIREMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT__QUALIFIED_NAME = REQUIREMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Severity</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10397,6 +13943,60 @@
 	int PROCESS_CHAIN_REQUIREMENT_FEATURE_COUNT = REQUIREMENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_NAMED_CONTAINER = REQUIREMENT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_NAME_PREFIX = REQUIREMENT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS = REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR = REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_NAMESPACE = REQUIREMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_REQUIREMENT___GET_NAME_PREFIX_SEGMENTS = REQUIREMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Process Chain Requirement</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10413,7 +14013,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRequirementLimit()
 	 * @generated
 	 */
-	int REQUIREMENT_LIMIT = 143;
+	int REQUIREMENT_LIMIT = 152;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10450,7 +14050,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCPUPercentageRequirementLimit()
 	 * @generated
 	 */
-	int CPU_PERCENTAGE_REQUIREMENT_LIMIT = 144;
+	int CPU_PERCENTAGE_REQUIREMENT_LIMIT = 153;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10514,7 +14114,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFrequencyRequirementLimit()
 	 * @generated
 	 */
-	int FREQUENCY_REQUIREMENT_LIMIT = 145;
+	int FREQUENCY_REQUIREMENT_LIMIT = 154;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10569,7 +14169,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPercentageRequirementLimit()
 	 * @generated
 	 */
-	int PERCENTAGE_REQUIREMENT_LIMIT = 146;
+	int PERCENTAGE_REQUIREMENT_LIMIT = 155;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10624,7 +14224,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCountRequirementLimit()
 	 * @generated
 	 */
-	int COUNT_REQUIREMENT_LIMIT = 147;
+	int COUNT_REQUIREMENT_LIMIT = 156;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10679,7 +14279,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeRequirementLimit()
 	 * @generated
 	 */
-	int TIME_REQUIREMENT_LIMIT = 148;
+	int TIME_REQUIREMENT_LIMIT = 157;
 
 	/**
 	 * The feature id for the '<em><b>Limit Type</b></em>' attribute.
@@ -10734,7 +14334,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataCoherencyGroup()
 	 * @generated
 	 */
-	int DATA_COHERENCY_GROUP = 149;
+	int DATA_COHERENCY_GROUP = 158;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10755,6 +14355,15 @@
 	int DATA_COHERENCY_GROUP__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10800,6 +14409,15 @@
 	int DATA_COHERENCY_GROUP_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10809,13 +14427,49 @@
 	int DATA_COHERENCY_GROUP___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_COHERENCY_GROUP___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int DATA_COHERENCY_GROUP___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_COHERENCY_GROUP___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -10843,7 +14497,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataStabilityGroup()
 	 * @generated
 	 */
-	int DATA_STABILITY_GROUP = 150;
+	int DATA_STABILITY_GROUP = 159;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -10864,6 +14518,15 @@
 	int DATA_STABILITY_GROUP__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10900,6 +14563,15 @@
 	int DATA_STABILITY_GROUP_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -10909,13 +14581,49 @@
 	int DATA_STABILITY_GROUP___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_STABILITY_GROUP___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int DATA_STABILITY_GROUP___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_STABILITY_GROUP___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -10943,7 +14651,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataGroupScope()
 	 * @generated
 	 */
-	int DATA_GROUP_SCOPE = 151;
+	int DATA_GROUP_SCOPE = 160;
 
 	/**
 	 * The number of structural features of the '<em>Data Group Scope</em>' class.
@@ -10971,7 +14679,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessScope()
 	 * @generated
 	 */
-	int PROCESS_SCOPE = 152;
+	int PROCESS_SCOPE = 161;
 
 	/**
 	 * The feature id for the '<em><b>Process</b></em>' reference.
@@ -11008,7 +14716,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableScope()
 	 * @generated
 	 */
-	int RUNNABLE_SCOPE = 153;
+	int RUNNABLE_SCOPE = 162;
 
 	/**
 	 * The feature id for the '<em><b>Runnable</b></em>' reference.
@@ -11045,7 +14753,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentScope()
 	 * @generated
 	 */
-	int COMPONENT_SCOPE = 154;
+	int COMPONENT_SCOPE = 163;
 
 	/**
 	 * The feature id for the '<em><b>Component</b></em>' reference.
@@ -11082,7 +14790,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventModel()
 	 * @generated
 	 */
-	int EVENT_MODEL = 155;
+	int EVENT_MODEL = 164;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11128,7 +14836,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEvent()
 	 * @generated
 	 */
-	int EVENT = 156;
+	int EVENT = 165;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11149,6 +14857,15 @@
 	int EVENT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11185,6 +14902,15 @@
 	int EVENT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11194,13 +14920,49 @@
 	int EVENT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int EVENT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11228,7 +14990,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventSet()
 	 * @generated
 	 */
-	int EVENT_SET = 157;
+	int EVENT_SET = 166;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11249,6 +15011,15 @@
 	int EVENT_SET__NAME = EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET__QUALIFIED_NAME = EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11294,6 +15065,15 @@
 	int EVENT_SET_FEATURE_COUNT = EVENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET___GET_NAMED_CONTAINER = EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11303,13 +15083,49 @@
 	int EVENT_SET___GET_NAME_PREFIX = EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_SET___ENCODE__STRING = EVENT___ENCODE__STRING;
+	int EVENT_SET___GET_QUALIFIED_NAME_SEGMENTS = EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET___GET_DEFAULT_NAME_SEPARATOR = EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET___GET_NAMESPACE = EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET___GET_NAME_PREFIX_SEGMENTS = EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_SET___GET_ENCODED_QUALIFIED_NAME = EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11337,7 +15153,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEntityEvent()
 	 * @generated
 	 */
-	int ENTITY_EVENT = 158;
+	int ENTITY_EVENT = 167;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11358,6 +15174,15 @@
 	int ENTITY_EVENT__NAME = EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT__QUALIFIED_NAME = EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11394,6 +15219,15 @@
 	int ENTITY_EVENT_FEATURE_COUNT = EVENT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT___GET_NAMED_CONTAINER = EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11403,13 +15237,49 @@
 	int ENTITY_EVENT___GET_NAME_PREFIX = EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ENTITY_EVENT___ENCODE__STRING = EVENT___ENCODE__STRING;
+	int ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS = EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR = EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT___GET_NAMESPACE = EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS = EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME = EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11437,7 +15307,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTriggerEvent()
 	 * @generated
 	 */
-	int TRIGGER_EVENT = 159;
+	int TRIGGER_EVENT = 168;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11458,6 +15328,15 @@
 	int TRIGGER_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11494,6 +15373,15 @@
 	int TRIGGER_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11503,13 +15391,49 @@
 	int TRIGGER_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TRIGGER_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int TRIGGER_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TRIGGER_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11537,7 +15461,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomEvent()
 	 * @generated
 	 */
-	int CUSTOM_EVENT = 160;
+	int CUSTOM_EVENT = 169;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11558,6 +15482,15 @@
 	int CUSTOM_EVENT__NAME = TRIGGER_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT__QUALIFIED_NAME = TRIGGER_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11612,6 +15545,15 @@
 	int CUSTOM_EVENT_FEATURE_COUNT = TRIGGER_EVENT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT___GET_NAMED_CONTAINER = TRIGGER_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11621,13 +15563,49 @@
 	int CUSTOM_EVENT___GET_NAME_PREFIX = TRIGGER_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT___ENCODE__STRING = TRIGGER_EVENT___ENCODE__STRING;
+	int CUSTOM_EVENT___GET_QUALIFIED_NAME_SEGMENTS = TRIGGER_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT___GET_DEFAULT_NAME_SEPARATOR = TRIGGER_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT___GET_NAMESPACE = TRIGGER_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT___GET_NAME_PREFIX_SEGMENTS = TRIGGER_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT___GET_ENCODED_QUALIFIED_NAME = TRIGGER_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11655,7 +15633,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStimulusEvent()
 	 * @generated
 	 */
-	int STIMULUS_EVENT = 161;
+	int STIMULUS_EVENT = 170;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11676,6 +15654,15 @@
 	int STIMULUS_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11721,6 +15708,15 @@
 	int STIMULUS_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11730,13 +15726,49 @@
 	int STIMULUS_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STIMULUS_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int STIMULUS_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11764,7 +15796,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessEvent()
 	 * @generated
 	 */
-	int PROCESS_EVENT = 162;
+	int PROCESS_EVENT = 171;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11785,6 +15817,15 @@
 	int PROCESS_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11848,6 +15889,15 @@
 	int PROCESS_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11857,13 +15907,49 @@
 	int PROCESS_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int PROCESS_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -11891,7 +15977,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessChainEvent()
 	 * @generated
 	 */
-	int PROCESS_CHAIN_EVENT = 163;
+	int PROCESS_CHAIN_EVENT = 172;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -11912,6 +15998,15 @@
 	int PROCESS_CHAIN_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11975,6 +16070,15 @@
 	int PROCESS_CHAIN_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -11984,13 +16088,49 @@
 	int PROCESS_CHAIN_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_CHAIN_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int PROCESS_CHAIN_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12018,7 +16158,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableEvent()
 	 * @generated
 	 */
-	int RUNNABLE_EVENT = 164;
+	int RUNNABLE_EVENT = 173;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12039,6 +16179,15 @@
 	int RUNNABLE_EVENT__NAME = TRIGGER_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT__QUALIFIED_NAME = TRIGGER_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12111,6 +16260,15 @@
 	int RUNNABLE_EVENT_FEATURE_COUNT = TRIGGER_EVENT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT___GET_NAMED_CONTAINER = TRIGGER_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12120,13 +16278,49 @@
 	int RUNNABLE_EVENT___GET_NAME_PREFIX = TRIGGER_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_EVENT___ENCODE__STRING = TRIGGER_EVENT___ENCODE__STRING;
+	int RUNNABLE_EVENT___GET_QUALIFIED_NAME_SEGMENTS = TRIGGER_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT___GET_DEFAULT_NAME_SEPARATOR = TRIGGER_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT___GET_NAMESPACE = TRIGGER_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT___GET_NAME_PREFIX_SEGMENTS = TRIGGER_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_EVENT___GET_ENCODED_QUALIFIED_NAME = TRIGGER_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12154,7 +16348,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelEvent()
 	 * @generated
 	 */
-	int LABEL_EVENT = 165;
+	int LABEL_EVENT = 174;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12175,6 +16369,15 @@
 	int LABEL_EVENT__NAME = TRIGGER_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT__QUALIFIED_NAME = TRIGGER_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12247,6 +16450,15 @@
 	int LABEL_EVENT_FEATURE_COUNT = TRIGGER_EVENT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT___GET_NAMED_CONTAINER = TRIGGER_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12256,13 +16468,49 @@
 	int LABEL_EVENT___GET_NAME_PREFIX = TRIGGER_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_EVENT___ENCODE__STRING = TRIGGER_EVENT___ENCODE__STRING;
+	int LABEL_EVENT___GET_QUALIFIED_NAME_SEGMENTS = TRIGGER_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT___GET_DEFAULT_NAME_SEPARATOR = TRIGGER_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT___GET_NAMESPACE = TRIGGER_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT___GET_NAME_PREFIX_SEGMENTS = TRIGGER_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_EVENT___GET_ENCODED_QUALIFIED_NAME = TRIGGER_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12290,7 +16538,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannelEvent()
 	 * @generated
 	 */
-	int CHANNEL_EVENT = 166;
+	int CHANNEL_EVENT = 175;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12311,6 +16559,15 @@
 	int CHANNEL_EVENT__NAME = TRIGGER_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT__QUALIFIED_NAME = TRIGGER_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12383,6 +16640,15 @@
 	int CHANNEL_EVENT_FEATURE_COUNT = TRIGGER_EVENT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT___GET_NAMED_CONTAINER = TRIGGER_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12392,13 +16658,49 @@
 	int CHANNEL_EVENT___GET_NAME_PREFIX = TRIGGER_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_EVENT___ENCODE__STRING = TRIGGER_EVENT___ENCODE__STRING;
+	int CHANNEL_EVENT___GET_QUALIFIED_NAME_SEGMENTS = TRIGGER_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT___GET_DEFAULT_NAME_SEPARATOR = TRIGGER_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT___GET_NAMESPACE = TRIGGER_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT___GET_NAME_PREFIX_SEGMENTS = TRIGGER_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_EVENT___GET_ENCODED_QUALIFIED_NAME = TRIGGER_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12426,7 +16728,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphoreEvent()
 	 * @generated
 	 */
-	int SEMAPHORE_EVENT = 167;
+	int SEMAPHORE_EVENT = 176;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12447,6 +16749,15 @@
 	int SEMAPHORE_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12528,6 +16839,15 @@
 	int SEMAPHORE_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12537,13 +16857,49 @@
 	int SEMAPHORE_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int SEMAPHORE_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12571,7 +16927,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentEvent()
 	 * @generated
 	 */
-	int COMPONENT_EVENT = 168;
+	int COMPONENT_EVENT = 177;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12592,6 +16948,15 @@
 	int COMPONENT_EVENT__NAME = ENTITY_EVENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT__QUALIFIED_NAME = ENTITY_EVENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12646,6 +17011,15 @@
 	int COMPONENT_EVENT_FEATURE_COUNT = ENTITY_EVENT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT___GET_NAMED_CONTAINER = ENTITY_EVENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12655,13 +17029,49 @@
 	int COMPONENT_EVENT___GET_NAME_PREFIX = ENTITY_EVENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int COMPONENT_EVENT___ENCODE__STRING = ENTITY_EVENT___ENCODE__STRING;
+	int COMPONENT_EVENT___GET_QUALIFIED_NAME_SEGMENTS = ENTITY_EVENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT___GET_DEFAULT_NAME_SEPARATOR = ENTITY_EVENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT___GET_NAMESPACE = ENTITY_EVENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT___GET_NAME_PREFIX_SEGMENTS = ENTITY_EVENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPONENT_EVENT___GET_ENCODED_QUALIFIED_NAME = ENTITY_EVENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12689,7 +17099,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHWModel()
 	 * @generated
 	 */
-	int HW_MODEL = 169;
+	int HW_MODEL = 178;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12762,7 +17172,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwStructure()
 	 * @generated
 	 */
-	int HW_STRUCTURE = 170;
+	int HW_STRUCTURE = 179;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12783,6 +17193,15 @@
 	int HW_STRUCTURE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12864,6 +17283,15 @@
 	int HW_STRUCTURE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 7;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12873,13 +17301,49 @@
 	int HW_STRUCTURE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_STRUCTURE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_STRUCTURE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_STRUCTURE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -12907,7 +17371,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwModule()
 	 * @generated
 	 */
-	int HW_MODULE = 171;
+	int HW_MODULE = 180;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -12928,6 +17392,15 @@
 	int HW_MODULE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12982,6 +17455,15 @@
 	int HW_MODULE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -12991,13 +17473,49 @@
 	int HW_MODULE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_MODULE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_MODULE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_MODULE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13025,7 +17543,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwDomain()
 	 * @generated
 	 */
-	int HW_DOMAIN = 172;
+	int HW_DOMAIN = 181;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13046,6 +17564,15 @@
 	int HW_DOMAIN__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13073,6 +17600,15 @@
 	int HW_DOMAIN_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13082,13 +17618,49 @@
 	int HW_DOMAIN___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_DOMAIN___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_DOMAIN___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DOMAIN___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13116,7 +17688,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFrequencyDomain()
 	 * @generated
 	 */
-	int FREQUENCY_DOMAIN = 173;
+	int FREQUENCY_DOMAIN = 182;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13137,6 +17709,15 @@
 	int FREQUENCY_DOMAIN__NAME = HW_DOMAIN__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN__QUALIFIED_NAME = HW_DOMAIN__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13182,6 +17763,15 @@
 	int FREQUENCY_DOMAIN_FEATURE_COUNT = HW_DOMAIN_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN___GET_NAMED_CONTAINER = HW_DOMAIN___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13191,13 +17781,49 @@
 	int FREQUENCY_DOMAIN___GET_NAME_PREFIX = HW_DOMAIN___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int FREQUENCY_DOMAIN___ENCODE__STRING = HW_DOMAIN___ENCODE__STRING;
+	int FREQUENCY_DOMAIN___GET_QUALIFIED_NAME_SEGMENTS = HW_DOMAIN___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN___GET_DEFAULT_NAME_SEPARATOR = HW_DOMAIN___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN___GET_NAMESPACE = HW_DOMAIN___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN___GET_NAME_PREFIX_SEGMENTS = HW_DOMAIN___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int FREQUENCY_DOMAIN___GET_ENCODED_QUALIFIED_NAME = HW_DOMAIN___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13225,7 +17851,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPowerDomain()
 	 * @generated
 	 */
-	int POWER_DOMAIN = 174;
+	int POWER_DOMAIN = 183;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13246,6 +17872,15 @@
 	int POWER_DOMAIN__NAME = HW_DOMAIN__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN__QUALIFIED_NAME = HW_DOMAIN__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13291,6 +17926,15 @@
 	int POWER_DOMAIN_FEATURE_COUNT = HW_DOMAIN_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN___GET_NAMED_CONTAINER = HW_DOMAIN___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13300,13 +17944,49 @@
 	int POWER_DOMAIN___GET_NAME_PREFIX = HW_DOMAIN___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int POWER_DOMAIN___ENCODE__STRING = HW_DOMAIN___ENCODE__STRING;
+	int POWER_DOMAIN___GET_QUALIFIED_NAME_SEGMENTS = HW_DOMAIN___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN___GET_DEFAULT_NAME_SEPARATOR = HW_DOMAIN___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN___GET_NAMESPACE = HW_DOMAIN___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN___GET_NAME_PREFIX_SEGMENTS = HW_DOMAIN___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int POWER_DOMAIN___GET_ENCODED_QUALIFIED_NAME = HW_DOMAIN___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13334,7 +18014,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessingUnit()
 	 * @generated
 	 */
-	int PROCESSING_UNIT = 175;
+	int PROCESSING_UNIT = 184;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13355,6 +18035,15 @@
 	int PROCESSING_UNIT__NAME = HW_MODULE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT__QUALIFIED_NAME = HW_MODULE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13436,6 +18125,15 @@
 	int PROCESSING_UNIT_FEATURE_COUNT = HW_MODULE_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT___GET_NAMED_CONTAINER = HW_MODULE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13445,13 +18143,49 @@
 	int PROCESSING_UNIT___GET_NAME_PREFIX = HW_MODULE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESSING_UNIT___ENCODE__STRING = HW_MODULE___ENCODE__STRING;
+	int PROCESSING_UNIT___GET_QUALIFIED_NAME_SEGMENTS = HW_MODULE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT___GET_DEFAULT_NAME_SEPARATOR = HW_MODULE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT___GET_NAMESPACE = HW_MODULE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT___GET_NAME_PREFIX_SEGMENTS = HW_MODULE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT___GET_ENCODED_QUALIFIED_NAME = HW_MODULE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13488,7 +18222,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemory()
 	 * @generated
 	 */
-	int MEMORY = 176;
+	int MEMORY = 185;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13509,6 +18243,15 @@
 	int MEMORY__NAME = HW_MODULE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY__QUALIFIED_NAME = HW_MODULE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13581,6 +18324,15 @@
 	int MEMORY_FEATURE_COUNT = HW_MODULE_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY___GET_NAMED_CONTAINER = HW_MODULE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13590,13 +18342,49 @@
 	int MEMORY___GET_NAME_PREFIX = HW_MODULE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MEMORY___ENCODE__STRING = HW_MODULE___ENCODE__STRING;
+	int MEMORY___GET_QUALIFIED_NAME_SEGMENTS = HW_MODULE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY___GET_DEFAULT_NAME_SEPARATOR = HW_MODULE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY___GET_NAMESPACE = HW_MODULE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY___GET_NAME_PREFIX_SEGMENTS = HW_MODULE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY___GET_ENCODED_QUALIFIED_NAME = HW_MODULE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13633,7 +18421,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCache()
 	 * @generated
 	 */
-	int CACHE = 177;
+	int CACHE = 186;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13654,6 +18442,15 @@
 	int CACHE__NAME = HW_MODULE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE__QUALIFIED_NAME = HW_MODULE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13717,6 +18514,15 @@
 	int CACHE_FEATURE_COUNT = HW_MODULE_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE___GET_NAMED_CONTAINER = HW_MODULE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13726,13 +18532,49 @@
 	int CACHE___GET_NAME_PREFIX = HW_MODULE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CACHE___ENCODE__STRING = HW_MODULE___ENCODE__STRING;
+	int CACHE___GET_QUALIFIED_NAME_SEGMENTS = HW_MODULE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE___GET_DEFAULT_NAME_SEPARATOR = HW_MODULE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE___GET_NAMESPACE = HW_MODULE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE___GET_NAME_PREFIX_SEGMENTS = HW_MODULE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE___GET_ENCODED_QUALIFIED_NAME = HW_MODULE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13769,7 +18611,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwFeatureCategory()
 	 * @generated
 	 */
-	int HW_FEATURE_CATEGORY = 178;
+	int HW_FEATURE_CATEGORY = 187;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13790,6 +18632,15 @@
 	int HW_FEATURE_CATEGORY__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13835,6 +18686,15 @@
 	int HW_FEATURE_CATEGORY_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13844,13 +18704,49 @@
 	int HW_FEATURE_CATEGORY___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_FEATURE_CATEGORY___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_FEATURE_CATEGORY___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE_CATEGORY___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13878,7 +18774,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwFeature()
 	 * @generated
 	 */
-	int HW_FEATURE = 179;
+	int HW_FEATURE = 188;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -13899,6 +18795,15 @@
 	int HW_FEATURE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -13935,13 +18840,58 @@
 	int HW_FEATURE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_FEATURE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_FEATURE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_FEATURE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -13953,13 +18903,13 @@
 	int HW_FEATURE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_FEATURE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int HW_FEATURE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>To String</em>' operation.
@@ -13987,7 +18937,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwPort()
 	 * @generated
 	 */
-	int HW_PORT = 180;
+	int HW_PORT = 189;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14008,6 +18958,15 @@
 	int HW_PORT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14089,13 +19048,58 @@
 	int HW_PORT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 7;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_PORT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_PORT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PORT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14107,13 +19111,13 @@
 	int HW_PORT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_PORT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int HW_PORT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Hw Port</em>' class.
@@ -14132,7 +19136,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConnectionHandler()
 	 * @generated
 	 */
-	int CONNECTION_HANDLER = 181;
+	int CONNECTION_HANDLER = 190;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14153,6 +19157,15 @@
 	int CONNECTION_HANDLER__NAME = HW_MODULE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER__QUALIFIED_NAME = HW_MODULE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14225,6 +19238,15 @@
 	int CONNECTION_HANDLER_FEATURE_COUNT = HW_MODULE_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER___GET_NAMED_CONTAINER = HW_MODULE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14234,13 +19256,49 @@
 	int CONNECTION_HANDLER___GET_NAME_PREFIX = HW_MODULE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTION_HANDLER___ENCODE__STRING = HW_MODULE___ENCODE__STRING;
+	int CONNECTION_HANDLER___GET_QUALIFIED_NAME_SEGMENTS = HW_MODULE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER___GET_DEFAULT_NAME_SEPARATOR = HW_MODULE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER___GET_NAMESPACE = HW_MODULE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER___GET_NAME_PREFIX_SEGMENTS = HW_MODULE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER___GET_ENCODED_QUALIFIED_NAME = HW_MODULE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14277,7 +19335,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwConnection()
 	 * @generated
 	 */
-	int HW_CONNECTION = 182;
+	int HW_CONNECTION = 191;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14298,6 +19356,15 @@
 	int HW_CONNECTION__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14379,13 +19446,58 @@
 	int HW_CONNECTION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 7;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_CONNECTION___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_CONNECTION___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_CONNECTION___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14397,13 +19509,13 @@
 	int HW_CONNECTION___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_CONNECTION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
+	int HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 1;
 
 	/**
 	 * The operation id for the '<em>Get Ports</em>' operation.
@@ -14431,7 +19543,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwAccessElement()
 	 * @generated
 	 */
-	int HW_ACCESS_ELEMENT = 183;
+	int HW_ACCESS_ELEMENT = 192;
 
 	/**
 	 * The feature id for the '<em><b>Tags</b></em>' reference list.
@@ -14452,13 +19564,22 @@
 	int HW_ACCESS_ELEMENT__NAME = ITAGGABLE_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT__QUALIFIED_NAME = ITAGGABLE_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Source</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__SOURCE = ITAGGABLE_FEATURE_COUNT + 1;
+	int HW_ACCESS_ELEMENT__SOURCE = ITAGGABLE_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Destination</b></em>' reference.
@@ -14467,7 +19588,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__DESTINATION = ITAGGABLE_FEATURE_COUNT + 2;
+	int HW_ACCESS_ELEMENT__DESTINATION = ITAGGABLE_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Access Path</b></em>' containment reference.
@@ -14476,7 +19597,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__ACCESS_PATH = ITAGGABLE_FEATURE_COUNT + 3;
+	int HW_ACCESS_ELEMENT__ACCESS_PATH = ITAGGABLE_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Read Latency</b></em>' containment reference.
@@ -14485,7 +19606,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__READ_LATENCY = ITAGGABLE_FEATURE_COUNT + 4;
+	int HW_ACCESS_ELEMENT__READ_LATENCY = ITAGGABLE_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Write Latency</b></em>' containment reference.
@@ -14494,7 +19615,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__WRITE_LATENCY = ITAGGABLE_FEATURE_COUNT + 5;
+	int HW_ACCESS_ELEMENT__WRITE_LATENCY = ITAGGABLE_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Data Rate</b></em>' containment reference.
@@ -14503,7 +19624,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT__DATA_RATE = ITAGGABLE_FEATURE_COUNT + 6;
+	int HW_ACCESS_ELEMENT__DATA_RATE = ITAGGABLE_FEATURE_COUNT + 7;
 
 	/**
 	 * The number of structural features of the '<em>Hw Access Element</em>' class.
@@ -14512,7 +19633,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT_FEATURE_COUNT = ITAGGABLE_FEATURE_COUNT + 7;
+	int HW_ACCESS_ELEMENT_FEATURE_COUNT = ITAGGABLE_FEATURE_COUNT + 8;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_NAMED_CONTAINER = ITAGGABLE_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_NAME_PREFIX = ITAGGABLE_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS = ITAGGABLE_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_DEFAULT_NAME_SEPARATOR = ITAGGABLE_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_NAMESPACE = ITAGGABLE_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_ELEMENT___GET_NAME_PREFIX_SEGMENTS = ITAGGABLE_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Hw Access Element</em>' class.
@@ -14521,7 +19696,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_ELEMENT_OPERATION_COUNT = ITAGGABLE_OPERATION_COUNT + 0;
+	int HW_ACCESS_ELEMENT_OPERATION_COUNT = ITAGGABLE_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.HwDefinitionImpl <em>Hw Definition</em>}' class.
@@ -14531,7 +19706,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwDefinition()
 	 * @generated
 	 */
-	int HW_DEFINITION = 184;
+	int HW_DEFINITION = 193;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14552,6 +19727,15 @@
 	int HW_DEFINITION__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14579,6 +19763,15 @@
 	int HW_DEFINITION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14588,13 +19781,49 @@
 	int HW_DEFINITION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_DEFINITION___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int HW_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DEFINITION___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14622,7 +19851,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessingUnitDefinition()
 	 * @generated
 	 */
-	int PROCESSING_UNIT_DEFINITION = 185;
+	int PROCESSING_UNIT_DEFINITION = 194;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14643,6 +19872,15 @@
 	int PROCESSING_UNIT_DEFINITION__NAME = HW_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION__QUALIFIED_NAME = HW_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14697,6 +19935,15 @@
 	int PROCESSING_UNIT_DEFINITION_FEATURE_COUNT = HW_DEFINITION_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION___GET_NAMED_CONTAINER = HW_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14706,13 +19953,49 @@
 	int PROCESSING_UNIT_DEFINITION___GET_NAME_PREFIX = HW_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESSING_UNIT_DEFINITION___ENCODE__STRING = HW_DEFINITION___ENCODE__STRING;
+	int PROCESSING_UNIT_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = HW_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = HW_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION___GET_NAMESPACE = HW_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION___GET_NAME_PREFIX_SEGMENTS = HW_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESSING_UNIT_DEFINITION___GET_ENCODED_QUALIFIED_NAME = HW_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14740,7 +20023,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConnectionHandlerDefinition()
 	 * @generated
 	 */
-	int CONNECTION_HANDLER_DEFINITION = 186;
+	int CONNECTION_HANDLER_DEFINITION = 195;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14761,6 +20044,15 @@
 	int CONNECTION_HANDLER_DEFINITION__NAME = HW_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION__QUALIFIED_NAME = HW_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14842,6 +20134,15 @@
 	int CONNECTION_HANDLER_DEFINITION_FEATURE_COUNT = HW_DEFINITION_FEATURE_COUNT + 6;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION___GET_NAMED_CONTAINER = HW_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14851,13 +20152,49 @@
 	int CONNECTION_HANDLER_DEFINITION___GET_NAME_PREFIX = HW_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CONNECTION_HANDLER_DEFINITION___ENCODE__STRING = HW_DEFINITION___ENCODE__STRING;
+	int CONNECTION_HANDLER_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = HW_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = HW_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION___GET_NAMESPACE = HW_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION___GET_NAME_PREFIX_SEGMENTS = HW_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CONNECTION_HANDLER_DEFINITION___GET_ENCODED_QUALIFIED_NAME = HW_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -14885,7 +20222,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryDefinition()
 	 * @generated
 	 */
-	int MEMORY_DEFINITION = 187;
+	int MEMORY_DEFINITION = 196;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -14906,6 +20243,15 @@
 	int MEMORY_DEFINITION__NAME = HW_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION__QUALIFIED_NAME = HW_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14978,6 +20324,15 @@
 	int MEMORY_DEFINITION_FEATURE_COUNT = HW_DEFINITION_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION___GET_NAMED_CONTAINER = HW_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -14987,13 +20342,49 @@
 	int MEMORY_DEFINITION___GET_NAME_PREFIX = HW_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MEMORY_DEFINITION___ENCODE__STRING = HW_DEFINITION___ENCODE__STRING;
+	int MEMORY_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = HW_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = HW_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION___GET_NAMESPACE = HW_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION___GET_NAME_PREFIX_SEGMENTS = HW_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MEMORY_DEFINITION___GET_ENCODED_QUALIFIED_NAME = HW_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -15021,7 +20412,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCacheDefinition()
 	 * @generated
 	 */
-	int CACHE_DEFINITION = 188;
+	int CACHE_DEFINITION = 197;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15042,6 +20433,15 @@
 	int CACHE_DEFINITION__NAME = HW_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION__QUALIFIED_NAME = HW_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15150,6 +20550,15 @@
 	int CACHE_DEFINITION_FEATURE_COUNT = HW_DEFINITION_FEATURE_COUNT + 9;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION___GET_NAMED_CONTAINER = HW_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15159,13 +20568,49 @@
 	int CACHE_DEFINITION___GET_NAME_PREFIX = HW_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CACHE_DEFINITION___ENCODE__STRING = HW_DEFINITION___ENCODE__STRING;
+	int CACHE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = HW_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = HW_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION___GET_NAMESPACE = HW_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION___GET_NAME_PREFIX_SEGMENTS = HW_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CACHE_DEFINITION___GET_ENCODED_QUALIFIED_NAME = HW_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -15193,7 +20638,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwPath()
 	 * @generated
 	 */
-	int HW_PATH = 189;
+	int HW_PATH = 198;
 
 	/**
 	 * The feature id for the '<em><b>Source</b></em>' reference.
@@ -15248,7 +20693,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwAccessPath()
 	 * @generated
 	 */
-	int HW_ACCESS_PATH = 190;
+	int HW_ACCESS_PATH = 199;
 
 	/**
 	 * The feature id for the '<em><b>Source</b></em>' reference.
@@ -15278,13 +20723,22 @@
 	int HW_ACCESS_PATH__NAME = HW_PATH_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH__QUALIFIED_NAME = HW_PATH_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Containing Access Element</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT = HW_PATH_FEATURE_COUNT + 1;
+	int HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT = HW_PATH_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Path Elements</b></em>' reference list.
@@ -15293,7 +20747,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH__PATH_ELEMENTS = HW_PATH_FEATURE_COUNT + 2;
+	int HW_ACCESS_PATH__PATH_ELEMENTS = HW_PATH_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Start Address</b></em>' attribute.
@@ -15302,7 +20756,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH__START_ADDRESS = HW_PATH_FEATURE_COUNT + 3;
+	int HW_ACCESS_PATH__START_ADDRESS = HW_PATH_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>End Address</b></em>' attribute.
@@ -15311,7 +20765,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH__END_ADDRESS = HW_PATH_FEATURE_COUNT + 4;
+	int HW_ACCESS_PATH__END_ADDRESS = HW_PATH_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Mem Offset</b></em>' attribute.
@@ -15320,7 +20774,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH__MEM_OFFSET = HW_PATH_FEATURE_COUNT + 5;
+	int HW_ACCESS_PATH__MEM_OFFSET = HW_PATH_FEATURE_COUNT + 6;
 
 	/**
 	 * The number of structural features of the '<em>Hw Access Path</em>' class.
@@ -15329,7 +20783,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH_FEATURE_COUNT = HW_PATH_FEATURE_COUNT + 6;
+	int HW_ACCESS_PATH_FEATURE_COUNT = HW_PATH_FEATURE_COUNT + 7;
 
 	/**
 	 * The operation id for the '<em>Get Containing Access Element</em>' operation.
@@ -15341,13 +20795,67 @@
 	int HW_ACCESS_PATH___GET_CONTAINING_ACCESS_ELEMENT = HW_PATH___GET_CONTAINING_ACCESS_ELEMENT;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_NAMED_CONTAINER = HW_PATH_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_NAME_PREFIX = HW_PATH_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_QUALIFIED_NAME_SEGMENTS = HW_PATH_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_DEFAULT_NAME_SEPARATOR = HW_PATH_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_NAMESPACE = HW_PATH_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_ACCESS_PATH___GET_NAME_PREFIX_SEGMENTS = HW_PATH_OPERATION_COUNT + 5;
+
+	/**
 	 * The number of operations of the '<em>Hw Access Path</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_ACCESS_PATH_OPERATION_COUNT = HW_PATH_OPERATION_COUNT + 0;
+	int HW_ACCESS_PATH_OPERATION_COUNT = HW_PATH_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.HwPathElement <em>Hw Path Element</em>}' class.
@@ -15357,7 +20865,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwPathElement()
 	 * @generated
 	 */
-	int HW_PATH_ELEMENT = 191;
+	int HW_PATH_ELEMENT = 200;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -15369,6 +20877,15 @@
 	int HW_PATH_ELEMENT__NAME = IREFERABLE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT__QUALIFIED_NAME = IREFERABLE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15387,6 +20904,15 @@
 	int HW_PATH_ELEMENT_FEATURE_COUNT = IREFERABLE_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT___GET_NAMED_CONTAINER = IREFERABLE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15396,13 +20922,49 @@
 	int HW_PATH_ELEMENT___GET_NAME_PREFIX = IREFERABLE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_PATH_ELEMENT___ENCODE__STRING = IREFERABLE___ENCODE__STRING;
+	int HW_PATH_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS = IREFERABLE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT___GET_DEFAULT_NAME_SEPARATOR = IREFERABLE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT___GET_NAMESPACE = IREFERABLE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT___GET_NAME_PREFIX_SEGMENTS = IREFERABLE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_PATH_ELEMENT___GET_ENCODED_QUALIFIED_NAME = IREFERABLE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -15439,7 +21001,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwDestination()
 	 * @generated
 	 */
-	int HW_DESTINATION = 192;
+	int HW_DESTINATION = 201;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -15451,6 +21013,15 @@
 	int HW_DESTINATION__NAME = IREFERABLE__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION__QUALIFIED_NAME = IREFERABLE__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15469,6 +21040,15 @@
 	int HW_DESTINATION_FEATURE_COUNT = IREFERABLE_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION___GET_NAMED_CONTAINER = IREFERABLE___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -15478,13 +21058,49 @@
 	int HW_DESTINATION___GET_NAME_PREFIX = IREFERABLE___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int HW_DESTINATION___ENCODE__STRING = IREFERABLE___ENCODE__STRING;
+	int HW_DESTINATION___GET_QUALIFIED_NAME_SEGMENTS = IREFERABLE___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION___GET_DEFAULT_NAME_SEPARATOR = IREFERABLE___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION___GET_NAMESPACE = IREFERABLE___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION___GET_NAME_PREFIX_SEGMENTS = IREFERABLE___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int HW_DESTINATION___GET_ENCODED_QUALIFIED_NAME = IREFERABLE___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -15521,7 +21137,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMappingModel()
 	 * @generated
 	 */
-	int MAPPING_MODEL = 193;
+	int MAPPING_MODEL = 202;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15621,7 +21237,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSchedulerAllocation()
 	 * @generated
 	 */
-	int SCHEDULER_ALLOCATION = 194;
+	int SCHEDULER_ALLOCATION = 203;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15685,7 +21301,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTaskAllocation()
 	 * @generated
 	 */
-	int TASK_ALLOCATION = 195;
+	int TASK_ALLOCATION = 204;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15767,7 +21383,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getISRAllocation()
 	 * @generated
 	 */
-	int ISR_ALLOCATION = 196;
+	int ISR_ALLOCATION = 205;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15831,7 +21447,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableAllocation()
 	 * @generated
 	 */
-	int RUNNABLE_ALLOCATION = 197;
+	int RUNNABLE_ALLOCATION = 206;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15886,7 +21502,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryMapping()
 	 * @generated
 	 */
-	int MEMORY_MAPPING = 198;
+	int MEMORY_MAPPING = 207;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15950,7 +21566,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPhysicalSectionMapping()
 	 * @generated
 	 */
-	int PHYSICAL_SECTION_MAPPING = 199;
+	int PHYSICAL_SECTION_MAPPING = 208;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -15971,6 +21587,15 @@
 	int PHYSICAL_SECTION_MAPPING__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16043,6 +21668,15 @@
 	int PHYSICAL_SECTION_MAPPING_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 6;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16052,13 +21686,49 @@
 	int PHYSICAL_SECTION_MAPPING___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PHYSICAL_SECTION_MAPPING___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int PHYSICAL_SECTION_MAPPING___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PHYSICAL_SECTION_MAPPING___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -16086,7 +21756,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOSModel()
 	 * @generated
 	 */
-	int OS_MODEL = 200;
+	int OS_MODEL = 209;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16150,7 +21820,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsDataConsistency()
 	 * @generated
 	 */
-	int OS_DATA_CONSISTENCY = 201;
+	int OS_DATA_CONSISTENCY = 210;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16214,7 +21884,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataStability()
 	 * @generated
 	 */
-	int DATA_STABILITY = 202;
+	int DATA_STABILITY = 211;
 
 	/**
 	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
@@ -16278,7 +21948,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNonAtomicDataCoherency()
 	 * @generated
 	 */
-	int NON_ATOMIC_DATA_COHERENCY = 203;
+	int NON_ATOMIC_DATA_COHERENCY = 212;
 
 	/**
 	 * The feature id for the '<em><b>Enabled</b></em>' attribute.
@@ -16333,7 +22003,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphore()
 	 * @generated
 	 */
-	int SEMAPHORE = 204;
+	int SEMAPHORE = 213;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16354,6 +22024,15 @@
 	int SEMAPHORE__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16426,6 +22105,15 @@
 	int SEMAPHORE_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 6;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16435,13 +22123,49 @@
 	int SEMAPHORE___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int SEMAPHORE___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -16469,7 +22193,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getScheduler()
 	 * @generated
 	 */
-	int SCHEDULER = 205;
+	int SCHEDULER = 214;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16490,6 +22214,15 @@
 	int SCHEDULER__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16535,6 +22268,15 @@
 	int SCHEDULER_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16544,13 +22286,49 @@
 	int SCHEDULER___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULER___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int SCHEDULER___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULER___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -16587,7 +22365,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTaskScheduler()
 	 * @generated
 	 */
-	int TASK_SCHEDULER = 206;
+	int TASK_SCHEDULER = 215;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16608,6 +22386,15 @@
 	int TASK_SCHEDULER__NAME = SCHEDULER__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER__QUALIFIED_NAME = SCHEDULER__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16707,6 +22494,15 @@
 	int TASK_SCHEDULER_FEATURE_COUNT = SCHEDULER_FEATURE_COUNT + 6;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER___GET_NAMED_CONTAINER = SCHEDULER___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16716,13 +22512,49 @@
 	int TASK_SCHEDULER___GET_NAME_PREFIX = SCHEDULER___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TASK_SCHEDULER___ENCODE__STRING = SCHEDULER___ENCODE__STRING;
+	int TASK_SCHEDULER___GET_QUALIFIED_NAME_SEGMENTS = SCHEDULER___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER___GET_DEFAULT_NAME_SEPARATOR = SCHEDULER___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER___GET_NAMESPACE = SCHEDULER___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER___GET_NAME_PREFIX_SEGMENTS = SCHEDULER___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK_SCHEDULER___GET_ENCODED_QUALIFIED_NAME = SCHEDULER___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -16759,7 +22591,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSchedulerAssociation()
 	 * @generated
 	 */
-	int SCHEDULER_ASSOCIATION = 207;
+	int SCHEDULER_ASSOCIATION = 216;
 
 	/**
 	 * The feature id for the '<em><b>Child</b></em>' container reference.
@@ -16823,7 +22655,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterruptController()
 	 * @generated
 	 */
-	int INTERRUPT_CONTROLLER = 208;
+	int INTERRUPT_CONTROLLER = 217;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -16844,6 +22676,15 @@
 	int INTERRUPT_CONTROLLER__NAME = SCHEDULER__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER__QUALIFIED_NAME = SCHEDULER__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16907,6 +22748,15 @@
 	int INTERRUPT_CONTROLLER_FEATURE_COUNT = SCHEDULER_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER___GET_NAMED_CONTAINER = SCHEDULER___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -16916,13 +22766,49 @@
 	int INTERRUPT_CONTROLLER___GET_NAME_PREFIX = SCHEDULER___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTERRUPT_CONTROLLER___ENCODE__STRING = SCHEDULER___ENCODE__STRING;
+	int INTERRUPT_CONTROLLER___GET_QUALIFIED_NAME_SEGMENTS = SCHEDULER___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER___GET_DEFAULT_NAME_SEPARATOR = SCHEDULER___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER___GET_NAMESPACE = SCHEDULER___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER___GET_NAME_PREFIX_SEGMENTS = SCHEDULER___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTERRUPT_CONTROLLER___GET_ENCODED_QUALIFIED_NAME = SCHEDULER___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -16959,7 +22845,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSchedulingParameters()
 	 * @generated
 	 */
-	int SCHEDULING_PARAMETERS = 209;
+	int SCHEDULING_PARAMETERS = 218;
 
 	/**
 	 * The feature id for the '<em><b>Priority</b></em>' attribute.
@@ -17023,7 +22909,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getParameterExtension()
 	 * @generated
 	 */
-	int PARAMETER_EXTENSION = 210;
+	int PARAMETER_EXTENSION = 219;
 
 	/**
 	 * The feature id for the '<em><b>Key</b></em>' attribute.
@@ -17069,7 +22955,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAlgorithm()
 	 * @generated
 	 */
-	int ALGORITHM = 211;
+	int ALGORITHM = 220;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17106,7 +22992,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterruptSchedulingAlgorithm()
 	 * @generated
 	 */
-	int INTERRUPT_SCHEDULING_ALGORITHM = 212;
+	int INTERRUPT_SCHEDULING_ALGORITHM = 221;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17143,7 +23029,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTaskSchedulingAlgorithm()
 	 * @generated
 	 */
-	int TASK_SCHEDULING_ALGORITHM = 213;
+	int TASK_SCHEDULING_ALGORITHM = 222;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17180,7 +23066,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFixedPriority()
 	 * @generated
 	 */
-	int FIXED_PRIORITY = 214;
+	int FIXED_PRIORITY = 223;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17217,7 +23103,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFixedPriorityPreemptive()
 	 * @generated
 	 */
-	int FIXED_PRIORITY_PREEMPTIVE = 215;
+	int FIXED_PRIORITY_PREEMPTIVE = 224;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17254,7 +23140,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFixedPriorityPreemptiveWithBudgetEnforcement()
 	 * @generated
 	 */
-	int FIXED_PRIORITY_PREEMPTIVE_WITH_BUDGET_ENFORCEMENT = 216;
+	int FIXED_PRIORITY_PREEMPTIVE_WITH_BUDGET_ENFORCEMENT = 225;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17291,7 +23177,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOSEK()
 	 * @generated
 	 */
-	int OSEK = 217;
+	int OSEK = 226;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17328,7 +23214,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDeadlineMonotonic()
 	 * @generated
 	 */
-	int DEADLINE_MONOTONIC = 218;
+	int DEADLINE_MONOTONIC = 227;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17365,7 +23251,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRateMonotonic()
 	 * @generated
 	 */
-	int RATE_MONOTONIC = 219;
+	int RATE_MONOTONIC = 228;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17402,7 +23288,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPfair()
 	 * @generated
 	 */
-	int PFAIR = 220;
+	int PFAIR = 229;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17448,7 +23334,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPfairPD2()
 	 * @generated
 	 */
-	int PFAIR_PD2 = 221;
+	int PFAIR_PD2 = 230;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17494,7 +23380,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPartlyPFairPD2()
 	 * @generated
 	 */
-	int PARTLY_PFAIR_PD2 = 222;
+	int PARTLY_PFAIR_PD2 = 231;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17540,7 +23426,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEarlyReleaseFairPD2()
 	 * @generated
 	 */
-	int EARLY_RELEASE_FAIR_PD2 = 223;
+	int EARLY_RELEASE_FAIR_PD2 = 232;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17586,7 +23472,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPartlyEarlyReleaseFairPD2()
 	 * @generated
 	 */
-	int PARTLY_EARLY_RELEASE_FAIR_PD2 = 224;
+	int PARTLY_EARLY_RELEASE_FAIR_PD2 = 233;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17632,7 +23518,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDynamicPriority()
 	 * @generated
 	 */
-	int DYNAMIC_PRIORITY = 225;
+	int DYNAMIC_PRIORITY = 234;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17669,7 +23555,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLeastLocalRemainingExecutionTimeFirst()
 	 * @generated
 	 */
-	int LEAST_LOCAL_REMAINING_EXECUTION_TIME_FIRST = 226;
+	int LEAST_LOCAL_REMAINING_EXECUTION_TIME_FIRST = 235;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17706,7 +23592,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEarliestDeadlineFirst()
 	 * @generated
 	 */
-	int EARLIEST_DEADLINE_FIRST = 227;
+	int EARLIEST_DEADLINE_FIRST = 236;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17743,7 +23629,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPriorityBasedRoundRobin()
 	 * @generated
 	 */
-	int PRIORITY_BASED_ROUND_ROBIN = 228;
+	int PRIORITY_BASED_ROUND_ROBIN = 237;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17780,7 +23666,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getReservationBasedServer()
 	 * @generated
 	 */
-	int RESERVATION_BASED_SERVER = 229;
+	int RESERVATION_BASED_SERVER = 238;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17817,7 +23703,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDeferrableServer()
 	 * @generated
 	 */
-	int DEFERRABLE_SERVER = 230;
+	int DEFERRABLE_SERVER = 239;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17854,7 +23740,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPollingPeriodicServer()
 	 * @generated
 	 */
-	int POLLING_PERIODIC_SERVER = 231;
+	int POLLING_PERIODIC_SERVER = 240;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17891,7 +23777,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSporadicServer()
 	 * @generated
 	 */
-	int SPORADIC_SERVER = 232;
+	int SPORADIC_SERVER = 241;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17928,7 +23814,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConstantBandwidthServer()
 	 * @generated
 	 */
-	int CONSTANT_BANDWIDTH_SERVER = 233;
+	int CONSTANT_BANDWIDTH_SERVER = 242;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -17965,7 +23851,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConstantBandwidthServerWithCASH()
 	 * @generated
 	 */
-	int CONSTANT_BANDWIDTH_SERVER_WITH_CASH = 234;
+	int CONSTANT_BANDWIDTH_SERVER_WITH_CASH = 243;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18002,7 +23888,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getGrouping()
 	 * @generated
 	 */
-	int GROUPING = 235;
+	int GROUPING = 244;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18039,7 +23925,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getUserSpecificSchedulingAlgorithm()
 	 * @generated
 	 */
-	int USER_SPECIFIC_SCHEDULING_ALGORITHM = 236;
+	int USER_SPECIFIC_SCHEDULING_ALGORITHM = 245;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18085,7 +23971,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPriorityBased()
 	 * @generated
 	 */
-	int PRIORITY_BASED = 237;
+	int PRIORITY_BASED = 246;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18122,7 +24008,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOperatingSystem()
 	 * @generated
 	 */
-	int OPERATING_SYSTEM = 238;
+	int OPERATING_SYSTEM = 247;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18143,13 +24029,22 @@
 	int OPERATING_SYSTEM__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Overhead</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM__OVERHEAD = BASE_OBJECT_FEATURE_COUNT + 1;
+	int OPERATING_SYSTEM__OVERHEAD = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Task Schedulers</b></em>' containment reference list.
@@ -18158,7 +24053,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM__TASK_SCHEDULERS = BASE_OBJECT_FEATURE_COUNT + 2;
+	int OPERATING_SYSTEM__TASK_SCHEDULERS = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Interrupt Controllers</b></em>' containment reference list.
@@ -18167,7 +24062,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM__INTERRUPT_CONTROLLERS = BASE_OBJECT_FEATURE_COUNT + 3;
+	int OPERATING_SYSTEM__INTERRUPT_CONTROLLERS = BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Os Data Consistency</b></em>' containment reference.
@@ -18176,7 +24071,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM__OS_DATA_CONSISTENCY = BASE_OBJECT_FEATURE_COUNT + 4;
+	int OPERATING_SYSTEM__OS_DATA_CONSISTENCY = BASE_OBJECT_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Operating System</em>' class.
@@ -18185,7 +24080,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 5;
+	int OPERATING_SYSTEM_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OPERATING_SYSTEM___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Operating System</em>' class.
@@ -18194,7 +24143,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int OPERATING_SYSTEM_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int OPERATING_SYSTEM_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.VendorOperatingSystemImpl <em>Vendor Operating System</em>}' class.
@@ -18204,7 +24153,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getVendorOperatingSystem()
 	 * @generated
 	 */
-	int VENDOR_OPERATING_SYSTEM = 239;
+	int VENDOR_OPERATING_SYSTEM = 248;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18225,6 +24174,15 @@
 	int VENDOR_OPERATING_SYSTEM__NAME = OPERATING_SYSTEM__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM__QUALIFIED_NAME = OPERATING_SYSTEM__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Overhead</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -18297,6 +24255,60 @@
 	int VENDOR_OPERATING_SYSTEM_FEATURE_COUNT = OPERATING_SYSTEM_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_NAMED_CONTAINER = OPERATING_SYSTEM___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_NAME_PREFIX = OPERATING_SYSTEM___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_QUALIFIED_NAME_SEGMENTS = OPERATING_SYSTEM___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_DEFAULT_NAME_SEPARATOR = OPERATING_SYSTEM___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_NAMESPACE = OPERATING_SYSTEM___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VENDOR_OPERATING_SYSTEM___GET_NAME_PREFIX_SEGMENTS = OPERATING_SYSTEM___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
 	 * The number of operations of the '<em>Vendor Operating System</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -18313,7 +24325,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsOverhead()
 	 * @generated
 	 */
-	int OS_OVERHEAD = 240;
+	int OS_OVERHEAD = 249;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18334,6 +24346,15 @@
 	int OS_OVERHEAD__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -18379,6 +24400,15 @@
 	int OS_OVERHEAD_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -18388,13 +24418,49 @@
 	int OS_OVERHEAD___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OS_OVERHEAD___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int OS_OVERHEAD___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_OVERHEAD___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -18422,7 +24488,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsAPIOverhead()
 	 * @generated
 	 */
-	int OS_API_OVERHEAD = 241;
+	int OS_API_OVERHEAD = 250;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18630,7 +24696,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsISROverhead()
 	 * @generated
 	 */
-	int OS_ISR_OVERHEAD = 242;
+	int OS_ISR_OVERHEAD = 251;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18685,7 +24751,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPropertyConstraintsModel()
 	 * @generated
 	 */
-	int PROPERTY_CONSTRAINTS_MODEL = 243;
+	int PROPERTY_CONSTRAINTS_MODEL = 252;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18740,7 +24806,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCoreAllocationConstraint()
 	 * @generated
 	 */
-	int CORE_ALLOCATION_CONSTRAINT = 244;
+	int CORE_ALLOCATION_CONSTRAINT = 253;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18786,7 +24852,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryMappingConstraint()
 	 * @generated
 	 */
-	int MEMORY_MAPPING_CONSTRAINT = 245;
+	int MEMORY_MAPPING_CONSTRAINT = 254;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18832,7 +24898,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessAllocationConstraint()
 	 * @generated
 	 */
-	int PROCESS_ALLOCATION_CONSTRAINT = 246;
+	int PROCESS_ALLOCATION_CONSTRAINT = 255;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18887,7 +24953,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessPrototypeAllocationConstraint()
 	 * @generated
 	 */
-	int PROCESS_PROTOTYPE_ALLOCATION_CONSTRAINT = 247;
+	int PROCESS_PROTOTYPE_ALLOCATION_CONSTRAINT = 256;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18942,7 +25008,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableAllocationConstraint()
 	 * @generated
 	 */
-	int RUNNABLE_ALLOCATION_CONSTRAINT = 248;
+	int RUNNABLE_ALLOCATION_CONSTRAINT = 257;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -18997,7 +25063,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAbstractElementMappingConstraint()
 	 * @generated
 	 */
-	int ABSTRACT_ELEMENT_MAPPING_CONSTRAINT = 249;
+	int ABSTRACT_ELEMENT_MAPPING_CONSTRAINT = 258;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19052,7 +25118,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClassification()
 	 * @generated
 	 */
-	int CLASSIFICATION = 250;
+	int CLASSIFICATION = 259;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19107,7 +25173,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCoreClassification()
 	 * @generated
 	 */
-	int CORE_CLASSIFICATION = 251;
+	int CORE_CLASSIFICATION = 260;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19171,7 +25237,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryClassification()
 	 * @generated
 	 */
-	int MEMORY_CLASSIFICATION = 252;
+	int MEMORY_CLASSIFICATION = 261;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19235,7 +25301,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStimuliModel()
 	 * @generated
 	 */
-	int STIMULI_MODEL = 253;
+	int STIMULI_MODEL = 262;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19290,7 +25356,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStimulus()
 	 * @generated
 	 */
-	int STIMULUS = 254;
+	int STIMULUS = 263;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19311,6 +25377,15 @@
 	int STIMULUS__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -19365,6 +25440,15 @@
 	int STIMULUS_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -19374,13 +25458,49 @@
 	int STIMULUS___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STIMULUS___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STIMULUS___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -19408,7 +25528,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeValueList()
 	 * @generated
 	 */
-	int MODE_VALUE_LIST = 255;
+	int MODE_VALUE_LIST = 264;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19454,7 +25574,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeValueMapEntry()
 	 * @generated
 	 */
-	int MODE_VALUE_MAP_ENTRY = 256;
+	int MODE_VALUE_MAP_ENTRY = 265;
 
 	/**
 	 * The feature id for the '<em><b>Key</b></em>' reference.
@@ -19500,7 +25620,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeValue()
 	 * @generated
 	 */
-	int MODE_VALUE = 257;
+	int MODE_VALUE = 266;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19582,7 +25702,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeAssignment()
 	 * @generated
 	 */
-	int MODE_ASSIGNMENT = 258;
+	int MODE_ASSIGNMENT = 267;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19664,7 +25784,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeConditionDisjunction()
 	 * @generated
 	 */
-	int MODE_CONDITION_DISJUNCTION = 259;
+	int MODE_CONDITION_DISJUNCTION = 268;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19719,7 +25839,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeConditionDisjunctionEntry()
 	 * @generated
 	 */
-	int MODE_CONDITION_DISJUNCTION_ENTRY = 260;
+	int MODE_CONDITION_DISJUNCTION_ENTRY = 269;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19765,7 +25885,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeCondition()
 	 * @generated
 	 */
-	int MODE_CONDITION = 261;
+	int MODE_CONDITION = 270;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19820,7 +25940,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeValueCondition()
 	 * @generated
 	 */
-	int MODE_VALUE_CONDITION = 262;
+	int MODE_VALUE_CONDITION = 271;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19920,7 +26040,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeLabelCondition()
 	 * @generated
 	 */
-	int MODE_LABEL_CONDITION = 263;
+	int MODE_LABEL_CONDITION = 272;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -19993,7 +26113,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeConditionConjunction()
 	 * @generated
 	 */
-	int MODE_CONDITION_CONJUNCTION = 264;
+	int MODE_CONDITION_CONJUNCTION = 273;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20048,7 +26168,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFixedPeriodic()
 	 * @generated
 	 */
-	int FIXED_PERIODIC = 265;
+	int FIXED_PERIODIC = 274;
 
 	/**
 	 * The feature id for the '<em><b>Recurrence</b></em>' containment reference.
@@ -20094,7 +26214,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPeriodicStimulus()
 	 * @generated
 	 */
-	int PERIODIC_STIMULUS = 266;
+	int PERIODIC_STIMULUS = 275;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20115,6 +26235,15 @@
 	int PERIODIC_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20205,6 +26334,15 @@
 	int PERIODIC_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20214,13 +26352,49 @@
 	int PERIODIC_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PERIODIC_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int PERIODIC_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -20248,7 +26422,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRelativePeriodicStimulus()
 	 * @generated
 	 */
-	int RELATIVE_PERIODIC_STIMULUS = 267;
+	int RELATIVE_PERIODIC_STIMULUS = 276;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20269,6 +26443,15 @@
 	int RELATIVE_PERIODIC_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20341,6 +26524,15 @@
 	int RELATIVE_PERIODIC_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20350,13 +26542,49 @@
 	int RELATIVE_PERIODIC_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RELATIVE_PERIODIC_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int RELATIVE_PERIODIC_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RELATIVE_PERIODIC_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -20384,7 +26612,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getVariableRateStimulus()
 	 * @generated
 	 */
-	int VARIABLE_RATE_STIMULUS = 268;
+	int VARIABLE_RATE_STIMULUS = 277;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20405,6 +26633,15 @@
 	int VARIABLE_RATE_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20504,6 +26741,15 @@
 	int VARIABLE_RATE_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20513,13 +26759,49 @@
 	int VARIABLE_RATE_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_RATE_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int VARIABLE_RATE_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -20547,7 +26829,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getScenario()
 	 * @generated
 	 */
-	int SCENARIO = 269;
+	int SCENARIO = 278;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20611,7 +26893,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPeriodicSyntheticStimulus()
 	 * @generated
 	 */
-	int PERIODIC_SYNTHETIC_STIMULUS = 270;
+	int PERIODIC_SYNTHETIC_STIMULUS = 279;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20632,6 +26914,15 @@
 	int PERIODIC_SYNTHETIC_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20713,6 +27004,15 @@
 	int PERIODIC_SYNTHETIC_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20722,13 +27022,49 @@
 	int PERIODIC_SYNTHETIC_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PERIODIC_SYNTHETIC_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_SYNTHETIC_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -20756,7 +27092,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomStimulus()
 	 * @generated
 	 */
-	int CUSTOM_STIMULUS = 271;
+	int CUSTOM_STIMULUS = 280;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20777,6 +27113,15 @@
 	int CUSTOM_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20840,6 +27185,15 @@
 	int CUSTOM_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20849,13 +27203,49 @@
 	int CUSTOM_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int CUSTOM_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -20883,7 +27273,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSingleStimulus()
 	 * @generated
 	 */
-	int SINGLE_STIMULUS = 272;
+	int SINGLE_STIMULUS = 281;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -20904,6 +27294,15 @@
 	int SINGLE_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20967,6 +27366,15 @@
 	int SINGLE_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -20976,13 +27384,49 @@
 	int SINGLE_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SINGLE_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int SINGLE_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21010,7 +27454,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterProcessStimulus()
 	 * @generated
 	 */
-	int INTER_PROCESS_STIMULUS = 273;
+	int INTER_PROCESS_STIMULUS = 282;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21031,6 +27475,15 @@
 	int INTER_PROCESS_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21103,6 +27556,15 @@
 	int INTER_PROCESS_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21112,13 +27574,49 @@
 	int INTER_PROCESS_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int INTER_PROCESS_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21146,7 +27644,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPeriodicBurstStimulus()
 	 * @generated
 	 */
-	int PERIODIC_BURST_STIMULUS = 274;
+	int PERIODIC_BURST_STIMULUS = 283;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21167,6 +27665,15 @@
 	int PERIODIC_BURST_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21266,6 +27773,15 @@
 	int PERIODIC_BURST_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21275,13 +27791,49 @@
 	int PERIODIC_BURST_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PERIODIC_BURST_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int PERIODIC_BURST_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_BURST_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21309,7 +27861,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventStimulus()
 	 * @generated
 	 */
-	int EVENT_STIMULUS = 275;
+	int EVENT_STIMULUS = 284;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21330,6 +27882,15 @@
 	int EVENT_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21402,6 +27963,15 @@
 	int EVENT_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21411,13 +27981,49 @@
 	int EVENT_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int EVENT_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21445,7 +28051,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getArrivalCurveStimulus()
 	 * @generated
 	 */
-	int ARRIVAL_CURVE_STIMULUS = 276;
+	int ARRIVAL_CURVE_STIMULUS = 285;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21466,6 +28072,15 @@
 	int ARRIVAL_CURVE_STIMULUS__NAME = STIMULUS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS__QUALIFIED_NAME = STIMULUS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21529,6 +28144,15 @@
 	int ARRIVAL_CURVE_STIMULUS_FEATURE_COUNT = STIMULUS_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS___GET_NAMED_CONTAINER = STIMULUS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21538,13 +28162,49 @@
 	int ARRIVAL_CURVE_STIMULUS___GET_NAME_PREFIX = STIMULUS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ARRIVAL_CURVE_STIMULUS___ENCODE__STRING = STIMULUS___ENCODE__STRING;
+	int ARRIVAL_CURVE_STIMULUS___GET_QUALIFIED_NAME_SEGMENTS = STIMULUS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS___GET_DEFAULT_NAME_SEPARATOR = STIMULUS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS___GET_NAMESPACE = STIMULUS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS___GET_NAME_PREFIX_SEGMENTS = STIMULUS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ARRIVAL_CURVE_STIMULUS___GET_ENCODED_QUALIFIED_NAME = STIMULUS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21572,7 +28232,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getArrivalCurveEntry()
 	 * @generated
 	 */
-	int ARRIVAL_CURVE_ENTRY = 277;
+	int ARRIVAL_CURVE_ENTRY = 286;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21636,7 +28296,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClock()
 	 * @generated
 	 */
-	int CLOCK = 278;
+	int CLOCK = 287;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21657,6 +28317,15 @@
 	int CLOCK__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21675,6 +28344,15 @@
 	int CLOCK_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21684,13 +28362,49 @@
 	int CLOCK___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLOCK___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int CLOCK___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21718,7 +28432,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClockFunction()
 	 * @generated
 	 */
-	int CLOCK_FUNCTION = 279;
+	int CLOCK_FUNCTION = 288;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21739,6 +28453,15 @@
 	int CLOCK_FUNCTION__NAME = CLOCK__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION__QUALIFIED_NAME = CLOCK__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21802,6 +28525,15 @@
 	int CLOCK_FUNCTION_FEATURE_COUNT = CLOCK_FEATURE_COUNT + 5;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION___GET_NAMED_CONTAINER = CLOCK___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21811,13 +28543,49 @@
 	int CLOCK_FUNCTION___GET_NAME_PREFIX = CLOCK___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLOCK_FUNCTION___ENCODE__STRING = CLOCK___ENCODE__STRING;
+	int CLOCK_FUNCTION___GET_QUALIFIED_NAME_SEGMENTS = CLOCK___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION___GET_DEFAULT_NAME_SEPARATOR = CLOCK___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION___GET_NAMESPACE = CLOCK___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION___GET_NAME_PREFIX_SEGMENTS = CLOCK___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_FUNCTION___GET_ENCODED_QUALIFIED_NAME = CLOCK___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21845,7 +28613,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClockStepList()
 	 * @generated
 	 */
-	int CLOCK_STEP_LIST = 280;
+	int CLOCK_STEP_LIST = 289;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -21866,6 +28634,15 @@
 	int CLOCK_STEP_LIST__NAME = CLOCK__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST__QUALIFIED_NAME = CLOCK__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21902,6 +28679,15 @@
 	int CLOCK_STEP_LIST_FEATURE_COUNT = CLOCK_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST___GET_NAMED_CONTAINER = CLOCK___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -21911,13 +28697,49 @@
 	int CLOCK_STEP_LIST___GET_NAME_PREFIX = CLOCK___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CLOCK_STEP_LIST___ENCODE__STRING = CLOCK___ENCODE__STRING;
+	int CLOCK_STEP_LIST___GET_QUALIFIED_NAME_SEGMENTS = CLOCK___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST___GET_DEFAULT_NAME_SEPARATOR = CLOCK___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST___GET_NAMESPACE = CLOCK___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST___GET_NAME_PREFIX_SEGMENTS = CLOCK___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLOCK_STEP_LIST___GET_ENCODED_QUALIFIED_NAME = CLOCK___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -21945,7 +28767,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClockStep()
 	 * @generated
 	 */
-	int CLOCK_STEP = 281;
+	int CLOCK_STEP = 290;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22000,7 +28822,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSWModel()
 	 * @generated
 	 */
-	int SW_MODEL = 282;
+	int SW_MODEL = 291;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22172,7 +28994,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAbstractMemoryElement()
 	 * @generated
 	 */
-	int ABSTRACT_MEMORY_ELEMENT = 283;
+	int ABSTRACT_MEMORY_ELEMENT = 292;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22193,6 +29015,15 @@
 	int ABSTRACT_MEMORY_ELEMENT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22238,6 +29069,15 @@
 	int ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22247,13 +29087,49 @@
 	int ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -22281,7 +29157,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAbstractProcess()
 	 * @generated
 	 */
-	int ABSTRACT_PROCESS = 284;
+	int ABSTRACT_PROCESS = 293;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22302,6 +29178,15 @@
 	int ABSTRACT_PROCESS__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22356,6 +29241,15 @@
 	int ABSTRACT_PROCESS_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22365,13 +29259,49 @@
 	int ABSTRACT_PROCESS___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ABSTRACT_PROCESS___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int ABSTRACT_PROCESS___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ABSTRACT_PROCESS___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -22399,7 +29329,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomEntity()
 	 * @generated
 	 */
-	int CUSTOM_ENTITY = 285;
+	int CUSTOM_ENTITY = 294;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22420,6 +29350,15 @@
 	int CUSTOM_ENTITY__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22483,6 +29422,15 @@
 	int CUSTOM_ENTITY_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22492,13 +29440,49 @@
 	int CUSTOM_ENTITY___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_ENTITY___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int CUSTOM_ENTITY___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ENTITY___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -22526,7 +29510,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessChain()
 	 * @generated
 	 */
-	int PROCESS_CHAIN = 286;
+	int PROCESS_CHAIN = 295;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22547,6 +29531,15 @@
 	int PROCESS_CHAIN__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22574,6 +29567,15 @@
 	int PROCESS_CHAIN_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22583,13 +29585,49 @@
 	int PROCESS_CHAIN___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_CHAIN___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int PROCESS_CHAIN___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_CHAIN___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -22617,7 +29655,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcess()
 	 * @generated
 	 */
-	int PROCESS = 287;
+	int PROCESS = 296;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22638,6 +29676,15 @@
 	int PROCESS__NAME = ABSTRACT_PROCESS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS__QUALIFIED_NAME = ABSTRACT_PROCESS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22683,13 +29730,13 @@
 	int PROCESS__REFERRING_COMPONENTS = ABSTRACT_PROCESS__REFERRING_COMPONENTS;
 
 	/**
-	 * The feature id for the '<em><b>Call Graph</b></em>' containment reference.
+	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS__CALL_GRAPH = ABSTRACT_PROCESS_FEATURE_COUNT + 0;
+	int PROCESS__ACTIVITY_GRAPH = ABSTRACT_PROCESS_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Stimuli</b></em>' reference list.
@@ -22710,6 +29757,15 @@
 	int PROCESS_FEATURE_COUNT = ABSTRACT_PROCESS_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS___GET_NAMED_CONTAINER = ABSTRACT_PROCESS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -22719,13 +29775,49 @@
 	int PROCESS___GET_NAME_PREFIX = ABSTRACT_PROCESS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS___ENCODE__STRING = ABSTRACT_PROCESS___ENCODE__STRING;
+	int PROCESS___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_PROCESS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_PROCESS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS___GET_NAMESPACE = ABSTRACT_PROCESS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_PROCESS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_PROCESS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -22746,14 +29838,14 @@
 	int PROCESS_OPERATION_COUNT = ABSTRACT_PROCESS_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer <em>ICall Graph Item Container</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer <em>IActivity Graph Item Container</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer
-	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getICallGraphItemContainer()
+	 * @see org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIActivityGraphItemContainer()
 	 * @generated
 	 */
-	int ICALL_GRAPH_ITEM_CONTAINER = 288;
+	int IACTIVITY_GRAPH_ITEM_CONTAINER = 297;
 
 	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
@@ -22762,35 +29854,35 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ICALL_GRAPH_ITEM_CONTAINER__ITEMS = 0;
+	int IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS = 0;
 
 	/**
-	 * The number of structural features of the '<em>ICall Graph Item Container</em>' class.
+	 * The number of structural features of the '<em>IActivity Graph Item Container</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ICALL_GRAPH_ITEM_CONTAINER_FEATURE_COUNT = 1;
+	int IACTIVITY_GRAPH_ITEM_CONTAINER_FEATURE_COUNT = 1;
 
 	/**
-	 * The number of operations of the '<em>ICall Graph Item Container</em>' class.
+	 * The number of operations of the '<em>IActivity Graph Item Container</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ICALL_GRAPH_ITEM_CONTAINER_OPERATION_COUNT = 0;
+	int IACTIVITY_GRAPH_ITEM_CONTAINER_OPERATION_COUNT = 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.CallGraphImpl <em>Call Graph</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphImpl <em>Activity Graph</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.app4mc.amalthea.model.impl.CallGraphImpl
-	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCallGraph()
+	 * @see org.eclipse.app4mc.amalthea.model.impl.ActivityGraphImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getActivityGraph()
 	 * @generated
 	 */
-	int CALL_GRAPH = 289;
+	int ACTIVITY_GRAPH = 298;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22799,7 +29891,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH__CUSTOM_PROPERTIES = BASE_OBJECT__CUSTOM_PROPERTIES;
+	int ACTIVITY_GRAPH__CUSTOM_PROPERTIES = BASE_OBJECT__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
@@ -22808,35 +29900,35 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH__ITEMS = BASE_OBJECT_FEATURE_COUNT + 0;
+	int ACTIVITY_GRAPH__ITEMS = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
-	 * The number of structural features of the '<em>Call Graph</em>' class.
+	 * The number of structural features of the '<em>Activity Graph</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 1;
+	int ACTIVITY_GRAPH_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of operations of the '<em>Call Graph</em>' class.
+	 * The number of operations of the '<em>Activity Graph</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int ACTIVITY_GRAPH_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
-	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.CallGraphItemImpl <em>Call Graph Item</em>}' class.
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphItemImpl <em>Activity Graph Item</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see org.eclipse.app4mc.amalthea.model.impl.CallGraphItemImpl
-	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCallGraphItem()
+	 * @see org.eclipse.app4mc.amalthea.model.impl.ActivityGraphItemImpl
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getActivityGraphItem()
 	 * @generated
 	 */
-	int CALL_GRAPH_ITEM = 290;
+	int ACTIVITY_GRAPH_ITEM = 299;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22845,7 +29937,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_ITEM__CUSTOM_PROPERTIES = BASE_OBJECT__CUSTOM_PROPERTIES;
+	int ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES = BASE_OBJECT__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -22854,7 +29946,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_ITEM__CONTAINING_PROCESS = BASE_OBJECT_FEATURE_COUNT + 0;
+	int ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -22863,25 +29955,34 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_ITEM__CONTAINING_RUNNABLE = BASE_OBJECT_FEATURE_COUNT + 1;
+	int ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE = BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
-	 * The number of structural features of the '<em>Call Graph Item</em>' class.
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_ITEM_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
-	 * The number of operations of the '<em>Call Graph Item</em>' class.
+	 * The number of structural features of the '<em>Activity Graph Item</em>' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_GRAPH_ITEM_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int ACTIVITY_GRAPH_ITEM_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The number of operations of the '<em>Activity Graph Item</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVITY_GRAPH_ITEM_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchImpl <em>Mode Switch</em>}' class.
@@ -22891,7 +29992,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeSwitch()
 	 * @generated
 	 */
-	int MODE_SWITCH = 291;
+	int MODE_SWITCH = 300;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22900,7 +30001,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int MODE_SWITCH__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -22909,7 +30010,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int MODE_SWITCH__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -22918,7 +30019,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int MODE_SWITCH__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
@@ -22927,7 +30037,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH__ENTRIES = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int MODE_SWITCH__ENTRIES = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Default Entry</b></em>' containment reference.
@@ -22936,7 +30046,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH__DEFAULT_ENTRY = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int MODE_SWITCH__DEFAULT_ENTRY = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Mode Switch</em>' class.
@@ -22945,7 +30055,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int MODE_SWITCH_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Mode Switch</em>' class.
@@ -22954,7 +30064,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int MODE_SWITCH_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchEntryImpl <em>Mode Switch Entry</em>}' class.
@@ -22964,7 +30074,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeSwitchEntry()
 	 * @generated
 	 */
-	int MODE_SWITCH_ENTRY = 292;
+	int MODE_SWITCH_ENTRY = 301;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -22985,13 +30095,22 @@
 	int MODE_SWITCH_ENTRY__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_ENTRY__ITEMS = BASE_OBJECT_FEATURE_COUNT + 1;
+	int MODE_SWITCH_ENTRY__ITEMS = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Condition</b></em>' containment reference.
@@ -23000,7 +30119,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_ENTRY__CONDITION = BASE_OBJECT_FEATURE_COUNT + 2;
+	int MODE_SWITCH_ENTRY__CONDITION = BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Mode Switch Entry</em>' class.
@@ -23009,7 +30128,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_ENTRY_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+	int MODE_SWITCH_ENTRY_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_SWITCH_ENTRY___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Mode Switch Entry</em>' class.
@@ -23018,7 +30191,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_SWITCH_ENTRY_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int MODE_SWITCH_ENTRY_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchDefaultImpl <em>Mode Switch Default</em>}' class.
@@ -23028,7 +30201,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeSwitchDefault()
 	 * @generated
 	 */
-	int MODE_SWITCH_DEFAULT = 293;
+	int MODE_SWITCH_DEFAULT = 302;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23074,7 +30247,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProbabilitySwitch()
 	 * @generated
 	 */
-	int PROBABILITY_SWITCH = 294;
+	int PROBABILITY_SWITCH = 303;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23083,7 +30256,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int PROBABILITY_SWITCH__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23092,7 +30265,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int PROBABILITY_SWITCH__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23101,7 +30274,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int PROBABILITY_SWITCH__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROBABILITY_SWITCH__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Entries</b></em>' containment reference list.
@@ -23110,7 +30292,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH__ENTRIES = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int PROBABILITY_SWITCH__ENTRIES = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Probability Switch</em>' class.
@@ -23119,7 +30301,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int PROBABILITY_SWITCH_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Probability Switch</em>' class.
@@ -23128,7 +30310,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int PROBABILITY_SWITCH_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int PROBABILITY_SWITCH_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ProbabilitySwitchEntryImpl <em>Probability Switch Entry</em>}' class.
@@ -23138,7 +30320,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProbabilitySwitchEntry()
 	 * @generated
 	 */
-	int PROBABILITY_SWITCH_ENTRY = 295;
+	int PROBABILITY_SWITCH_ENTRY = 304;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23193,7 +30375,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCounter()
 	 * @generated
 	 */
-	int COUNTER = 296;
+	int COUNTER = 305;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23248,7 +30430,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getWaitEvent()
 	 * @generated
 	 */
-	int WAIT_EVENT = 297;
+	int WAIT_EVENT = 306;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23257,7 +30439,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int WAIT_EVENT__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23266,7 +30448,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int WAIT_EVENT__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23275,7 +30457,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int WAIT_EVENT__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int WAIT_EVENT__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Event Mask</b></em>' containment reference.
@@ -23284,7 +30475,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__EVENT_MASK = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int WAIT_EVENT__EVENT_MASK = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Mask Type</b></em>' attribute.
@@ -23293,7 +30484,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__MASK_TYPE = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int WAIT_EVENT__MASK_TYPE = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Waiting Behaviour</b></em>' attribute.
@@ -23302,7 +30493,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__WAITING_BEHAVIOUR = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int WAIT_EVENT__WAITING_BEHAVIOUR = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -23311,7 +30502,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int WAIT_EVENT__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Wait Event</em>' class.
@@ -23320,7 +30511,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 4;
+	int WAIT_EVENT_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of operations of the '<em>Wait Event</em>' class.
@@ -23329,7 +30520,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int WAIT_EVENT_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int WAIT_EVENT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SetEventImpl <em>Set Event</em>}' class.
@@ -23339,7 +30530,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSetEvent()
 	 * @generated
 	 */
-	int SET_EVENT = 298;
+	int SET_EVENT = 307;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23348,7 +30539,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int SET_EVENT__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23357,7 +30548,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int SET_EVENT__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23366,7 +30557,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int SET_EVENT__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SET_EVENT__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Event Mask</b></em>' containment reference.
@@ -23375,7 +30575,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__EVENT_MASK = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int SET_EVENT__EVENT_MASK = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Process</b></em>' reference.
@@ -23384,7 +30584,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__PROCESS = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int SET_EVENT__PROCESS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -23393,7 +30593,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int SET_EVENT__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Set Event</em>' class.
@@ -23402,7 +30602,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int SET_EVENT_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Set Event</em>' class.
@@ -23411,7 +30611,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SET_EVENT_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int SET_EVENT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ClearEventImpl <em>Clear Event</em>}' class.
@@ -23421,7 +30621,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getClearEvent()
 	 * @generated
 	 */
-	int CLEAR_EVENT = 299;
+	int CLEAR_EVENT = 308;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23430,7 +30630,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int CLEAR_EVENT__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23439,7 +30639,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int CLEAR_EVENT__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23448,7 +30648,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int CLEAR_EVENT__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CLEAR_EVENT__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Event Mask</b></em>' containment reference.
@@ -23457,7 +30666,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT__EVENT_MASK = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int CLEAR_EVENT__EVENT_MASK = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -23466,7 +30675,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int CLEAR_EVENT__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Clear Event</em>' class.
@@ -23475,7 +30684,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int CLEAR_EVENT_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Clear Event</em>' class.
@@ -23484,7 +30693,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CLEAR_EVENT_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int CLEAR_EVENT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.EventMaskImpl <em>Event Mask</em>}' class.
@@ -23494,7 +30703,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventMask()
 	 * @generated
 	 */
-	int EVENT_MASK = 300;
+	int EVENT_MASK = 309;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23540,7 +30749,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsEvent()
 	 * @generated
 	 */
-	int OS_EVENT = 301;
+	int OS_EVENT = 310;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23561,6 +30770,15 @@
 	int OS_EVENT__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -23606,6 +30824,15 @@
 	int OS_EVENT_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -23615,13 +30842,49 @@
 	int OS_EVENT___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int OS_EVENT___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int OS_EVENT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int OS_EVENT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -23649,7 +30912,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterProcessTrigger()
 	 * @generated
 	 */
-	int INTER_PROCESS_TRIGGER = 302;
+	int INTER_PROCESS_TRIGGER = 311;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23658,7 +30921,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int INTER_PROCESS_TRIGGER__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23667,7 +30930,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int INTER_PROCESS_TRIGGER__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23676,7 +30939,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int INTER_PROCESS_TRIGGER__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int INTER_PROCESS_TRIGGER__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Stimulus</b></em>' reference.
@@ -23685,7 +30957,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER__STIMULUS = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int INTER_PROCESS_TRIGGER__STIMULUS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -23694,7 +30966,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int INTER_PROCESS_TRIGGER__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Inter Process Trigger</em>' class.
@@ -23703,7 +30975,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int INTER_PROCESS_TRIGGER_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Inter Process Trigger</em>' class.
@@ -23712,7 +30984,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int INTER_PROCESS_TRIGGER_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int INTER_PROCESS_TRIGGER_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.EnforcedMigrationImpl <em>Enforced Migration</em>}' class.
@@ -23722,7 +30994,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEnforcedMigration()
 	 * @generated
 	 */
-	int ENFORCED_MIGRATION = 303;
+	int ENFORCED_MIGRATION = 312;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23731,7 +31003,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int ENFORCED_MIGRATION__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23740,7 +31012,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int ENFORCED_MIGRATION__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23749,7 +31021,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int ENFORCED_MIGRATION__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ENFORCED_MIGRATION__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Resource Owner</b></em>' reference.
@@ -23758,7 +31039,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION__RESOURCE_OWNER = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int ENFORCED_MIGRATION__RESOURCE_OWNER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Enforced Migration</em>' class.
@@ -23767,7 +31048,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int ENFORCED_MIGRATION_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Enforced Migration</em>' class.
@@ -23776,7 +31057,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int ENFORCED_MIGRATION_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int ENFORCED_MIGRATION_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SchedulePointImpl <em>Schedule Point</em>}' class.
@@ -23786,7 +31067,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSchedulePoint()
 	 * @generated
 	 */
-	int SCHEDULE_POINT = 304;
+	int SCHEDULE_POINT = 313;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23795,7 +31076,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_POINT__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int SCHEDULE_POINT__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23804,7 +31085,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_POINT__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int SCHEDULE_POINT__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23813,7 +31094,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_POINT__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int SCHEDULE_POINT__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SCHEDULE_POINT__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The number of structural features of the '<em>Schedule Point</em>' class.
@@ -23822,7 +31112,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_POINT_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int SCHEDULE_POINT_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Schedule Point</em>' class.
@@ -23831,7 +31121,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SCHEDULE_POINT_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int SCHEDULE_POINT_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.TerminateProcessImpl <em>Terminate Process</em>}' class.
@@ -23841,7 +31131,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTerminateProcess()
 	 * @generated
 	 */
-	int TERMINATE_PROCESS = 305;
+	int TERMINATE_PROCESS = 314;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23850,7 +31140,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int TERMINATE_PROCESS__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -23859,7 +31149,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int TERMINATE_PROCESS__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -23868,7 +31158,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int TERMINATE_PROCESS__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TERMINATE_PROCESS__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -23877,7 +31176,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int TERMINATE_PROCESS__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Terminate Process</em>' class.
@@ -23886,7 +31185,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int TERMINATE_PROCESS_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Terminate Process</em>' class.
@@ -23895,7 +31194,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TERMINATE_PROCESS_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int TERMINATE_PROCESS_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.TaskImpl <em>Task</em>}' class.
@@ -23905,7 +31204,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTask()
 	 * @generated
 	 */
-	int TASK = 306;
+	int TASK = 315;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -23926,6 +31225,15 @@
 	int TASK__NAME = PROCESS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK__QUALIFIED_NAME = PROCESS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -23971,13 +31279,13 @@
 	int TASK__REFERRING_COMPONENTS = PROCESS__REFERRING_COMPONENTS;
 
 	/**
-	 * The feature id for the '<em><b>Call Graph</b></em>' containment reference.
+	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TASK__CALL_GRAPH = PROCESS__CALL_GRAPH;
+	int TASK__ACTIVITY_GRAPH = PROCESS__ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Stimuli</b></em>' reference list.
@@ -24016,6 +31324,15 @@
 	int TASK_FEATURE_COUNT = PROCESS_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK___GET_NAMED_CONTAINER = PROCESS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24025,13 +31342,49 @@
 	int TASK___GET_NAME_PREFIX = PROCESS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TASK___ENCODE__STRING = PROCESS___ENCODE__STRING;
+	int TASK___GET_QUALIFIED_NAME_SEGMENTS = PROCESS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK___GET_DEFAULT_NAME_SEPARATOR = PROCESS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK___GET_NAMESPACE = PROCESS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK___GET_NAME_PREFIX_SEGMENTS = PROCESS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TASK___GET_ENCODED_QUALIFIED_NAME = PROCESS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -24059,7 +31412,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getISR()
 	 * @generated
 	 */
-	int ISR = 307;
+	int ISR = 316;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24080,6 +31433,15 @@
 	int ISR__NAME = PROCESS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR__QUALIFIED_NAME = PROCESS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24125,13 +31487,13 @@
 	int ISR__REFERRING_COMPONENTS = PROCESS__REFERRING_COMPONENTS;
 
 	/**
-	 * The feature id for the '<em><b>Call Graph</b></em>' containment reference.
+	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ISR__CALL_GRAPH = PROCESS__CALL_GRAPH;
+	int ISR__ACTIVITY_GRAPH = PROCESS__ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Stimuli</b></em>' reference list.
@@ -24161,6 +31523,15 @@
 	int ISR_FEATURE_COUNT = PROCESS_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR___GET_NAMED_CONTAINER = PROCESS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24170,13 +31541,49 @@
 	int ISR___GET_NAME_PREFIX = PROCESS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ISR___ENCODE__STRING = PROCESS___ENCODE__STRING;
+	int ISR___GET_QUALIFIED_NAME_SEGMENTS = PROCESS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR___GET_DEFAULT_NAME_SEPARATOR = PROCESS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR___GET_NAMESPACE = PROCESS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR___GET_NAME_PREFIX_SEGMENTS = PROCESS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ISR___GET_ENCODED_QUALIFIED_NAME = PROCESS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -24204,7 +31611,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessPrototype()
 	 * @generated
 	 */
-	int PROCESS_PROTOTYPE = 308;
+	int PROCESS_PROTOTYPE = 317;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24225,6 +31632,15 @@
 	int PROCESS_PROTOTYPE__NAME = ABSTRACT_PROCESS__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE__QUALIFIED_NAME = ABSTRACT_PROCESS__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24351,6 +31767,15 @@
 	int PROCESS_PROTOTYPE_FEATURE_COUNT = ABSTRACT_PROCESS_FEATURE_COUNT + 8;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE___GET_NAMED_CONTAINER = ABSTRACT_PROCESS___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24360,13 +31785,49 @@
 	int PROCESS_PROTOTYPE___GET_NAME_PREFIX = ABSTRACT_PROCESS___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PROCESS_PROTOTYPE___ENCODE__STRING = ABSTRACT_PROCESS___ENCODE__STRING;
+	int PROCESS_PROTOTYPE___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_PROCESS___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_PROCESS___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE___GET_NAMESPACE = ABSTRACT_PROCESS___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_PROCESS___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PROCESS_PROTOTYPE___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_PROCESS___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -24394,7 +31855,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChainedProcessPrototype()
 	 * @generated
 	 */
-	int CHAINED_PROCESS_PROTOTYPE = 309;
+	int CHAINED_PROCESS_PROTOTYPE = 318;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24458,7 +31919,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getGeneralPrecedence()
 	 * @generated
 	 */
-	int GENERAL_PRECEDENCE = 310;
+	int GENERAL_PRECEDENCE = 319;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24513,7 +31974,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAccessPrecedenceSpec()
 	 * @generated
 	 */
-	int ACCESS_PRECEDENCE_SPEC = 311;
+	int ACCESS_PRECEDENCE_SPEC = 320;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24586,7 +32047,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOrderPrecedenceSpec()
 	 * @generated
 	 */
-	int ORDER_PRECEDENCE_SPEC = 312;
+	int ORDER_PRECEDENCE_SPEC = 321;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24643,6 +32104,43 @@
 	int ORDER_PRECEDENCE_SPEC_OPERATION_COUNT = GENERAL_PRECEDENCE_OPERATION_COUNT + 0;
 
 	/**
+	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.IDependsOn <em>IDepends On</em>}' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see org.eclipse.app4mc.amalthea.model.IDependsOn
+	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getIDependsOn()
+	 * @generated
+	 */
+	int IDEPENDS_ON = 322;
+
+	/**
+	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDEPENDS_ON__DEPENDS_ON = 0;
+
+	/**
+	 * The number of structural features of the '<em>IDepends On</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDEPENDS_ON_FEATURE_COUNT = 1;
+
+	/**
+	 * The number of operations of the '<em>IDepends On</em>' class.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int IDEPENDS_ON_OPERATION_COUNT = 0;
+
+	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.DataDependencyImpl <em>Data Dependency</em>}' class.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24650,7 +32148,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataDependency()
 	 * @generated
 	 */
-	int DATA_DEPENDENCY = 313;
+	int DATA_DEPENDENCY = 323;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24723,7 +32221,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableParameter()
 	 * @generated
 	 */
-	int RUNNABLE_PARAMETER = 314;
+	int RUNNABLE_PARAMETER = 324;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24744,6 +32242,15 @@
 	int RUNNABLE_PARAMETER__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24753,13 +32260,22 @@
 	int RUNNABLE_PARAMETER__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
 
 	/**
+	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER__DEPENDS_ON = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PARAMETER__CONTAINING_RUNNABLE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+	int RUNNABLE_PARAMETER__CONTAINING_RUNNABLE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Direction</b></em>' attribute.
@@ -24768,7 +32284,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PARAMETER__DIRECTION = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+	int RUNNABLE_PARAMETER__DIRECTION = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Data Type</b></em>' reference.
@@ -24777,16 +32293,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PARAMETER__DATA_TYPE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
-
-	/**
-	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int RUNNABLE_PARAMETER__DEPENDS_ON = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
+	int RUNNABLE_PARAMETER__DATA_TYPE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Runnable Parameter</em>' class.
@@ -24798,13 +32305,58 @@
 	int RUNNABLE_PARAMETER_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 4;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Named Container</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PARAMETER___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int RUNNABLE_PARAMETER___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_PARAMETER___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -24816,13 +32368,13 @@
 	int RUNNABLE_PARAMETER___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 
 	/**
-	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_PARAMETER___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
+	int RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
 	 * The operation id for the '<em>To String</em>' operation.
@@ -24850,7 +32402,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnable()
 	 * @generated
 	 */
-	int RUNNABLE = 315;
+	int RUNNABLE = 325;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -24871,6 +32423,15 @@
 	int RUNNABLE__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -24907,13 +32468,22 @@
 	int RUNNABLE__MAPPINGS = ABSTRACT_MEMORY_ELEMENT__MAPPINGS;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE__NAMESPACE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Execution Condition</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__EXECUTION_CONDITION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
+	int RUNNABLE__EXECUTION_CONDITION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Parameters</b></em>' containment reference list.
@@ -24922,16 +32492,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__PARAMETERS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+	int RUNNABLE__PARAMETERS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
-	 * The feature id for the '<em><b>Call Graph</b></em>' containment reference.
+	 * The feature id for the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__CALL_GRAPH = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
+	int RUNNABLE__ACTIVITY_GRAPH = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Activations</b></em>' reference list.
@@ -24940,7 +32510,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__ACTIVATIONS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
+	int RUNNABLE__ACTIVATIONS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Callback</b></em>' attribute.
@@ -24949,7 +32519,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__CALLBACK = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
+	int RUNNABLE__CALLBACK = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Service</b></em>' attribute.
@@ -24958,7 +32528,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__SERVICE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
+	int RUNNABLE__SERVICE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Asil Level</b></em>' attribute.
@@ -24967,7 +32537,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__ASIL_LEVEL = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 6;
+	int RUNNABLE__ASIL_LEVEL = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Section</b></em>' reference.
@@ -24976,7 +32546,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__SECTION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 7;
+	int RUNNABLE__SECTION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Runnable Calls</b></em>' reference list.
@@ -24985,7 +32555,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__RUNNABLE_CALLS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 8;
+	int RUNNABLE__RUNNABLE_CALLS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The feature id for the '<em><b>Referring Components</b></em>' reference list.
@@ -24994,7 +32564,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE__REFERRING_COMPONENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 9;
+	int RUNNABLE__REFERRING_COMPONENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 10;
 
 	/**
 	 * The number of structural features of the '<em>Runnable</em>' class.
@@ -25003,7 +32573,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 10;
+	int RUNNABLE_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 11;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -25015,13 +32594,49 @@
 	int RUNNABLE___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int RUNNABLE___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -25067,7 +32682,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabel()
 	 * @generated
 	 */
-	int LABEL = 316;
+	int LABEL = 326;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25088,6 +32703,15 @@
 	int LABEL__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25133,13 +32757,22 @@
 	int LABEL__DISPLAY_NAME = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL__NAMESPACE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Data Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__DATA_TYPE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+	int LABEL__DATA_TYPE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Constant</b></em>' attribute.
@@ -25148,7 +32781,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__CONSTANT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
+	int LABEL__CONSTANT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>BVolatile</b></em>' attribute.
@@ -25157,7 +32790,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__BVOLATILE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
+	int LABEL__BVOLATILE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Data Stability</b></em>' attribute.
@@ -25166,7 +32799,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__DATA_STABILITY = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
+	int LABEL__DATA_STABILITY = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Stability Level</b></em>' attribute.
@@ -25175,7 +32808,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__STABILITY_LEVEL = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
+	int LABEL__STABILITY_LEVEL = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Section</b></em>' reference.
@@ -25184,7 +32817,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__SECTION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 6;
+	int LABEL__SECTION = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 7;
 
 	/**
 	 * The feature id for the '<em><b>Label Accesses</b></em>' reference list.
@@ -25193,7 +32826,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__LABEL_ACCESSES = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 7;
+	int LABEL__LABEL_ACCESSES = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 8;
 
 	/**
 	 * The feature id for the '<em><b>Referring Components</b></em>' reference list.
@@ -25202,7 +32835,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL__REFERRING_COMPONENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 8;
+	int LABEL__REFERRING_COMPONENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 9;
 
 	/**
 	 * The number of structural features of the '<em>Label</em>' class.
@@ -25211,7 +32844,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 9;
+	int LABEL_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 10;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -25223,13 +32865,49 @@
 	int LABEL___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int LABEL___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -25257,7 +32935,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannel()
 	 * @generated
 	 */
-	int CHANNEL = 317;
+	int CHANNEL = 327;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25278,6 +32956,15 @@
 	int CHANNEL__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25323,13 +33010,22 @@
 	int CHANNEL__DISPLAY_NAME = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL__NAMESPACE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Element Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL__ELEMENT_TYPE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 1;
+	int CHANNEL__ELEMENT_TYPE = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Default Elements</b></em>' attribute.
@@ -25338,7 +33034,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL__DEFAULT_ELEMENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 2;
+	int CHANNEL__DEFAULT_ELEMENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Max Elements</b></em>' attribute.
@@ -25347,7 +33043,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL__MAX_ELEMENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
+	int CHANNEL__MAX_ELEMENTS = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Channel Accesses</b></em>' reference list.
@@ -25356,7 +33052,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL__CHANNEL_ACCESSES = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 4;
+	int CHANNEL__CHANNEL_ACCESSES = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of structural features of the '<em>Channel</em>' class.
@@ -25365,7 +33061,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 5;
+	int CHANNEL_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 6;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -25377,13 +33082,49 @@
 	int CHANNEL___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int CHANNEL___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -25411,7 +33152,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeLabel()
 	 * @generated
 	 */
-	int MODE_LABEL = 318;
+	int MODE_LABEL = 328;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25432,6 +33173,15 @@
 	int MODE_LABEL__NAME = ABSTRACT_MEMORY_ELEMENT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL__QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25504,6 +33254,15 @@
 	int MODE_LABEL_FEATURE_COUNT = ABSTRACT_MEMORY_ELEMENT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL___GET_NAMED_CONTAINER = ABSTRACT_MEMORY_ELEMENT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25513,13 +33272,49 @@
 	int MODE_LABEL___GET_NAME_PREFIX = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL___ENCODE__STRING = ABSTRACT_MEMORY_ELEMENT___ENCODE__STRING;
+	int MODE_LABEL___GET_QUALIFIED_NAME_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL___GET_DEFAULT_NAME_SEPARATOR = ABSTRACT_MEMORY_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL___GET_NAMESPACE = ABSTRACT_MEMORY_ELEMENT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL___GET_NAME_PREFIX_SEGMENTS = ABSTRACT_MEMORY_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL___GET_ENCODED_QUALIFIED_NAME = ABSTRACT_MEMORY_ELEMENT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -25565,7 +33360,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSection()
 	 * @generated
 	 */
-	int SECTION = 319;
+	int SECTION = 329;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25586,6 +33381,15 @@
 	int SECTION__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25631,6 +33435,15 @@
 	int SECTION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25640,13 +33453,49 @@
 	int SECTION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SECTION___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int SECTION___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SECTION___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -25674,7 +33523,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComputationItem()
 	 * @generated
 	 */
-	int COMPUTATION_ITEM = 320;
+	int COMPUTATION_ITEM = 330;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25683,7 +33532,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPUTATION_ITEM__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int COMPUTATION_ITEM__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -25692,7 +33541,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPUTATION_ITEM__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int COMPUTATION_ITEM__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -25701,7 +33550,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPUTATION_ITEM__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int COMPUTATION_ITEM__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int COMPUTATION_ITEM__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The number of structural features of the '<em>Computation Item</em>' class.
@@ -25710,7 +33568,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPUTATION_ITEM_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int COMPUTATION_ITEM_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Computation Item</em>' class.
@@ -25719,7 +33577,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int COMPUTATION_ITEM_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int COMPUTATION_ITEM_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ExecutionNeedImpl <em>Execution Need</em>}' class.
@@ -25729,7 +33587,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getExecutionNeed()
 	 * @generated
 	 */
-	int EXECUTION_NEED = 321;
+	int EXECUTION_NEED = 331;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25738,7 +33596,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int EXECUTION_NEED__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -25747,7 +33605,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int EXECUTION_NEED__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -25756,7 +33614,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int EXECUTION_NEED__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EXECUTION_NEED__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Needs</b></em>' map.
@@ -25765,7 +33632,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED__NEEDS = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int EXECUTION_NEED__NEEDS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Execution Need</em>' class.
@@ -25774,7 +33641,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int EXECUTION_NEED_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Execution Need</em>' class.
@@ -25783,7 +33650,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int EXECUTION_NEED_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int EXECUTION_NEED_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.NeedEntryImpl <em>Need Entry</em>}' class.
@@ -25793,7 +33660,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNeedEntry()
 	 * @generated
 	 */
-	int NEED_ENTRY = 322;
+	int NEED_ENTRY = 332;
 
 	/**
 	 * The feature id for the '<em><b>Key</b></em>' attribute.
@@ -25839,7 +33706,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTicks()
 	 * @generated
 	 */
-	int TICKS = 323;
+	int TICKS = 333;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25869,6 +33736,15 @@
 	int TICKS__CONTAINING_RUNNABLE = COMPUTATION_ITEM__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TICKS__CONTAINING_ACTIVITY_GRAPH = COMPUTATION_ITEM__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Default</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -25912,7 +33788,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTicksEntry()
 	 * @generated
 	 */
-	int TICKS_ENTRY = 324;
+	int TICKS_ENTRY = 334;
 
 	/**
 	 * The feature id for the '<em><b>Key</b></em>' reference.
@@ -25958,7 +33834,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeLabelAccess()
 	 * @generated
 	 */
-	int MODE_LABEL_ACCESS = 325;
+	int MODE_LABEL_ACCESS = 335;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -25967,7 +33843,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int MODE_LABEL_ACCESS__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -25976,7 +33852,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int MODE_LABEL_ACCESS__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -25985,7 +33861,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int MODE_LABEL_ACCESS__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int MODE_LABEL_ACCESS__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Data</b></em>' reference.
@@ -25994,7 +33879,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__DATA = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int MODE_LABEL_ACCESS__DATA = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Access</b></em>' attribute.
@@ -26003,7 +33888,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__ACCESS = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int MODE_LABEL_ACCESS__ACCESS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Value</b></em>' attribute.
@@ -26012,7 +33897,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__VALUE = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int MODE_LABEL_ACCESS__VALUE = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Step</b></em>' attribute.
@@ -26021,7 +33906,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS__STEP = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int MODE_LABEL_ACCESS__STEP = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Mode Label Access</em>' class.
@@ -26030,7 +33915,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 4;
+	int MODE_LABEL_ACCESS_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 4;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -26039,7 +33924,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int MODE_LABEL_ACCESS___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The number of operations of the '<em>Mode Label Access</em>' class.
@@ -26048,7 +33933,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int MODE_LABEL_ACCESS_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 1;
+	int MODE_LABEL_ACCESS_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 1;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl <em>Label Access</em>}' class.
@@ -26058,7 +33943,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelAccess()
 	 * @generated
 	 */
-	int LABEL_ACCESS = 326;
+	int LABEL_ACCESS = 336;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26088,6 +33973,15 @@
 	int LABEL_ACCESS__CONTAINING_RUNNABLE = COMPUTATION_ITEM__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_ACCESS__CONTAINING_ACTIVITY_GRAPH = COMPUTATION_ITEM__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Tags</b></em>' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26097,13 +33991,22 @@
 	int LABEL_ACCESS__TAGS = COMPUTATION_ITEM_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int LABEL_ACCESS__DEPENDS_ON = COMPUTATION_ITEM_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__DATA = COMPUTATION_ITEM_FEATURE_COUNT + 1;
+	int LABEL_ACCESS__DATA = COMPUTATION_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Access</b></em>' attribute.
@@ -26112,7 +34015,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__ACCESS = COMPUTATION_ITEM_FEATURE_COUNT + 2;
+	int LABEL_ACCESS__ACCESS = COMPUTATION_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Statistic</b></em>' containment reference.
@@ -26121,7 +34024,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__STATISTIC = COMPUTATION_ITEM_FEATURE_COUNT + 3;
+	int LABEL_ACCESS__STATISTIC = COMPUTATION_ITEM_FEATURE_COUNT + 4;
 
 	/**
 	 * The feature id for the '<em><b>Transmission Policy</b></em>' containment reference.
@@ -26130,7 +34033,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__TRANSMISSION_POLICY = COMPUTATION_ITEM_FEATURE_COUNT + 4;
+	int LABEL_ACCESS__TRANSMISSION_POLICY = COMPUTATION_ITEM_FEATURE_COUNT + 5;
 
 	/**
 	 * The feature id for the '<em><b>Data Stability</b></em>' attribute.
@@ -26139,7 +34042,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__DATA_STABILITY = COMPUTATION_ITEM_FEATURE_COUNT + 5;
+	int LABEL_ACCESS__DATA_STABILITY = COMPUTATION_ITEM_FEATURE_COUNT + 6;
 
 	/**
 	 * The feature id for the '<em><b>Implementation</b></em>' attribute.
@@ -26148,16 +34051,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int LABEL_ACCESS__IMPLEMENTATION = COMPUTATION_ITEM_FEATURE_COUNT + 6;
-
-	/**
-	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int LABEL_ACCESS__DEPENDS_ON = COMPUTATION_ITEM_FEATURE_COUNT + 7;
+	int LABEL_ACCESS__IMPLEMENTATION = COMPUTATION_ITEM_FEATURE_COUNT + 7;
 
 	/**
 	 * The number of structural features of the '<em>Label Access</em>' class.
@@ -26185,7 +34079,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannelAccess()
 	 * @generated
 	 */
-	int CHANNEL_ACCESS = 327;
+	int CHANNEL_ACCESS = 337;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26194,7 +34088,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int CHANNEL_ACCESS__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -26203,7 +34097,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int CHANNEL_ACCESS__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -26212,7 +34106,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int CHANNEL_ACCESS__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_ACCESS__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Data</b></em>' reference.
@@ -26221,7 +34124,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__DATA = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int CHANNEL_ACCESS__DATA = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Elements</b></em>' attribute.
@@ -26230,7 +34133,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__ELEMENTS = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int CHANNEL_ACCESS__ELEMENTS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Transmission Policy</b></em>' containment reference.
@@ -26239,7 +34142,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS__TRANSMISSION_POLICY = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int CHANNEL_ACCESS__TRANSMISSION_POLICY = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Channel Access</em>' class.
@@ -26248,7 +34151,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int CHANNEL_ACCESS_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Channel Access</em>' class.
@@ -26257,7 +34160,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CHANNEL_ACCESS_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int CHANNEL_ACCESS_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ChannelSendImpl <em>Channel Send</em>}' class.
@@ -26267,7 +34170,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannelSend()
 	 * @generated
 	 */
-	int CHANNEL_SEND = 328;
+	int CHANNEL_SEND = 338;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26297,6 +34200,15 @@
 	int CHANNEL_SEND__CONTAINING_RUNNABLE = CHANNEL_ACCESS__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_SEND__CONTAINING_ACTIVITY_GRAPH = CHANNEL_ACCESS__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26349,7 +34261,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannelReceive()
 	 * @generated
 	 */
-	int CHANNEL_RECEIVE = 329;
+	int CHANNEL_RECEIVE = 339;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26379,6 +34291,15 @@
 	int CHANNEL_RECEIVE__CONTAINING_RUNNABLE = CHANNEL_ACCESS__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CHANNEL_RECEIVE__CONTAINING_ACTIVITY_GRAPH = CHANNEL_ACCESS__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26467,7 +34388,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphoreAccess()
 	 * @generated
 	 */
-	int SEMAPHORE_ACCESS = 330;
+	int SEMAPHORE_ACCESS = 340;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26476,7 +34397,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int SEMAPHORE_ACCESS__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -26485,7 +34406,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int SEMAPHORE_ACCESS__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -26494,7 +34415,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int SEMAPHORE_ACCESS__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SEMAPHORE_ACCESS__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Semaphore</b></em>' reference.
@@ -26503,7 +34433,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__SEMAPHORE = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int SEMAPHORE_ACCESS__SEMAPHORE = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Access</b></em>' attribute.
@@ -26512,7 +34442,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__ACCESS = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int SEMAPHORE_ACCESS__ACCESS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Waiting Behaviour</b></em>' attribute.
@@ -26521,7 +34451,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS__WAITING_BEHAVIOUR = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int SEMAPHORE_ACCESS__WAITING_BEHAVIOUR = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Semaphore Access</em>' class.
@@ -26530,7 +34460,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int SEMAPHORE_ACCESS_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Semaphore Access</em>' class.
@@ -26539,7 +34469,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SEMAPHORE_ACCESS_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int SEMAPHORE_ACCESS_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SenderReceiverCommunicationImpl <em>Sender Receiver Communication</em>}' class.
@@ -26549,7 +34479,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSenderReceiverCommunication()
 	 * @generated
 	 */
-	int SENDER_RECEIVER_COMMUNICATION = 331;
+	int SENDER_RECEIVER_COMMUNICATION = 341;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26558,7 +34488,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int SENDER_RECEIVER_COMMUNICATION__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -26567,7 +34497,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int SENDER_RECEIVER_COMMUNICATION__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -26576,7 +34506,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int SENDER_RECEIVER_COMMUNICATION__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SENDER_RECEIVER_COMMUNICATION__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Buffered</b></em>' attribute.
@@ -26585,7 +34524,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__BUFFERED = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int SENDER_RECEIVER_COMMUNICATION__BUFFERED = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Label</b></em>' reference.
@@ -26594,7 +34533,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__LABEL = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int SENDER_RECEIVER_COMMUNICATION__LABEL = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Port</b></em>' reference.
@@ -26603,7 +34542,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION__PORT = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int SENDER_RECEIVER_COMMUNICATION__PORT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Sender Receiver Communication</em>' class.
@@ -26612,7 +34551,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int SENDER_RECEIVER_COMMUNICATION_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of operations of the '<em>Sender Receiver Communication</em>' class.
@@ -26621,7 +34560,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SENDER_RECEIVER_COMMUNICATION_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int SENDER_RECEIVER_COMMUNICATION_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SenderReceiverReadImpl <em>Sender Receiver Read</em>}' class.
@@ -26631,7 +34570,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSenderReceiverRead()
 	 * @generated
 	 */
-	int SENDER_RECEIVER_READ = 332;
+	int SENDER_RECEIVER_READ = 342;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26661,6 +34600,15 @@
 	int SENDER_RECEIVER_READ__CONTAINING_RUNNABLE = SENDER_RECEIVER_COMMUNICATION__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SENDER_RECEIVER_READ__CONTAINING_ACTIVITY_GRAPH = SENDER_RECEIVER_COMMUNICATION__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Buffered</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26713,7 +34661,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSenderReceiverWrite()
 	 * @generated
 	 */
-	int SENDER_RECEIVER_WRITE = 333;
+	int SENDER_RECEIVER_WRITE = 343;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26743,6 +34691,15 @@
 	int SENDER_RECEIVER_WRITE__CONTAINING_RUNNABLE = SENDER_RECEIVER_COMMUNICATION__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SENDER_RECEIVER_WRITE__CONTAINING_ACTIVITY_GRAPH = SENDER_RECEIVER_COMMUNICATION__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Buffered</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26804,7 +34761,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getServerCall()
 	 * @generated
 	 */
-	int SERVER_CALL = 334;
+	int SERVER_CALL = 344;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26813,7 +34770,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int SERVER_CALL__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -26822,7 +34779,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int SERVER_CALL__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -26831,7 +34788,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int SERVER_CALL__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SERVER_CALL__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Server Runnable</b></em>' reference.
@@ -26840,7 +34806,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL__SERVER_RUNNABLE = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int SERVER_CALL__SERVER_RUNNABLE = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Port</b></em>' reference.
@@ -26849,7 +34815,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL__PORT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int SERVER_CALL__PORT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Server Call</em>' class.
@@ -26858,7 +34824,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int SERVER_CALL_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of operations of the '<em>Server Call</em>' class.
@@ -26867,7 +34833,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int SERVER_CALL_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int SERVER_CALL_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.SynchronousServerCallImpl <em>Synchronous Server Call</em>}' class.
@@ -26877,7 +34843,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSynchronousServerCall()
 	 * @generated
 	 */
-	int SYNCHRONOUS_SERVER_CALL = 335;
+	int SYNCHRONOUS_SERVER_CALL = 345;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26907,6 +34873,15 @@
 	int SYNCHRONOUS_SERVER_CALL__CONTAINING_RUNNABLE = SERVER_CALL__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SYNCHRONOUS_SERVER_CALL__CONTAINING_ACTIVITY_GRAPH = SERVER_CALL__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Server Runnable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -26959,7 +34934,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAsynchronousServerCall()
 	 * @generated
 	 */
-	int ASYNCHRONOUS_SERVER_CALL = 336;
+	int ASYNCHRONOUS_SERVER_CALL = 346;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -26989,6 +34964,15 @@
 	int ASYNCHRONOUS_SERVER_CALL__CONTAINING_RUNNABLE = SERVER_CALL__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ASYNCHRONOUS_SERVER_CALL__CONTAINING_ACTIVITY_GRAPH = SERVER_CALL__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Server Runnable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27041,7 +35025,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getGetResultServerCall()
 	 * @generated
 	 */
-	int GET_RESULT_SERVER_CALL = 337;
+	int GET_RESULT_SERVER_CALL = 347;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27071,6 +35055,15 @@
 	int GET_RESULT_SERVER_CALL__CONTAINING_RUNNABLE = SERVER_CALL__CONTAINING_RUNNABLE;
 
 	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GET_RESULT_SERVER_CALL__CONTAINING_ACTIVITY_GRAPH = SERVER_CALL__CONTAINING_ACTIVITY_GRAPH;
+
+	/**
 	 * The feature id for the '<em><b>Server Runnable</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27123,7 +35116,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getGroup()
 	 * @generated
 	 */
-	int GROUP = 338;
+	int GROUP = 348;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27132,7 +35125,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int GROUP__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -27141,7 +35134,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int GROUP__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -27150,7 +35143,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int GROUP__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -27159,7 +35161,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__NAME = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int GROUP__NAME = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
+
+	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP__QUALIFIED_NAME = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Items</b></em>' containment reference list.
@@ -27168,7 +35179,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__ITEMS = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int GROUP__ITEMS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Ordered</b></em>' attribute.
@@ -27177,7 +35188,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP__ORDERED = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int GROUP__ORDERED = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The number of structural features of the '<em>Group</em>' class.
@@ -27186,7 +35197,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int GROUP_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_NAMED_CONTAINER = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_NAME_PREFIX = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_QUALIFIED_NAME_SEGMENTS = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_DEFAULT_NAME_SEPARATOR = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_NAMESPACE = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int GROUP___GET_NAME_PREFIX_SEGMENTS = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Group</em>' class.
@@ -27195,7 +35260,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int GROUP_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int GROUP_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.CallArgumentImpl <em>Call Argument</em>}' class.
@@ -27205,7 +35270,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCallArgument()
 	 * @generated
 	 */
-	int CALL_ARGUMENT = 339;
+	int CALL_ARGUMENT = 349;
 
 	/**
 	 * The feature id for the '<em><b>Name</b></em>' attribute.
@@ -27217,6 +35282,15 @@
 	int CALL_ARGUMENT__NAME = REFERABLE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT__QUALIFIED_NAME = REFERABLE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27226,13 +35300,22 @@
 	int CALL_ARGUMENT__UNIQUE_NAME = REFERABLE_OBJECT__UNIQUE_NAME;
 
 	/**
+	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT__DEPENDS_ON = REFERABLE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Containing Call</b></em>' container reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ARGUMENT__CONTAINING_CALL = REFERABLE_OBJECT_FEATURE_COUNT + 0;
+	int CALL_ARGUMENT__CONTAINING_CALL = REFERABLE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Parameter</b></em>' reference.
@@ -27241,16 +35324,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ARGUMENT__PARAMETER = REFERABLE_OBJECT_FEATURE_COUNT + 1;
-
-	/**
-	 * The feature id for the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 * @ordered
-	 */
-	int CALL_ARGUMENT__DEPENDS_ON = REFERABLE_OBJECT_FEATURE_COUNT + 2;
+	int CALL_ARGUMENT__PARAMETER = REFERABLE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Call Argument</em>' class.
@@ -27262,6 +35336,15 @@
 	int CALL_ARGUMENT_FEATURE_COUNT = REFERABLE_OBJECT_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT___GET_NAMED_CONTAINER = REFERABLE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27271,13 +35354,40 @@
 	int CALL_ARGUMENT___GET_NAME_PREFIX = REFERABLE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ARGUMENT___ENCODE__STRING = REFERABLE_OBJECT___ENCODE__STRING;
+	int CALL_ARGUMENT___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT___GET_NAMESPACE = REFERABLE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CALL_ARGUMENT___GET_ENCODED_QUALIFIED_NAME = REFERABLE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -27298,13 +35408,13 @@
 	int CALL_ARGUMENT___GET_NAME = REFERABLE_OBJECT_OPERATION_COUNT + 0;
 
 	/**
-	 * The operation id for the '<em>Compute Unique Name</em>' operation.
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CALL_ARGUMENT___COMPUTE_UNIQUE_NAME = REFERABLE_OBJECT_OPERATION_COUNT + 1;
+	int CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS = REFERABLE_OBJECT_OPERATION_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Call Argument</em>' class.
@@ -27323,7 +35433,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableCall()
 	 * @generated
 	 */
-	int RUNNABLE_CALL = 340;
+	int RUNNABLE_CALL = 350;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27332,7 +35442,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int RUNNABLE_CALL__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -27341,7 +35451,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int RUNNABLE_CALL__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -27350,7 +35460,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int RUNNABLE_CALL__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int RUNNABLE_CALL__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Tags</b></em>' reference list.
@@ -27359,7 +35478,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__TAGS = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int RUNNABLE_CALL__TAGS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The feature id for the '<em><b>Runnable</b></em>' reference.
@@ -27368,7 +35487,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__RUNNABLE = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int RUNNABLE_CALL__RUNNABLE = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The feature id for the '<em><b>Arguments</b></em>' containment reference list.
@@ -27377,7 +35496,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__ARGUMENTS = CALL_GRAPH_ITEM_FEATURE_COUNT + 2;
+	int RUNNABLE_CALL__ARGUMENTS = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 2;
 
 	/**
 	 * The feature id for the '<em><b>Counter</b></em>' containment reference.
@@ -27386,7 +35505,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__COUNTER = CALL_GRAPH_ITEM_FEATURE_COUNT + 3;
+	int RUNNABLE_CALL__COUNTER = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 3;
 
 	/**
 	 * The feature id for the '<em><b>Statistic</b></em>' containment reference.
@@ -27395,7 +35514,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL__STATISTIC = CALL_GRAPH_ITEM_FEATURE_COUNT + 4;
+	int RUNNABLE_CALL__STATISTIC = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 4;
 
 	/**
 	 * The number of structural features of the '<em>Runnable Call</em>' class.
@@ -27404,7 +35523,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 5;
+	int RUNNABLE_CALL_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Runnable Call</em>' class.
@@ -27413,7 +35532,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int RUNNABLE_CALL_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int RUNNABLE_CALL_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.CustomEventTriggerImpl <em>Custom Event Trigger</em>}' class.
@@ -27423,7 +35542,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomEventTrigger()
 	 * @generated
 	 */
-	int CUSTOM_EVENT_TRIGGER = 341;
+	int CUSTOM_EVENT_TRIGGER = 351;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27432,7 +35551,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER__CUSTOM_PROPERTIES = CALL_GRAPH_ITEM__CUSTOM_PROPERTIES;
+	int CUSTOM_EVENT_TRIGGER__CUSTOM_PROPERTIES = ACTIVITY_GRAPH_ITEM__CUSTOM_PROPERTIES;
 
 	/**
 	 * The feature id for the '<em><b>Containing Process</b></em>' reference.
@@ -27441,7 +35560,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER__CONTAINING_PROCESS = CALL_GRAPH_ITEM__CONTAINING_PROCESS;
+	int CUSTOM_EVENT_TRIGGER__CONTAINING_PROCESS = ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS;
 
 	/**
 	 * The feature id for the '<em><b>Containing Runnable</b></em>' reference.
@@ -27450,7 +35569,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER__CONTAINING_RUNNABLE = CALL_GRAPH_ITEM__CONTAINING_RUNNABLE;
+	int CUSTOM_EVENT_TRIGGER__CONTAINING_RUNNABLE = ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE;
+
+	/**
+	 * The feature id for the '<em><b>Containing Activity Graph</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_EVENT_TRIGGER__CONTAINING_ACTIVITY_GRAPH = ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH;
 
 	/**
 	 * The feature id for the '<em><b>Event</b></em>' reference.
@@ -27459,7 +35587,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER__EVENT = CALL_GRAPH_ITEM_FEATURE_COUNT + 0;
+	int CUSTOM_EVENT_TRIGGER__EVENT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 0;
 
 	/**
 	 * The number of structural features of the '<em>Custom Event Trigger</em>' class.
@@ -27468,7 +35596,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER_FEATURE_COUNT = CALL_GRAPH_ITEM_FEATURE_COUNT + 1;
+	int CUSTOM_EVENT_TRIGGER_FEATURE_COUNT = ACTIVITY_GRAPH_ITEM_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of operations of the '<em>Custom Event Trigger</em>' class.
@@ -27477,7 +35605,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_EVENT_TRIGGER_OPERATION_COUNT = CALL_GRAPH_ITEM_OPERATION_COUNT + 0;
+	int CUSTOM_EVENT_TRIGGER_OPERATION_COUNT = ACTIVITY_GRAPH_ITEM_OPERATION_COUNT + 0;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.DataType <em>Data Type</em>}' class.
@@ -27487,7 +35615,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataType()
 	 * @generated
 	 */
-	int DATA_TYPE = 342;
+	int DATA_TYPE = 352;
 
 	/**
 	 * The number of structural features of the '<em>Data Type</em>' class.
@@ -27515,7 +35643,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCompoundType()
 	 * @generated
 	 */
-	int COMPOUND_TYPE = 343;
+	int COMPOUND_TYPE = 353;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27552,7 +35680,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStruct()
 	 * @generated
 	 */
-	int STRUCT = 344;
+	int STRUCT = 354;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27598,7 +35726,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStructEntry()
 	 * @generated
 	 */
-	int STRUCT_ENTRY = 345;
+	int STRUCT_ENTRY = 355;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27619,13 +35747,22 @@
 	int STRUCT_ENTRY__NAME = BASE_OBJECT_FEATURE_COUNT + 0;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY__QUALIFIED_NAME = BASE_OBJECT_FEATURE_COUNT + 1;
+
+	/**
 	 * The feature id for the '<em><b>Data Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCT_ENTRY__DATA_TYPE = BASE_OBJECT_FEATURE_COUNT + 1;
+	int STRUCT_ENTRY__DATA_TYPE = BASE_OBJECT_FEATURE_COUNT + 2;
 
 	/**
 	 * The number of structural features of the '<em>Struct Entry</em>' class.
@@ -27634,7 +35771,61 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCT_ENTRY_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 2;
+	int STRUCT_ENTRY_FEATURE_COUNT = BASE_OBJECT_FEATURE_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_NAMED_CONTAINER = BASE_OBJECT_OPERATION_COUNT + 0;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_NAME_PREFIX = BASE_OBJECT_OPERATION_COUNT + 1;
+
+	/**
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_QUALIFIED_NAME_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_DEFAULT_NAME_SEPARATOR = BASE_OBJECT_OPERATION_COUNT + 3;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_NAMESPACE = BASE_OBJECT_OPERATION_COUNT + 4;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int STRUCT_ENTRY___GET_NAME_PREFIX_SEGMENTS = BASE_OBJECT_OPERATION_COUNT + 5;
 
 	/**
 	 * The number of operations of the '<em>Struct Entry</em>' class.
@@ -27643,7 +35834,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	int STRUCT_ENTRY_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 0;
+	int STRUCT_ENTRY_OPERATION_COUNT = BASE_OBJECT_OPERATION_COUNT + 6;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.impl.ArrayImpl <em>Array</em>}' class.
@@ -27653,7 +35844,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getArray()
 	 * @generated
 	 */
-	int ARRAY = 346;
+	int ARRAY = 356;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27708,7 +35899,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPointer()
 	 * @generated
 	 */
-	int POINTER = 347;
+	int POINTER = 357;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27754,7 +35945,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTypeRef()
 	 * @generated
 	 */
-	int TYPE_REF = 348;
+	int TYPE_REF = 358;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27800,7 +35991,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAlias()
 	 * @generated
 	 */
-	int ALIAS = 349;
+	int ALIAS = 359;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27855,7 +36046,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTypeDefinition()
 	 * @generated
 	 */
-	int TYPE_DEFINITION = 350;
+	int TYPE_DEFINITION = 360;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27876,6 +36067,15 @@
 	int TYPE_DEFINITION__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27885,13 +36085,22 @@
 	int TYPE_DEFINITION__UNIQUE_NAME = REFERABLE_BASE_OBJECT__UNIQUE_NAME;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION__NAMESPACE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+
+	/**
 	 * The feature id for the '<em><b>Size</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_DEFINITION__SIZE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 0;
+	int TYPE_DEFINITION__SIZE = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
 	 * The number of structural features of the '<em>Type Definition</em>' class.
@@ -27900,7 +36109,16 @@
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_DEFINITION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
+	int TYPE_DEFINITION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 2;
+
+	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
 
 	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
@@ -27912,13 +36130,49 @@
 	int TYPE_DEFINITION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int TYPE_DEFINITION___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int TYPE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int TYPE_DEFINITION___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -27946,7 +36200,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataTypeDefinition()
 	 * @generated
 	 */
-	int DATA_TYPE_DEFINITION = 351;
+	int DATA_TYPE_DEFINITION = 361;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -27967,6 +36221,15 @@
 	int DATA_TYPE_DEFINITION__NAME = TYPE_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION__QUALIFIED_NAME = TYPE_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -27976,6 +36239,15 @@
 	int DATA_TYPE_DEFINITION__UNIQUE_NAME = TYPE_DEFINITION__UNIQUE_NAME;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION__NAMESPACE = TYPE_DEFINITION__NAMESPACE;
+
+	/**
 	 * The feature id for the '<em><b>Size</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28003,6 +36275,15 @@
 	int DATA_TYPE_DEFINITION_FEATURE_COUNT = TYPE_DEFINITION_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION___GET_NAMED_CONTAINER = TYPE_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28012,13 +36293,49 @@
 	int DATA_TYPE_DEFINITION___GET_NAME_PREFIX = TYPE_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int DATA_TYPE_DEFINITION___ENCODE__STRING = TYPE_DEFINITION___ENCODE__STRING;
+	int DATA_TYPE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = TYPE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = TYPE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION___GET_NAMESPACE = TYPE_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION___GET_NAME_PREFIX_SEGMENTS = TYPE_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int DATA_TYPE_DEFINITION___GET_ENCODED_QUALIFIED_NAME = TYPE_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28046,7 +36363,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBaseTypeDefinition()
 	 * @generated
 	 */
-	int BASE_TYPE_DEFINITION = 352;
+	int BASE_TYPE_DEFINITION = 362;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28067,6 +36384,15 @@
 	int BASE_TYPE_DEFINITION__NAME = TYPE_DEFINITION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION__QUALIFIED_NAME = TYPE_DEFINITION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28076,6 +36402,15 @@
 	int BASE_TYPE_DEFINITION__UNIQUE_NAME = TYPE_DEFINITION__UNIQUE_NAME;
 
 	/**
+	 * The feature id for the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION__NAMESPACE = TYPE_DEFINITION__NAMESPACE;
+
+	/**
 	 * The feature id for the '<em><b>Size</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28103,6 +36438,15 @@
 	int BASE_TYPE_DEFINITION_FEATURE_COUNT = TYPE_DEFINITION_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION___GET_NAMED_CONTAINER = TYPE_DEFINITION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28112,13 +36456,49 @@
 	int BASE_TYPE_DEFINITION___GET_NAME_PREFIX = TYPE_DEFINITION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int BASE_TYPE_DEFINITION___ENCODE__STRING = TYPE_DEFINITION___ENCODE__STRING;
+	int BASE_TYPE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS = TYPE_DEFINITION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR = TYPE_DEFINITION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION___GET_NAMESPACE = TYPE_DEFINITION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION___GET_NAME_PREFIX_SEGMENTS = TYPE_DEFINITION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int BASE_TYPE_DEFINITION___GET_ENCODED_QUALIFIED_NAME = TYPE_DEFINITION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28146,7 +36526,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getActivation()
 	 * @generated
 	 */
-	int ACTIVATION = 353;
+	int ACTIVATION = 363;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28167,6 +36547,15 @@
 	int ACTIVATION__NAME = REFERABLE_BASE_OBJECT__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION__QUALIFIED_NAME = REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28194,6 +36583,15 @@
 	int ACTIVATION_FEATURE_COUNT = REFERABLE_BASE_OBJECT_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION___GET_NAMED_CONTAINER = REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28203,13 +36601,49 @@
 	int ACTIVATION___GET_NAME_PREFIX = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int ACTIVATION___ENCODE__STRING = REFERABLE_BASE_OBJECT___ENCODE__STRING;
+	int ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION___GET_NAMESPACE = REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION___GET_NAME_PREFIX_SEGMENTS = REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int ACTIVATION___GET_ENCODED_QUALIFIED_NAME = REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28237,7 +36671,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPeriodicActivation()
 	 * @generated
 	 */
-	int PERIODIC_ACTIVATION = 354;
+	int PERIODIC_ACTIVATION = 364;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28258,6 +36692,15 @@
 	int PERIODIC_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28321,6 +36764,15 @@
 	int PERIODIC_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 4;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28330,13 +36782,49 @@
 	int PERIODIC_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int PERIODIC_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int PERIODIC_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int PERIODIC_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28364,7 +36852,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getVariableRateActivation()
 	 * @generated
 	 */
-	int VARIABLE_RATE_ACTIVATION = 355;
+	int VARIABLE_RATE_ACTIVATION = 365;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28385,6 +36873,15 @@
 	int VARIABLE_RATE_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28439,6 +36936,15 @@
 	int VARIABLE_RATE_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 3;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28448,13 +36954,49 @@
 	int VARIABLE_RATE_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int VARIABLE_RATE_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int VARIABLE_RATE_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int VARIABLE_RATE_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28482,7 +37024,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSporadicActivation()
 	 * @generated
 	 */
-	int SPORADIC_ACTIVATION = 356;
+	int SPORADIC_ACTIVATION = 366;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28503,6 +37045,15 @@
 	int SPORADIC_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28548,6 +37099,15 @@
 	int SPORADIC_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28557,13 +37117,49 @@
 	int SPORADIC_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SPORADIC_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int SPORADIC_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SPORADIC_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28591,7 +37187,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSingleActivation()
 	 * @generated
 	 */
-	int SINGLE_ACTIVATION = 357;
+	int SINGLE_ACTIVATION = 367;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28612,6 +37208,15 @@
 	int SINGLE_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28657,6 +37262,15 @@
 	int SINGLE_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28666,13 +37280,49 @@
 	int SINGLE_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int SINGLE_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int SINGLE_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int SINGLE_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28700,7 +37350,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventActivation()
 	 * @generated
 	 */
-	int EVENT_ACTIVATION = 358;
+	int EVENT_ACTIVATION = 368;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28721,6 +37371,15 @@
 	int EVENT_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28766,6 +37425,15 @@
 	int EVENT_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 2;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28775,13 +37443,49 @@
 	int EVENT_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int EVENT_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int EVENT_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int EVENT_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28809,7 +37513,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCustomActivation()
 	 * @generated
 	 */
-	int CUSTOM_ACTIVATION = 359;
+	int CUSTOM_ACTIVATION = 369;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28830,6 +37534,15 @@
 	int CUSTOM_ACTIVATION__NAME = ACTIVATION__NAME;
 
 	/**
+	 * The feature id for the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION__QUALIFIED_NAME = ACTIVATION__QUALIFIED_NAME;
+
+	/**
 	 * The feature id for the '<em><b>Unique Name</b></em>' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28866,6 +37579,15 @@
 	int CUSTOM_ACTIVATION_FEATURE_COUNT = ACTIVATION_FEATURE_COUNT + 1;
 
 	/**
+	 * The operation id for the '<em>Get Named Container</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION___GET_NAMED_CONTAINER = ACTIVATION___GET_NAMED_CONTAINER;
+
+	/**
 	 * The operation id for the '<em>Get Name Prefix</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -28875,13 +37597,49 @@
 	int CUSTOM_ACTIVATION___GET_NAME_PREFIX = ACTIVATION___GET_NAME_PREFIX;
 
 	/**
-	 * The operation id for the '<em>Encode</em>' operation.
+	 * The operation id for the '<em>Get Qualified Name Segments</em>' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 * @ordered
 	 */
-	int CUSTOM_ACTIVATION___ENCODE__STRING = ACTIVATION___ENCODE__STRING;
+	int CUSTOM_ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS = ACTIVATION___GET_QUALIFIED_NAME_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Default Name Separator</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION___GET_DEFAULT_NAME_SEPARATOR = ACTIVATION___GET_DEFAULT_NAME_SEPARATOR;
+
+	/**
+	 * The operation id for the '<em>Get Namespace</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION___GET_NAMESPACE = ACTIVATION___GET_NAMESPACE;
+
+	/**
+	 * The operation id for the '<em>Get Name Prefix Segments</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION___GET_NAME_PREFIX_SEGMENTS = ACTIVATION___GET_NAME_PREFIX_SEGMENTS;
+
+	/**
+	 * The operation id for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 * @ordered
+	 */
+	int CUSTOM_ACTIVATION___GET_ENCODED_QUALIFIED_NAME = ACTIVATION___GET_ENCODED_QUALIFIED_NAME;
 
 	/**
 	 * The operation id for the '<em>Validate Invariants</em>' operation.
@@ -28909,7 +37667,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelAccessStatistic()
 	 * @generated
 	 */
-	int LABEL_ACCESS_STATISTIC = 360;
+	int LABEL_ACCESS_STATISTIC = 370;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -28964,7 +37722,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunEntityCallStatistic()
 	 * @generated
 	 */
-	int RUN_ENTITY_CALL_STATISTIC = 361;
+	int RUN_ENTITY_CALL_STATISTIC = 371;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29010,7 +37768,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMeasurementModel()
 	 * @generated
 	 */
-	int MEASUREMENT_MODEL = 362;
+	int MEASUREMENT_MODEL = 372;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29056,7 +37814,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMeasurement()
 	 * @generated
 	 */
-	int MEASUREMENT = 363;
+	int MEASUREMENT = 373;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29111,7 +37869,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainMeasurement()
 	 * @generated
 	 */
-	int EVENT_CHAIN_MEASUREMENT = 364;
+	int EVENT_CHAIN_MEASUREMENT = 374;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29175,7 +37933,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTaskMeasurement()
 	 * @generated
 	 */
-	int TASK_MEASUREMENT = 365;
+	int TASK_MEASUREMENT = 375;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29239,7 +37997,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableMeasurement()
 	 * @generated
 	 */
-	int RUNNABLE_MEASUREMENT = 366;
+	int RUNNABLE_MEASUREMENT = 376;
 
 	/**
 	 * The feature id for the '<em><b>Custom Properties</b></em>' map.
@@ -29303,7 +38061,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRelationalOperator()
 	 * @generated
 	 */
-	int RELATIONAL_OPERATOR = 367;
+	int RELATIONAL_OPERATOR = 377;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.TimeUnit <em>Time Unit</em>}' enum.
@@ -29313,7 +38071,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeUnit()
 	 * @generated
 	 */
-	int TIME_UNIT = 368;
+	int TIME_UNIT = 378;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.FrequencyUnit <em>Frequency Unit</em>}' enum.
@@ -29323,7 +38081,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFrequencyUnit()
 	 * @generated
 	 */
-	int FREQUENCY_UNIT = 369;
+	int FREQUENCY_UNIT = 379;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.VoltageUnit <em>Voltage Unit</em>}' enum.
@@ -29333,7 +38091,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getVoltageUnit()
 	 * @generated
 	 */
-	int VOLTAGE_UNIT = 370;
+	int VOLTAGE_UNIT = 380;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.DataSizeUnit <em>Data Size Unit</em>}' enum.
@@ -29343,7 +38101,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataSizeUnit()
 	 * @generated
 	 */
-	int DATA_SIZE_UNIT = 371;
+	int DATA_SIZE_UNIT = 381;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.DataRateUnit <em>Data Rate Unit</em>}' enum.
@@ -29353,7 +38111,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataRateUnit()
 	 * @generated
 	 */
-	int DATA_RATE_UNIT = 372;
+	int DATA_RATE_UNIT = 382;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SamplingType <em>Sampling Type</em>}' enum.
@@ -29363,7 +38121,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSamplingType()
 	 * @generated
 	 */
-	int SAMPLING_TYPE = 373;
+	int SAMPLING_TYPE = 383;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.InterfaceKind <em>Interface Kind</em>}' enum.
@@ -29373,7 +38131,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getInterfaceKind()
 	 * @generated
 	 */
-	int INTERFACE_KIND = 374;
+	int INTERFACE_KIND = 384;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.RunnableOrderType <em>Runnable Order Type</em>}' enum.
@@ -29383,7 +38141,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableOrderType()
 	 * @generated
 	 */
-	int RUNNABLE_ORDER_TYPE = 375;
+	int RUNNABLE_ORDER_TYPE = 385;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.EventChainItemType <em>Event Chain Item Type</em>}' enum.
@@ -29393,7 +38151,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getEventChainItemType()
 	 * @generated
 	 */
-	int EVENT_CHAIN_ITEM_TYPE = 376;
+	int EVENT_CHAIN_ITEM_TYPE = 386;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SynchronizationType <em>Synchronization Type</em>}' enum.
@@ -29403,7 +38161,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSynchronizationType()
 	 * @generated
 	 */
-	int SYNCHRONIZATION_TYPE = 377;
+	int SYNCHRONIZATION_TYPE = 387;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.MappingType <em>Mapping Type</em>}' enum.
@@ -29413,7 +38171,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMappingType()
 	 * @generated
 	 */
-	int MAPPING_TYPE = 378;
+	int MAPPING_TYPE = 388;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LatencyType <em>Latency Type</em>}' enum.
@@ -29423,7 +38181,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLatencyType()
 	 * @generated
 	 */
-	int LATENCY_TYPE = 379;
+	int LATENCY_TYPE = 389;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.Severity <em>Severity</em>}' enum.
@@ -29433,7 +38191,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSeverity()
 	 * @generated
 	 */
-	int SEVERITY = 380;
+	int SEVERITY = 390;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LimitType <em>Limit Type</em>}' enum.
@@ -29443,7 +38201,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLimitType()
 	 * @generated
 	 */
-	int LIMIT_TYPE = 381;
+	int LIMIT_TYPE = 391;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.TimeMetric <em>Time Metric</em>}' enum.
@@ -29453,7 +38211,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getTimeMetric()
 	 * @generated
 	 */
-	int TIME_METRIC = 382;
+	int TIME_METRIC = 392;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.CountMetric <em>Count Metric</em>}' enum.
@@ -29463,7 +38221,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCountMetric()
 	 * @generated
 	 */
-	int COUNT_METRIC = 383;
+	int COUNT_METRIC = 393;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.PercentageMetric <em>Percentage Metric</em>}' enum.
@@ -29473,7 +38231,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPercentageMetric()
 	 * @generated
 	 */
-	int PERCENTAGE_METRIC = 384;
+	int PERCENTAGE_METRIC = 394;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.CPUPercentageMetric <em>CPU Percentage Metric</em>}' enum.
@@ -29483,7 +38241,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCPUPercentageMetric()
 	 * @generated
 	 */
-	int CPU_PERCENTAGE_METRIC = 385;
+	int CPU_PERCENTAGE_METRIC = 395;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.FrequencyMetric <em>Frequency Metric</em>}' enum.
@@ -29493,7 +38251,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getFrequencyMetric()
 	 * @generated
 	 */
-	int FREQUENCY_METRIC = 386;
+	int FREQUENCY_METRIC = 396;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.CoherencyDirection <em>Coherency Direction</em>}' enum.
@@ -29503,7 +38261,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCoherencyDirection()
 	 * @generated
 	 */
-	int COHERENCY_DIRECTION = 387;
+	int COHERENCY_DIRECTION = 397;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ProcessEventType <em>Process Event Type</em>}' enum.
@@ -29513,7 +38271,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getProcessEventType()
 	 * @generated
 	 */
-	int PROCESS_EVENT_TYPE = 388;
+	int PROCESS_EVENT_TYPE = 398;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.RunnableEventType <em>Runnable Event Type</em>}' enum.
@@ -29523,7 +38281,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getRunnableEventType()
 	 * @generated
 	 */
-	int RUNNABLE_EVENT_TYPE = 389;
+	int RUNNABLE_EVENT_TYPE = 399;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LabelEventType <em>Label Event Type</em>}' enum.
@@ -29533,7 +38291,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelEventType()
 	 * @generated
 	 */
-	int LABEL_EVENT_TYPE = 390;
+	int LABEL_EVENT_TYPE = 400;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ChannelEventType <em>Channel Event Type</em>}' enum.
@@ -29543,7 +38301,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getChannelEventType()
 	 * @generated
 	 */
-	int CHANNEL_EVENT_TYPE = 391;
+	int CHANNEL_EVENT_TYPE = 401;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SemaphoreEventType <em>Semaphore Event Type</em>}' enum.
@@ -29553,7 +38311,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphoreEventType()
 	 * @generated
 	 */
-	int SEMAPHORE_EVENT_TYPE = 392;
+	int SEMAPHORE_EVENT_TYPE = 402;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ComponentEventType <em>Component Event Type</em>}' enum.
@@ -29563,7 +38321,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getComponentEventType()
 	 * @generated
 	 */
-	int COMPONENT_EVENT_TYPE = 393;
+	int COMPONENT_EVENT_TYPE = 403;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.MemoryType <em>Memory Type</em>}' enum.
@@ -29573,7 +38331,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryType()
 	 * @generated
 	 */
-	int MEMORY_TYPE = 394;
+	int MEMORY_TYPE = 404;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.StructureType <em>Structure Type</em>}' enum.
@@ -29583,7 +38341,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getStructureType()
 	 * @generated
 	 */
-	int STRUCTURE_TYPE = 395;
+	int STRUCTURE_TYPE = 405;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.CacheType <em>Cache Type</em>}' enum.
@@ -29593,7 +38351,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCacheType()
 	 * @generated
 	 */
-	int CACHE_TYPE = 396;
+	int CACHE_TYPE = 406;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.PortType <em>Port Type</em>}' enum.
@@ -29603,7 +38361,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPortType()
 	 * @generated
 	 */
-	int PORT_TYPE = 397;
+	int PORT_TYPE = 407;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SchedPolicy <em>Sched Policy</em>}' enum.
@@ -29613,7 +38371,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSchedPolicy()
 	 * @generated
 	 */
-	int SCHED_POLICY = 398;
+	int SCHED_POLICY = 408;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.WriteStrategy <em>Write Strategy</em>}' enum.
@@ -29623,7 +38381,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getWriteStrategy()
 	 * @generated
 	 */
-	int WRITE_STRATEGY = 399;
+	int WRITE_STRATEGY = 409;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.PuType <em>Pu Type</em>}' enum.
@@ -29633,7 +38391,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPuType()
 	 * @generated
 	 */
-	int PU_TYPE = 400;
+	int PU_TYPE = 410;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.PortInterface <em>Port Interface</em>}' enum.
@@ -29643,7 +38401,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPortInterface()
 	 * @generated
 	 */
-	int PORT_INTERFACE = 401;
+	int PORT_INTERFACE = 411;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.HwFeatureType <em>Hw Feature Type</em>}' enum.
@@ -29653,7 +38411,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getHwFeatureType()
 	 * @generated
 	 */
-	int HW_FEATURE_TYPE = 402;
+	int HW_FEATURE_TYPE = 412;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.MemoryAddressMappingType <em>Memory Address Mapping Type</em>}' enum.
@@ -29663,7 +38421,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getMemoryAddressMappingType()
 	 * @generated
 	 */
-	int MEMORY_ADDRESS_MAPPING_TYPE = 403;
+	int MEMORY_ADDRESS_MAPPING_TYPE = 413;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.OsDataConsistencyMode <em>Os Data Consistency Mode</em>}' enum.
@@ -29673,7 +38431,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOsDataConsistencyMode()
 	 * @generated
 	 */
-	int OS_DATA_CONSISTENCY_MODE = 404;
+	int OS_DATA_CONSISTENCY_MODE = 414;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.AccessMultiplicity <em>Access Multiplicity</em>}' enum.
@@ -29683,7 +38441,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAccessMultiplicity()
 	 * @generated
 	 */
-	int ACCESS_MULTIPLICITY = 405;
+	int ACCESS_MULTIPLICITY = 415;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.DataStabilityLevel <em>Data Stability Level</em>}' enum.
@@ -29693,7 +38451,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDataStabilityLevel()
 	 * @generated
 	 */
-	int DATA_STABILITY_LEVEL = 406;
+	int DATA_STABILITY_LEVEL = 416;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SemaphoreType <em>Semaphore Type</em>}' enum.
@@ -29703,7 +38461,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphoreType()
 	 * @generated
 	 */
-	int SEMAPHORE_TYPE = 407;
+	int SEMAPHORE_TYPE = 417;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.Condition <em>Condition</em>}' enum.
@@ -29713,7 +38471,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCondition()
 	 * @generated
 	 */
-	int CONDITION = 408;
+	int CONDITION = 418;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.GroupingType <em>Grouping Type</em>}' enum.
@@ -29723,7 +38481,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getGroupingType()
 	 * @generated
 	 */
-	int GROUPING_TYPE = 409;
+	int GROUPING_TYPE = 419;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.CurveType <em>Curve Type</em>}' enum.
@@ -29733,7 +38491,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getCurveType()
 	 * @generated
 	 */
-	int CURVE_TYPE = 410;
+	int CURVE_TYPE = 420;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.WaitEventType <em>Wait Event Type</em>}' enum.
@@ -29743,7 +38501,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getWaitEventType()
 	 * @generated
 	 */
-	int WAIT_EVENT_TYPE = 411;
+	int WAIT_EVENT_TYPE = 421;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.WaitingBehaviour <em>Waiting Behaviour</em>}' enum.
@@ -29753,7 +38511,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getWaitingBehaviour()
 	 * @generated
 	 */
-	int WAITING_BEHAVIOUR = 412;
+	int WAITING_BEHAVIOUR = 422;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ISRCategory <em>ISR Category</em>}' enum.
@@ -29763,7 +38521,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getISRCategory()
 	 * @generated
 	 */
-	int ISR_CATEGORY = 413;
+	int ISR_CATEGORY = 423;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.AccessPrecedenceType <em>Access Precedence Type</em>}' enum.
@@ -29773,7 +38531,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAccessPrecedenceType()
 	 * @generated
 	 */
-	int ACCESS_PRECEDENCE_TYPE = 414;
+	int ACCESS_PRECEDENCE_TYPE = 424;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.OrderType <em>Order Type</em>}' enum.
@@ -29783,7 +38541,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getOrderType()
 	 * @generated
 	 */
-	int ORDER_TYPE = 415;
+	int ORDER_TYPE = 425;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.DirectionType <em>Direction Type</em>}' enum.
@@ -29793,7 +38551,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getDirectionType()
 	 * @generated
 	 */
-	int DIRECTION_TYPE = 416;
+	int DIRECTION_TYPE = 426;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LabelDataStability <em>Label Data Stability</em>}' enum.
@@ -29803,7 +38561,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelDataStability()
 	 * @generated
 	 */
-	int LABEL_DATA_STABILITY = 417;
+	int LABEL_DATA_STABILITY = 427;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ModeLabelAccessEnum <em>Mode Label Access Enum</em>}' enum.
@@ -29813,7 +38571,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getModeLabelAccessEnum()
 	 * @generated
 	 */
-	int MODE_LABEL_ACCESS_ENUM = 418;
+	int MODE_LABEL_ACCESS_ENUM = 428;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ReceiveOperation <em>Receive Operation</em>}' enum.
@@ -29823,7 +38581,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getReceiveOperation()
 	 * @generated
 	 */
-	int RECEIVE_OPERATION = 419;
+	int RECEIVE_OPERATION = 429;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LabelAccessDataStability <em>Label Access Data Stability</em>}' enum.
@@ -29833,7 +38591,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelAccessDataStability()
 	 * @generated
 	 */
-	int LABEL_ACCESS_DATA_STABILITY = 420;
+	int LABEL_ACCESS_DATA_STABILITY = 430;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LabelAccessEnum <em>Label Access Enum</em>}' enum.
@@ -29843,7 +38601,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelAccessEnum()
 	 * @generated
 	 */
-	int LABEL_ACCESS_ENUM = 421;
+	int LABEL_ACCESS_ENUM = 431;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.LabelAccessImplementation <em>Label Access Implementation</em>}' enum.
@@ -29853,7 +38611,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getLabelAccessImplementation()
 	 * @generated
 	 */
-	int LABEL_ACCESS_IMPLEMENTATION = 422;
+	int LABEL_ACCESS_IMPLEMENTATION = 432;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.SemaphoreAccessEnum <em>Semaphore Access Enum</em>}' enum.
@@ -29863,7 +38621,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getSemaphoreAccessEnum()
 	 * @generated
 	 */
-	int SEMAPHORE_ACCESS_ENUM = 423;
+	int SEMAPHORE_ACCESS_ENUM = 433;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.BlockingType <em>Blocking Type</em>}' enum.
@@ -29873,7 +38631,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getBlockingType()
 	 * @generated
 	 */
-	int BLOCKING_TYPE = 424;
+	int BLOCKING_TYPE = 434;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.Preemption <em>Preemption</em>}' enum.
@@ -29883,7 +38641,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPreemption()
 	 * @generated
 	 */
-	int PREEMPTION = 425;
+	int PREEMPTION = 435;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ConcurrencyType <em>Concurrency Type</em>}' enum.
@@ -29893,7 +38651,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getConcurrencyType()
 	 * @generated
 	 */
-	int CONCURRENCY_TYPE = 426;
+	int CONCURRENCY_TYPE = 436;
 
 	/**
 	 * The meta object id for the '{@link org.eclipse.app4mc.amalthea.model.ASILType <em>ASIL Type</em>}' enum.
@@ -29903,7 +38661,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getASILType()
 	 * @generated
 	 */
-	int ASIL_TYPE = 427;
+	int ASIL_TYPE = 437;
 
 	/**
 	 * The meta object id for the '<em>Address</em>' data type.
@@ -29912,7 +38670,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getAddress()
 	 * @generated
 	 */
-	int ADDRESS = 428;
+	int ADDRESS = 438;
 
 	/**
 	 * The meta object id for the '<em>Positive Int</em>' data type.
@@ -29921,7 +38679,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPositiveInt()
 	 * @generated
 	 */
-	int POSITIVE_INT = 429;
+	int POSITIVE_INT = 439;
 
 	/**
 	 * The meta object id for the '<em>Positive Long</em>' data type.
@@ -29930,7 +38688,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPositiveLong()
 	 * @generated
 	 */
-	int POSITIVE_LONG = 430;
+	int POSITIVE_LONG = 440;
 
 	/**
 	 * The meta object id for the '<em>Positive Double</em>' data type.
@@ -29939,7 +38697,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getPositiveDouble()
 	 * @generated
 	 */
-	int POSITIVE_DOUBLE = 431;
+	int POSITIVE_DOUBLE = 441;
 
 	/**
 	 * The meta object id for the '<em>Non Negative Int</em>' data type.
@@ -29948,7 +38706,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNonNegativeInt()
 	 * @generated
 	 */
-	int NON_NEGATIVE_INT = 432;
+	int NON_NEGATIVE_INT = 442;
 
 	/**
 	 * The meta object id for the '<em>Non Negative Long</em>' data type.
@@ -29957,7 +38715,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNonNegativeLong()
 	 * @generated
 	 */
-	int NON_NEGATIVE_LONG = 433;
+	int NON_NEGATIVE_LONG = 443;
 
 	/**
 	 * The meta object id for the '<em>Non Negative Double</em>' data type.
@@ -29966,7 +38724,7 @@
 	 * @see org.eclipse.app4mc.amalthea.model.impl.AmaltheaPackageImpl#getNonNegativeDouble()
 	 * @generated
 	 */
-	int NON_NEGATIVE_DOUBLE = 434;
+	int NON_NEGATIVE_DOUBLE = 444;
 
 
 	/**
@@ -30144,6 +38902,17 @@
 	EReference getCommonElements_Tags();
 
 	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.CommonElements#getNamespaces <em>Namespaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Namespaces</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.CommonElements#getNamespaces()
+	 * @see #getCommonElements()
+	 * @generated
+	 */
+	EReference getCommonElements_Namespaces();
+
+	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.CommonElements#getCoreClassifiers <em>Core Classifiers</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30259,6 +39028,77 @@
 	EAttribute getINamed_Name();
 
 	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.INamed#getQualifiedName <em>Qualified Name</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Qualified Name</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getQualifiedName()
+	 * @see #getINamed()
+	 * @generated
+	 */
+	EAttribute getINamed_QualifiedName();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getNamedContainer() <em>Get Named Container</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Named Container</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getNamedContainer()
+	 * @generated
+	 */
+	EOperation getINamed__GetNamedContainer();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getNamePrefix()
+	 * @generated
+	 */
+	EOperation getINamed__GetNamePrefix();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getQualifiedNameSegments() <em>Get Qualified Name Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Qualified Name Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getQualifiedNameSegments()
+	 * @generated
+	 */
+	EOperation getINamed__GetQualifiedNameSegments();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getDefaultNameSeparator() <em>Get Default Name Separator</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Default Name Separator</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getDefaultNameSeparator()
+	 * @generated
+	 */
+	EOperation getINamed__GetDefaultNameSeparator();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getNamespace() <em>Get Namespace</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Namespace</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getNamespace()
+	 * @generated
+	 */
+	EOperation getINamed__GetNamespace();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.INamed#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.INamed#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getINamed__GetNamePrefixSegments();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IReferable <em>IReferable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30280,24 +39120,14 @@
 	EAttribute getIReferable_UniqueName();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.IReferable#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.IReferable#getEncodedQualifiedName() <em>Get Encoded Qualified Name</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.IReferable#getNamePrefix()
+	 * @return the meta object for the '<em>Get Encoded Qualified Name</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.IReferable#getEncodedQualifiedName()
 	 * @generated
 	 */
-	EOperation getIReferable__GetNamePrefix();
-
-	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.IReferable#encode(java.lang.String) <em>Encode</em>}' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Encode</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.IReferable#encode(java.lang.String)
-	 * @generated
-	 */
-	EOperation getIReferable__Encode__String();
+	EOperation getIReferable__GetEncodedQualifiedName();
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.IReferable#validateInvariants(org.eclipse.emf.common.util.DiagnosticChain, java.util.Map) <em>Validate Invariants</em>}' operation.
@@ -30352,6 +39182,27 @@
 	EAttribute getIDescription_Description();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.INamespaceMember <em>INamespace Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>INamespace Member</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.INamespaceMember
+	 * @generated
+	 */
+	EClass getINamespaceMember();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.INamespaceMember#getNamespace <em>Namespace</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Namespace</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.INamespaceMember#getNamespace()
+	 * @see #getINamespaceMember()
+	 * @generated
+	 */
+	EReference getINamespaceMember_Namespace();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Tag <em>Tag</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -30384,6 +39235,59 @@
 	EReference getTag_TaggedObjects();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Namespace <em>Namespace</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Namespace</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace
+	 * @generated
+	 */
+	EClass getNamespace();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.Namespace#getNextSegments <em>Next Segments</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Next Segments</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getNextSegments()
+	 * @see #getNamespace()
+	 * @generated
+	 */
+	EReference getNamespace_NextSegments();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.Namespace#getPreviousSegment <em>Previous Segment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Previous Segment</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getPreviousSegment()
+	 * @see #getNamespace()
+	 * @generated
+	 */
+	EReference getNamespace_PreviousSegment();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Namespace#getMemberObjects <em>Member Objects</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Member Objects</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getMemberObjects()
+	 * @see #getNamespace()
+	 * @generated
+	 */
+	EReference getNamespace_MemberObjects();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.Namespace#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getNamespace__GetNamePrefixSegments();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Classifier <em>Classifier</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32493,14 +41397,14 @@
 	EReference getModeLiteral_ContainingMode();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLiteral#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLiteral#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.ModeLiteral#getNamePrefix()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ModeLiteral#getNamePrefixSegments()
 	 * @generated
 	 */
-	EOperation getModeLiteral__GetNamePrefix();
+	EOperation getModeLiteral__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ModeLiteral#toString() <em>To String</em>}' operation.
@@ -32523,15 +41427,15 @@
 	EClass getComponentsModel();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getComponents <em>Components</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getStructures <em>Structures</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference list '<em>Components</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.ComponentsModel#getComponents()
+	 * @return the meta object for the containment reference list '<em>Structures</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentsModel#getStructures()
 	 * @see #getComponentsModel()
 	 * @generated
 	 */
-	EReference getComponentsModel_Components();
+	EReference getComponentsModel_Structures();
 
 	/**
 	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getSystems <em>Systems</em>}'.
@@ -32545,6 +41449,48 @@
 	EReference getComponentsModel_Systems();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IComponentContainer <em>IComponent Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IComponent Container</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentContainer
+	 * @generated
+	 */
+	EClass getIComponentContainer();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.IComponentContainer#getComponents <em>Components</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Components</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentContainer#getComponents()
+	 * @see #getIComponentContainer()
+	 * @generated
+	 */
+	EReference getIComponentContainer_Components();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IInterfaceContainer <em>IInterface Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IInterface Container</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IInterfaceContainer
+	 * @generated
+	 */
+	EClass getIInterfaceContainer();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.IInterfaceContainer#getInterfaces <em>Interfaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Interfaces</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IInterfaceContainer#getInterfaces()
+	 * @see #getIInterfaceContainer()
+	 * @generated
+	 */
+	EReference getIInterfaceContainer_Interfaces();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ISystem <em>ISystem</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32599,35 +41545,235 @@
 	EReference getISystem_InnerPorts();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Port <em>Port</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface <em>Component Interface</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Port</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Port
+	 * @return the meta object for class '<em>Component Interface</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInterface
 	 * @generated
 	 */
-	EClass getPort();
+	EClass getComponentInterface();
 
 	/**
-	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.Port#getContainingComponent <em>Containing Component</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getDatatype <em>Datatype</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Datatype</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInterface#getDatatype()
+	 * @see #getComponentInterface()
+	 * @generated
+	 */
+	EReference getComponentInterface_Datatype();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getSubInterfaces <em>Sub Interfaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Sub Interfaces</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInterface#getSubInterfaces()
+	 * @see #getComponentInterface()
+	 * @generated
+	 */
+	EReference getComponentInterface_SubInterfaces();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.MainInterface <em>Main Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Main Interface</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.MainInterface
+	 * @generated
+	 */
+	EClass getMainInterface();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.MainInterface#getVersion <em>Version</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Version</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.MainInterface#getVersion()
+	 * @see #getMainInterface()
+	 * @generated
+	 */
+	EAttribute getMainInterface_Version();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.SubInterface <em>Sub Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Sub Interface</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.SubInterface
+	 * @generated
+	 */
+	EClass getSubInterface();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.SubInterface#getContainingInterface <em>Containing Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Containing Interface</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.SubInterface#getContainingInterface()
+	 * @see #getSubInterface()
+	 * @generated
+	 */
+	EReference getSubInterface_ContainingInterface();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.SubInterface#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.SubInterface#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getSubInterface__GetNamePrefixSegments();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ComponentPort <em>Component Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Component Port</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort
+	 * @generated
+	 */
+	EClass getComponentPort();
+
+	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getContainingComponent <em>Containing Component</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the container reference '<em>Containing Component</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Port#getContainingComponent()
-	 * @see #getPort()
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort#getContainingComponent()
+	 * @see #getComponentPort()
 	 * @generated
 	 */
-	EReference getPort_ContainingComponent();
+	EReference getComponentPort_ContainingComponent();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.Port#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getKind <em>Kind</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.Port#getNamePrefix()
+	 * @return the meta object for the attribute '<em>Kind</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort#getKind()
+	 * @see #getComponentPort()
 	 * @generated
 	 */
-	EOperation getPort__GetNamePrefix();
+	EAttribute getComponentPort_Kind();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getInterface <em>Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Interface</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort#getInterface()
+	 * @see #getComponentPort()
+	 * @generated
+	 */
+	EReference getComponentPort_Interface();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getComponentPort__GetNamePrefixSegments();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure <em>Component Structure</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Component Structure</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure
+	 * @generated
+	 */
+	EClass getComponentStructure();
+
+	/**
+	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getStructureType <em>Structure Type</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the attribute '<em>Structure Type</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getStructureType()
+	 * @see #getComponentStructure()
+	 * @generated
+	 */
+	EAttribute getComponentStructure_StructureType();
+
+	/**
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getSubStructures <em>Sub Structures</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference list '<em>Sub Structures</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getSubStructures()
+	 * @see #getComponentStructure()
+	 * @generated
+	 */
+	EReference getComponentStructure_SubStructures();
+
+	/**
+	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getMemberObjects <em>Member Objects</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference list '<em>Member Objects</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getMemberObjects()
+	 * @see #getComponentStructure()
+	 * @generated
+	 */
+	EReference getComponentStructure_MemberObjects();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getContainingStructure() <em>Get Containing Structure</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Containing Structure</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getContainingStructure()
+	 * @generated
+	 */
+	EOperation getComponentStructure__GetContainingStructure();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getDefaultNameSeparator() <em>Get Default Name Separator</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Default Name Separator</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getDefaultNameSeparator()
+	 * @generated
+	 */
+	EOperation getComponentStructure__GetDefaultNameSeparator();
+
+	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getComponentStructure__GetNamePrefixSegments();
+
+	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember <em>IComponent Structure Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IComponent Structure Member</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentStructureMember
+	 * @generated
+	 */
+	EClass getIComponentStructureMember();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember#getStructure <em>Structure</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Structure</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentStructureMember#getStructure()
+	 * @see #getIComponentStructureMember()
+	 * @generated
+	 */
+	EReference getIComponentStructureMember_Structure();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Component <em>Component</em>}'.
@@ -32651,15 +41797,15 @@
 	EReference getComponent_Ports();
 
 	/**
-	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Component#getTasks <em>Tasks</em>}'.
+	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Component#getProcesses <em>Processes</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the reference list '<em>Tasks</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Component#getTasks()
+	 * @return the meta object for the reference list '<em>Processes</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Component#getProcesses()
 	 * @see #getComponent()
 	 * @generated
 	 */
-	EReference getComponent_Tasks();
+	EReference getComponent_Processes();
 
 	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Component#getRunnables <em>Runnables</em>}'.
@@ -32736,6 +41882,17 @@
 	EClass getComponentInstance();
 
 	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem <em>Containing System</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Containing System</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem()
+	 * @see #getComponentInstance()
+	 * @generated
+	 */
+	EReference getComponentInstance_ContainingSystem();
+
+	/**
 	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getType <em>Type</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32747,6 +41904,16 @@
 	EReference getComponentInstance_Type();
 
 	/**
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInstance#getNamePrefixSegments()
+	 * @generated
+	 */
+	EOperation getComponentInstance__GetNamePrefixSegments();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.Connector <em>Connector</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32757,6 +41924,17 @@
 	EClass getConnector();
 
 	/**
+	 * Returns the meta object for the container reference '{@link org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem <em>Containing System</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the container reference '<em>Containing System</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem()
+	 * @see #getConnector()
+	 * @generated
+	 */
+	EReference getConnector_ContainingSystem();
+
+	/**
 	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.Connector#getSourcePort <em>Source Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32779,6 +41957,51 @@
 	EReference getConnector_TargetPort();
 
 	/**
+	 * Returns the meta object for the map '{@link org.eclipse.app4mc.amalthea.model.Connector#getImplementedInterfaces <em>Implemented Interfaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the map '<em>Implemented Interfaces</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Connector#getImplementedInterfaces()
+	 * @see #getConnector()
+	 * @generated
+	 */
+	EReference getConnector_ImplementedInterfaces();
+
+	/**
+	 * Returns the meta object for class '{@link java.util.Map.Entry <em>Interface Channel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>Interface Channel</em>'.
+	 * @see java.util.Map.Entry
+	 * @model keyType="org.eclipse.app4mc.amalthea.model.ComponentInterface" keyRequired="true"
+	 *        valueType="org.eclipse.app4mc.amalthea.model.Channel"
+	 * @generated
+	 */
+	EClass getInterfaceChannel();
+
+	/**
+	 * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Key</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Key</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getInterfaceChannel()
+	 * @generated
+	 */
+	EReference getInterfaceChannel_Key();
+
+	/**
+	 * Returns the meta object for the reference '{@link java.util.Map.Entry <em>Value</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Value</em>'.
+	 * @see java.util.Map.Entry
+	 * @see #getInterfaceChannel()
+	 * @generated
+	 */
+	EReference getInterfaceChannel_Value();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.QualifiedPort <em>Qualified Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -32811,38 +42034,6 @@
 	EReference getQualifiedPort_Port();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.InterfacePort <em>Interface Port</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Interface Port</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfacePort
-	 * @generated
-	 */
-	EClass getInterfacePort();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getInterfaceName <em>Interface Name</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Interface Name</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfacePort#getInterfaceName()
-	 * @see #getInterfacePort()
-	 * @generated
-	 */
-	EAttribute getInterfacePort_InterfaceName();
-
-	/**
-	 * Returns the meta object for the attribute '{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getKind <em>Kind</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the attribute '<em>Kind</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfacePort#getKind()
-	 * @see #getInterfacePort()
-	 * @generated
-	 */
-	EAttribute getInterfacePort_Kind();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ConfigModel <em>Config Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -35382,14 +44573,14 @@
 	EAttribute getHwFeature_Value();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwFeature#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwFeature#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.HwFeature#getNamePrefix()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.HwFeature#getNamePrefixSegments()
 	 * @generated
 	 */
-	EOperation getHwFeature__GetNamePrefix();
+	EOperation getHwFeature__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwFeature#toString() <em>To String</em>}' operation.
@@ -35478,14 +44669,14 @@
 	EReference getHwPort_Connections();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwPort#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwPort#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.HwPort#getNamePrefix()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.HwPort#getNamePrefixSegments()
 	 * @generated
 	 */
-	EOperation getHwPort__GetNamePrefix();
+	EOperation getHwPort__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ConnectionHandler <em>Connection Handler</em>}'.
@@ -35596,14 +44787,14 @@
 	EAttribute getHwConnection_Internal();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwConnection#getNamePrefix() <em>Get Name Prefix</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwConnection#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.HwConnection#getNamePrefix()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.HwConnection#getNamePrefixSegments()
 	 * @generated
 	 */
-	EOperation getHwConnection__GetNamePrefix();
+	EOperation getHwConnection__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.HwConnection#getPorts() <em>Get Ports</em>}' operation.
@@ -39230,15 +48421,15 @@
 	EClass getProcess();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.Process#getCallGraph <em>Call Graph</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.Process#getActivityGraph <em>Activity Graph</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Call Graph</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Process#getCallGraph()
+	 * @return the meta object for the containment reference '<em>Activity Graph</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Process#getActivityGraph()
 	 * @see #getProcess()
 	 * @generated
 	 */
-	EReference getProcess_CallGraph();
+	EReference getProcess_ActivityGraph();
 
 	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Process#getStimuli <em>Stimuli</em>}'.
@@ -39252,67 +48443,78 @@
 	EReference getProcess_Stimuli();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer <em>ICall Graph Item Container</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer <em>IActivity Graph Item Container</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>ICall Graph Item Container</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer
+	 * @return the meta object for class '<em>IActivity Graph Item Container</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer
 	 * @generated
 	 */
-	EClass getICallGraphItemContainer();
+	EClass getIActivityGraphItemContainer();
 
 	/**
-	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer#getItems <em>Items</em>}'.
+	 * Returns the meta object for the containment reference list '{@link org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer#getItems <em>Items</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the containment reference list '<em>Items</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer#getItems()
-	 * @see #getICallGraphItemContainer()
+	 * @see org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer#getItems()
+	 * @see #getIActivityGraphItemContainer()
 	 * @generated
 	 */
-	EReference getICallGraphItemContainer_Items();
+	EReference getIActivityGraphItemContainer_Items();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.CallGraph <em>Call Graph</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ActivityGraph <em>Activity Graph</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Call Graph</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraph
+	 * @return the meta object for class '<em>Activity Graph</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraph
 	 * @generated
 	 */
-	EClass getCallGraph();
+	EClass getActivityGraph();
 
 	/**
-	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.CallGraphItem <em>Call Graph Item</em>}'.
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem <em>Activity Graph Item</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for class '<em>Call Graph Item</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraphItem
+	 * @return the meta object for class '<em>Activity Graph Item</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraphItem
 	 * @generated
 	 */
-	EClass getCallGraphItem();
+	EClass getActivityGraphItem();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingProcess <em>Containing Process</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingProcess <em>Containing Process</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Containing Process</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingProcess()
-	 * @see #getCallGraphItem()
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingProcess()
+	 * @see #getActivityGraphItem()
 	 * @generated
 	 */
-	EReference getCallGraphItem_ContainingProcess();
+	EReference getActivityGraphItem_ContainingProcess();
 
 	/**
-	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingRunnable <em>Containing Runnable</em>}'.
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingRunnable <em>Containing Runnable</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the meta object for the reference '<em>Containing Runnable</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingRunnable()
-	 * @see #getCallGraphItem()
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingRunnable()
+	 * @see #getActivityGraphItem()
 	 * @generated
 	 */
-	EReference getCallGraphItem_ContainingRunnable();
+	EReference getActivityGraphItem_ContainingRunnable();
+
+	/**
+	 * Returns the meta object for the reference '{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingActivityGraph <em>Containing Activity Graph</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the reference '<em>Containing Activity Graph</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraphItem#getContainingActivityGraph()
+	 * @see #getActivityGraphItem()
+	 * @generated
+	 */
+	EReference getActivityGraphItem_ContainingActivityGraph();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ModeSwitch <em>Mode Switch</em>}'.
@@ -39997,6 +49199,27 @@
 	EAttribute getOrderPrecedenceSpec_OrderType();
 
 	/**
+	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.IDependsOn <em>IDepends On</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for class '<em>IDepends On</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IDependsOn
+	 * @generated
+	 */
+	EClass getIDependsOn();
+
+	/**
+	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.IDependsOn#getDependsOn <em>Depends On</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the meta object for the containment reference '<em>Depends On</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.IDependsOn#getDependsOn()
+	 * @see #getIDependsOn()
+	 * @generated
+	 */
+	EReference getIDependsOn_DependsOn();
+
+	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.DataDependency <em>Data Dependency</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -40094,25 +49317,14 @@
 	EReference getRunnableParameter_DataType();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getDependsOn <em>Depends On</em>}'.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Depends On</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.RunnableParameter#getDependsOn()
-	 * @see #getRunnableParameter()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.RunnableParameter#getNamePrefixSegments()
 	 * @generated
 	 */
-	EReference getRunnableParameter_DependsOn();
-
-	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getNamePrefix() <em>Get Name Prefix</em>}' operation.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Get Name Prefix</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.RunnableParameter#getNamePrefix()
-	 * @generated
-	 */
-	EOperation getRunnableParameter__GetNamePrefix();
+	EOperation getRunnableParameter__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#toString() <em>To String</em>}' operation.
@@ -40157,15 +49369,15 @@
 	EReference getRunnable_Parameters();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.Runnable#getCallGraph <em>Call Graph</em>}'.
+	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivityGraph <em>Activity Graph</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Call Graph</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.Runnable#getCallGraph()
+	 * @return the meta object for the containment reference '<em>Activity Graph</em>'.
+	 * @see org.eclipse.app4mc.amalthea.model.Runnable#getActivityGraph()
 	 * @see #getRunnable()
 	 * @generated
 	 */
-	EReference getRunnable_CallGraph();
+	EReference getRunnable_ActivityGraph();
 
 	/**
 	 * Returns the meta object for the reference list '{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivations <em>Activations</em>}'.
@@ -40793,17 +50005,6 @@
 	EAttribute getLabelAccess_Implementation();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getDependsOn <em>Depends On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Depends On</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.LabelAccess#getDependsOn()
-	 * @see #getLabelAccess()
-	 * @generated
-	 */
-	EReference getLabelAccess_DependsOn();
-
-	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.ChannelAccess <em>Channel Access</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41176,17 +50377,6 @@
 	EReference getCallArgument_Parameter();
 
 	/**
-	 * Returns the meta object for the containment reference '{@link org.eclipse.app4mc.amalthea.model.CallArgument#getDependsOn <em>Depends On</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the meta object for the containment reference '<em>Depends On</em>'.
-	 * @see org.eclipse.app4mc.amalthea.model.CallArgument#getDependsOn()
-	 * @see #getCallArgument()
-	 * @generated
-	 */
-	EReference getCallArgument_DependsOn();
-
-	/**
 	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.CallArgument#getName() <em>Get Name</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -41197,14 +50387,14 @@
 	EOperation getCallArgument__GetName();
 
 	/**
-	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.CallArgument#computeUniqueName() <em>Compute Unique Name</em>}' operation.
+	 * Returns the meta object for the '{@link org.eclipse.app4mc.amalthea.model.CallArgument#getNamePrefixSegments() <em>Get Name Prefix Segments</em>}' operation.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the meta object for the '<em>Compute Unique Name</em>' operation.
-	 * @see org.eclipse.app4mc.amalthea.model.CallArgument#computeUniqueName()
+	 * @return the meta object for the '<em>Get Name Prefix Segments</em>' operation.
+	 * @see org.eclipse.app4mc.amalthea.model.CallArgument#getNamePrefixSegments()
 	 * @generated
 	 */
-	EOperation getCallArgument__ComputeUniqueName();
+	EOperation getCallArgument__GetNamePrefixSegments();
 
 	/**
 	 * Returns the meta object for class '{@link org.eclipse.app4mc.amalthea.model.RunnableCall <em>Runnable Call</em>}'.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArchitectureRequirement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArchitectureRequirement.java
index ba4dea3..e85a3e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArchitectureRequirement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArchitectureRequirement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Array.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Array.java
index f501471..2cc7b10 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Array.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Array.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveEntry.java
index 73f0ed0..42f8740 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveStimulus.java
index acc7cb8..26997e4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ArrivalCurveStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AsynchronousServerCall.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AsynchronousServerCall.java
index f5cd159..57258cb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AsynchronousServerCall.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/AsynchronousServerCall.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseObject.java
index e690214..d920e4d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseTypeDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseTypeDefinition.java
index 26f9633..975a960 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseTypeDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BaseTypeDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BigIntegerObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BigIntegerObject.java
index 4b1cb06..953d784 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BigIntegerObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BigIntegerObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BlockingType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BlockingType.java
index 4dec5a3..31c11ec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BlockingType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BlockingType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BooleanObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BooleanObject.java
index 885afae..d2faa62 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BooleanObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BooleanObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedContinuousValueDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedContinuousValueDistribution.java
index 731eb3f..30c998b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedContinuousValueDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedContinuousValueDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedDiscreteValueDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedDiscreteValueDistribution.java
index 3df4f78..66aa506 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedDiscreteValueDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedDiscreteValueDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedTimeDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedTimeDistribution.java
index 5904138..40d7beb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedTimeDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/BoundedTimeDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageMetric.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageMetric.java
index 6359358..cfb38cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageMetric.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageMetric.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageRequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageRequirementLimit.java
index 9843c4d..52aadf3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageRequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CPUPercentageRequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Cache.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Cache.java
index e1a3c78..2f81c20 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Cache.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Cache.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheDefinition.java
index 0f7f459..7adf31a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheType.java
index df3cff7..8c28d5c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CacheType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallArgument.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallArgument.java
index 60a9439..ad3c662 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallArgument.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallArgument.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -26,14 +27,13 @@
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.CallArgument#getContainingCall <em>Containing Call</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.CallArgument#getParameter <em>Parameter</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.CallArgument#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallArgument()
  * @model
  * @generated
  */
-public interface CallArgument extends ReferableObject {
+public interface CallArgument extends ReferableObject, IDependsOn {
 	/**
 	 * Returns the value of the '<em><b>Containing Call</b></em>' container reference.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.RunnableCall#getArguments <em>Arguments</em>}'.
@@ -70,28 +70,6 @@
 	void setParameter(RunnableParameter value);
 
 	/**
-	 * Returns the value of the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Depends On</em>' containment reference.
-	 * @see #setDependsOn(DataDependency)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallArgument_DependsOn()
-	 * @model containment="true"
-	 * @generated
-	 */
-	DataDependency getDependsOn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.CallArgument#getDependsOn <em>Depends On</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Depends On</em>' containment reference.
-	 * @see #getDependsOn()
-	 * @generated
-	 */
-	void setDependsOn(DataDependency value);
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @model kind="operation" unique="false"
@@ -102,9 +80,9 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @model unique="false"
+	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String computeUniqueName();
+	EList<String> getNamePrefixSegments();
 
 } // CallArgument
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraphItem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraphItem.java
deleted file mode 100644
index 9510ac5..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CallGraphItem.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Call Graph Item</b></em>'.
- * <!-- end-user-doc -->
- *
- * <!-- begin-model-doc -->
- * An abstract item of a call graph
- * <!-- end-model-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingProcess <em>Containing Process</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.CallGraphItem#getContainingRunnable <em>Containing Runnable</em>}</li>
- * </ul>
- *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallGraphItem()
- * @model abstract="true"
- * @generated
- */
-public interface CallGraphItem extends BaseObject {
-	/**
-	 * Returns the value of the '<em><b>Containing Process</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Containing Process</em>' reference.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallGraphItem_ContainingProcess()
-	 * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	org.eclipse.app4mc.amalthea.model.Process getContainingProcess();
-
-	/**
-	 * Returns the value of the '<em><b>Containing Runnable</b></em>' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Containing Runnable</em>' reference.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCallGraphItem_ContainingRunnable()
-	 * @model resolveProxies="false" transient="true" changeable="false" volatile="true" derived="true"
-	 * @generated
-	 */
-	org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable();
-
-} // CallGraphItem
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChainedProcessPrototype.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChainedProcessPrototype.java
index 433e60a..0b61996 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChainedProcessPrototype.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChainedProcessPrototype.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Channel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Channel.java
index a926f01..073d53e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Channel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Channel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
  * @model
  * @generated
  */
-public interface Channel extends AbstractMemoryElement, IDisplayName {
+public interface Channel extends AbstractMemoryElement, IDisplayName, INamespaceMember {
 	/**
 	 * Returns the value of the '<em><b>Element Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelAccess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelAccess.java
index b132885..5f46fdf 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelAccess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelAccess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -33,7 +33,7 @@
  * @model abstract="true"
  * @generated
  */
-public interface ChannelAccess extends CallGraphItem {
+public interface ChannelAccess extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEvent.java
index bd1ee25..2a4996a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEventType.java
index d508132..028c939 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelReceive.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelReceive.java
index d43b18c..2f114af 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelReceive.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelReceive.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelSend.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelSend.java
index 9ea93ca..4ad0ed1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelSend.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ChannelSend.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classification.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classification.java
index e5e7755..13cc692 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classification.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classification.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classifier.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classifier.java
index 0d8fb89..23b951b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classifier.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Classifier.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClearEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClearEvent.java
index 1074e04..5272ba4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClearEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClearEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface ClearEvent extends CallGraphItem {
+public interface ClearEvent extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Event Mask</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Clock.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Clock.java
index ea6b797..1d1867e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Clock.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Clock.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockFunction.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockFunction.java
index 5af4deb..e3b292e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockFunction.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockFunction.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStep.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStep.java
index be712ff..e15d705 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStep.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStep.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStepList.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStepList.java
index a1ba74a..c3bb873 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStepList.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ClockStepList.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoherencyDirection.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoherencyDirection.java
index c5a6c8c..e6a2261 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoherencyDirection.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoherencyDirection.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CommonElements.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CommonElements.java
index 709290d..456cb9a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CommonElements.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CommonElements.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -26,6 +26,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.CommonElements#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.CommonElements#getNamespaces <em>Namespaces</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.CommonElements#getCoreClassifiers <em>Core Classifiers</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.CommonElements#getMemoryClassifiers <em>Memory Classifiers</em>}</li>
  * </ul>
@@ -48,6 +49,18 @@
 	EList<Tag> getTags();
 
 	/**
+	 * Returns the value of the '<em><b>Namespaces</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Namespace}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Namespaces</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getCommonElements_Namespaces()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<Namespace> getNamespaces();
+
+	/**
 	 * Returns the value of the '<em><b>Core Classifiers</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.CoreClassifier}.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Component.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Component.java
index 40cfef8..96bcd61 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Component.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Component.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getPorts <em>Ports</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getTasks <em>Tasks</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getProcesses <em>Processes</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getRunnables <em>Runnables</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getLabels <em>Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Component#getSemaphores <em>Semaphores</em>}</li>
@@ -37,32 +37,32 @@
  * @model
  * @generated
  */
-public interface Component extends ReferableBaseObject, ITaggable {
+public interface Component extends ReferableBaseObject, ITaggable, INamespaceMember, IComponentStructureMember {
 	/**
 	 * Returns the value of the '<em><b>Ports</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Port}.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Port#getContainingComponent <em>Containing Component</em>}'.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ComponentPort}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getContainingComponent <em>Containing Component</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Ports</em>' containment reference list.
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponent_Ports()
-	 * @see org.eclipse.app4mc.amalthea.model.Port#getContainingComponent
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort#getContainingComponent
 	 * @model opposite="containingComponent" containment="true"
 	 * @generated
 	 */
-	EList<Port> getPorts();
+	EList<ComponentPort> getPorts();
 
 	/**
-	 * Returns the value of the '<em><b>Tasks</b></em>' reference list.
+	 * Returns the value of the '<em><b>Processes</b></em>' reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.AbstractProcess}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Tasks</em>' reference list.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponent_Tasks()
+	 * @return the value of the '<em>Processes</em>' reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponent_Processes()
 	 * @model
 	 * @generated
 	 */
-	EList<AbstractProcess> getTasks();
+	EList<AbstractProcess> getProcesses();
 
 	/**
 	 * Returns the value of the '<em><b>Runnables</b></em>' reference list.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEvent.java
index 7b31d8e..996bc16 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEventType.java
index 4b2a1dd..3494ac6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInstance.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInstance.java
index e480024..fc63e5a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInstance.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInstance.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -24,6 +25,7 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem <em>Containing System</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getType <em>Type</em>}</li>
  * </ul>
  *
@@ -33,6 +35,30 @@
  */
 public interface ComponentInstance extends ReferableBaseObject, ITaggable {
 	/**
+	 * Returns the value of the '<em><b>Containing System</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.ISystem#getComponentInstances <em>Component Instances</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing System</em>' container reference.
+	 * @see #setContainingSystem(ISystem)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentInstance_ContainingSystem()
+	 * @see org.eclipse.app4mc.amalthea.model.ISystem#getComponentInstances
+	 * @model opposite="componentInstances" transient="false"
+	 * @generated
+	 */
+	ISystem getContainingSystem();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem <em>Containing System</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Containing System</em>' container reference.
+	 * @see #getContainingSystem()
+	 * @generated
+	 */
+	void setContainingSystem(ISystem value);
+
+	/**
 	 * Returns the value of the '<em><b>Type</b></em>' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -54,4 +80,12 @@
 	 */
 	void setType(Component value);
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
 } // ComponentInstance
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInterface.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInterface.java
new file mode 100644
index 0000000..b7964db
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentInterface.java
@@ -0,0 +1,73 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Component Interface</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getSubInterfaces <em>Sub Interfaces</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentInterface()
+ * @model abstract="true"
+ * @generated
+ */
+public interface ComponentInterface extends ReferableBaseObject, ITaggable {
+	/**
+	 * Returns the value of the '<em><b>Datatype</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Datatype</em>' reference.
+	 * @see #setDatatype(TypeDefinition)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentInterface_Datatype()
+	 * @model
+	 * @generated
+	 */
+	TypeDefinition getDatatype();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getDatatype <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Datatype</em>' reference.
+	 * @see #getDatatype()
+	 * @generated
+	 */
+	void setDatatype(TypeDefinition value);
+
+	/**
+	 * Returns the value of the '<em><b>Sub Interfaces</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.SubInterface}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.SubInterface#getContainingInterface <em>Containing Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sub Interfaces</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentInterface_SubInterfaces()
+	 * @see org.eclipse.app4mc.amalthea.model.SubInterface#getContainingInterface
+	 * @model opposite="containingInterface" containment="true"
+	 * @generated
+	 */
+	EList<SubInterface> getSubInterfaces();
+
+} // ComponentInterface
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentPort.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentPort.java
new file mode 100644
index 0000000..93d220b
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentPort.java
@@ -0,0 +1,106 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Component Port</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getContainingComponent <em>Containing Component</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getKind <em>Kind</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getInterface <em>Interface</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentPort()
+ * @model
+ * @generated
+ */
+public interface ComponentPort extends ReferableBaseObject, ITaggable {
+	/**
+	 * Returns the value of the '<em><b>Containing Component</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Component#getPorts <em>Ports</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing Component</em>' container reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentPort_ContainingComponent()
+	 * @see org.eclipse.app4mc.amalthea.model.Component#getPorts
+	 * @model opposite="ports" transient="false" changeable="false"
+	 * @generated
+	 */
+	Component getContainingComponent();
+
+	/**
+	 * Returns the value of the '<em><b>Kind</b></em>' attribute.
+	 * The literals are from the enumeration {@link org.eclipse.app4mc.amalthea.model.InterfaceKind}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Kind</em>' attribute.
+	 * @see org.eclipse.app4mc.amalthea.model.InterfaceKind
+	 * @see #setKind(InterfaceKind)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentPort_Kind()
+	 * @model unique="false"
+	 * @generated
+	 */
+	InterfaceKind getKind();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getKind <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Kind</em>' attribute.
+	 * @see org.eclipse.app4mc.amalthea.model.InterfaceKind
+	 * @see #getKind()
+	 * @generated
+	 */
+	void setKind(InterfaceKind value);
+
+	/**
+	 * Returns the value of the '<em><b>Interface</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interface</em>' reference.
+	 * @see #setInterface(ComponentInterface)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentPort_Interface()
+	 * @model
+	 * @generated
+	 */
+	ComponentInterface getInterface();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ComponentPort#getInterface <em>Interface</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Interface</em>' reference.
+	 * @see #getInterface()
+	 * @generated
+	 */
+	void setInterface(ComponentInterface value);
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
+} // ComponentPort
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentScope.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentScope.java
index b1c22cf..f4c63c4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentScope.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentScope.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentStructure.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentStructure.java
new file mode 100644
index 0000000..775672f
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentStructure.java
@@ -0,0 +1,112 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Component Structure</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getStructureType <em>Structure Type</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getSubStructures <em>Sub Structures</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getMemberObjects <em>Member Objects</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentStructure()
+ * @model
+ * @generated
+ */
+public interface ComponentStructure extends ReferableObject {
+	/**
+	 * Returns the value of the '<em><b>Structure Type</b></em>' attribute.
+	 * The default value is <code>""</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Structure Type</em>' attribute.
+	 * @see #setStructureType(String)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentStructure_StructureType()
+	 * @model default="" unique="false"
+	 * @generated
+	 */
+	String getStructureType();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure#getStructureType <em>Structure Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Structure Type</em>' attribute.
+	 * @see #getStructureType()
+	 * @generated
+	 */
+	void setStructureType(String value);
+
+	/**
+	 * Returns the value of the '<em><b>Sub Structures</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ComponentStructure}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Sub Structures</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentStructure_SubStructures()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<ComponentStructure> getSubStructures();
+
+	/**
+	 * Returns the value of the '<em><b>Member Objects</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * <p><b>Returns an <em>immutable</em> list of objects (IComponentStructureMember) referring to this structure.</b></p>
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Member Objects</em>' reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentStructure_MemberObjects()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	EList<IComponentStructureMember> getMemberObjects();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	ComponentStructure getContainingStructure();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	String getDefaultNameSeparator();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
+} // ComponentStructure
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentsModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentsModel.java
index c4dfd4f..dff6cc4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentsModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComponentsModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -25,7 +25,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getComponents <em>Components</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getStructures <em>Structures</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.ComponentsModel#getSystems <em>Systems</em>}</li>
  * </ul>
  *
@@ -33,18 +33,18 @@
  * @model
  * @generated
  */
-public interface ComponentsModel extends BaseObject {
+public interface ComponentsModel extends BaseObject, IComponentContainer, IInterfaceContainer {
 	/**
-	 * Returns the value of the '<em><b>Components</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Component}.
+	 * Returns the value of the '<em><b>Structures</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ComponentStructure}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Components</em>' containment reference list.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentsModel_Components()
+	 * @return the value of the '<em>Structures</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getComponentsModel_Structures()
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<Component> getComponents();
+	EList<ComponentStructure> getStructures();
 
 	/**
 	 * Returns the value of the '<em><b>Systems</b></em>' containment reference list.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Composite.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Composite.java
index 3bb338a..2fbc228 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Composite.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Composite.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CompoundType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CompoundType.java
index 02803fc..cd15c84 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CompoundType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CompoundType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComputationItem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComputationItem.java
index 7ba1242..29c00ff 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComputationItem.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ComputationItem.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -29,5 +29,5 @@
  * @model abstract="true"
  * @generated
  */
-public interface ComputationItem extends CallGraphItem {
+public interface ComputationItem extends ActivityGraphItem {
 } // ComputationItem
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConcurrencyType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConcurrencyType.java
index 73c69f9..bba20c7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConcurrencyType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConcurrencyType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Condition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Condition.java
index 221eb85..61de3b0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Condition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Condition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConfigModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConfigModel.java
index 169fd17..3a5fa82 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConfigModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConfigModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandler.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandler.java
index bd7b88e..c0e517b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandler.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandler.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandlerDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandlerDefinition.java
index cd30179..b506b3e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandlerDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConnectionHandlerDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Connector.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Connector.java
index 7508697..6a8d534 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Connector.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Connector.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EMap;
 
 /**
  * <!-- begin-user-doc -->
@@ -24,8 +25,10 @@
  * The following features are supported:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem <em>Containing System</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Connector#getSourcePort <em>Source Port</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Connector#getTargetPort <em>Target Port</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Connector#getImplementedInterfaces <em>Implemented Interfaces</em>}</li>
  * </ul>
  *
  * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getConnector()
@@ -34,6 +37,30 @@
  */
 public interface Connector extends BaseObject, INamed, ITaggable {
 	/**
+	 * Returns the value of the '<em><b>Containing System</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.ISystem#getConnectors <em>Connectors</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing System</em>' container reference.
+	 * @see #setContainingSystem(ISystem)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getConnector_ContainingSystem()
+	 * @see org.eclipse.app4mc.amalthea.model.ISystem#getConnectors
+	 * @model opposite="connectors" transient="false"
+	 * @generated
+	 */
+	ISystem getContainingSystem();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem <em>Containing System</em>}' container reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Containing System</em>' container reference.
+	 * @see #getContainingSystem()
+	 * @generated
+	 */
+	void setContainingSystem(ISystem value);
+
+	/**
 	 * Returns the value of the '<em><b>Source Port</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -77,4 +104,17 @@
 	 */
 	void setTargetPort(QualifiedPort value);
 
+	/**
+	 * Returns the value of the '<em><b>Implemented Interfaces</b></em>' map.
+	 * The key is of type {@link org.eclipse.app4mc.amalthea.model.ComponentInterface},
+	 * and the value is of type {@link org.eclipse.app4mc.amalthea.model.Channel},
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Implemented Interfaces</em>' map.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getConnector_ImplementedInterfaces()
+	 * @model mapType="org.eclipse.app4mc.amalthea.model.InterfaceChannel&lt;org.eclipse.app4mc.amalthea.model.ComponentInterface, org.eclipse.app4mc.amalthea.model.Channel&gt;"
+	 * @generated
+	 */
+	EMap<ComponentInterface, Channel> getImplementedInterfaces();
+
 } // Connector
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServer.java
index e80170e..ec1c78e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServerWithCASH.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServerWithCASH.java
index 6394669..952ce8b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServerWithCASH.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstantBandwidthServerWithCASH.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstraintsModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstraintsModel.java
index 391ee62..b8488ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstraintsModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ConstraintsModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBetaDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBetaDistribution.java
index e127d46..01c80ca 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBetaDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBetaDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBoundaries.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBoundaries.java
index 5bf6f4a..2761101 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBoundaries.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueBoundaries.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueConstant.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueConstant.java
index e167f52..b0e67f7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueConstant.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueConstant.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueGaussDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueGaussDistribution.java
index 003e179..0ee9edd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueGaussDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueGaussDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogram.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogram.java
index 9d38cf4..70eeaa2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogram.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogram.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogramEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogramEntry.java
index ad755c2..56914b6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogramEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueHistogramEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueInterval.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueInterval.java
index ed3c667..62fd5df 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueInterval.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueInterval.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueStatistics.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueStatistics.java
index 0e31bbf..b625ff2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueStatistics.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueStatistics.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueUniformDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueUniformDistribution.java
index 8b5e74d..462d73d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueUniformDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueUniformDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueWeibullEstimatorsDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueWeibullEstimatorsDistribution.java
index 9cf9e3c..5ec81d0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueWeibullEstimatorsDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ContinuousValueWeibullEstimatorsDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreAllocationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreAllocationConstraint.java
index f4ed719..73a2517 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreAllocationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreAllocationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassification.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassification.java
index 2a73812..c65efa1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassification.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassification.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassifier.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassifier.java
index c73cf40..5fa6bdf 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassifier.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CoreClassifier.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountMetric.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountMetric.java
index fda4a64..82fa0a4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountMetric.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountMetric.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountRequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountRequirementLimit.java
index 66c08d9..9cab811 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountRequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CountRequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Counter.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Counter.java
index 051ac90..df47d2f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Counter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Counter.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CurveType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CurveType.java
index ce43135..04ef898 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CurveType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CurveType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomActivation.java
index 3fa898e..5b07f44 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEntity.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEntity.java
index 1c0bffa..65fb761 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEntity.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEntity.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEvent.java
index c663446..3a8dcf3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEventTrigger.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEventTrigger.java
index 111d63b..79e2c00 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEventTrigger.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomEventTrigger.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
  * @model
  * @generated
  */
-public interface CustomEventTrigger extends CallGraphItem {
+public interface CustomEventTrigger extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Event</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomStimulus.java
index b988b64..d25e742 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/CustomStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAge.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAge.java
index b021215..5ab295e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAge.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAge.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeConstraint.java
index 2e2affa..5b8c879 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeCycle.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeCycle.java
index 68febf1..0eba1d0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeCycle.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeCycle.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeTime.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeTime.java
index 801b276..e326336 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeTime.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataAgeTime.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataCoherencyGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataCoherencyGroup.java
index 81170e1..678d175 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataCoherencyGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataCoherencyGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraint.java
index fa649f2..b9f62a8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraintTarget.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraintTarget.java
index a8e66ed..a040f22 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraintTarget.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataConstraintTarget.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataDependency.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataDependency.java
index 1148433..41c79ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataDependency.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataDependency.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataGroupScope.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataGroupScope.java
index 100be3d..b347a22 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataGroupScope.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataGroupScope.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataPairingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataPairingConstraint.java
index 32156bb..3004a59 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataPairingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataPairingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRate.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRate.java
index 44c90b9..716b115 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRate.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRate.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRateUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRateUnit.java
index b808583..72b6706 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRateUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataRateUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSeparationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSeparationConstraint.java
index 6bc7c53..c951da2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSeparationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSeparationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSize.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSize.java
index f4360a5..736990c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSize.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSize.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSizeUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSizeUnit.java
index 0a43001..103e15f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSizeUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataSizeUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStability.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStability.java
index 1d85278..99cd4ed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStability.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStability.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityGroup.java
index 99089a1..27d395d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityLevel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityLevel.java
index 16dc5ba..8b6028b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityLevel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataStabilityLevel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataType.java
index 5218e88..534fcc6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataTypeDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataTypeDefinition.java
index c38cf40..ee75cfe 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataTypeDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DataTypeDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeadlineMonotonic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeadlineMonotonic.java
index 35fac14..7a9baad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeadlineMonotonic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeadlineMonotonic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeferrableServer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeferrableServer.java
index 837de59..b97d57f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeferrableServer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DeferrableServer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DelayConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DelayConstraint.java
index fc3592a..f45cf7e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DelayConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DelayConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DirectionType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DirectionType.java
index 6af65e9..125ecb1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DirectionType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DirectionType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBetaDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBetaDistribution.java
index 8a4fd30..d42f82b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBetaDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBetaDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBoundaries.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBoundaries.java
index 7f9c6f7..c59cee5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBoundaries.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueBoundaries.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueConstant.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueConstant.java
index 0ef1d26..c3c6c87 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueConstant.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueConstant.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueGaussDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueGaussDistribution.java
index 36774a8..35a29a2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueGaussDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueGaussDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogram.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogram.java
index a40071c..34cd3e3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogram.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogram.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogramEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogramEntry.java
index bdbb436..eba179b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogramEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueHistogramEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueInterval.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueInterval.java
index 203ad06..bb24021 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueInterval.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueInterval.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueStatistics.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueStatistics.java
index 6a11d81..83a710f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueStatistics.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueStatistics.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueUniformDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueUniformDistribution.java
index 398a02e..76085da 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueUniformDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueUniformDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueWeibullEstimatorsDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueWeibullEstimatorsDistribution.java
index 51ccbf4..8fd2701 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueWeibullEstimatorsDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DiscreteValueWeibullEstimatorsDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DoubleObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DoubleObject.java
index 2440882..17780ca 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DoubleObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DoubleObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DynamicPriority.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DynamicPriority.java
index 55d3521..35f698c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DynamicPriority.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/DynamicPriority.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarliestDeadlineFirst.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarliestDeadlineFirst.java
index d8362e3..4d47e58 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarliestDeadlineFirst.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarliestDeadlineFirst.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarlyReleaseFairPD2.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarlyReleaseFairPD2.java
index 6343ab4..243054d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarlyReleaseFairPD2.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EarlyReleaseFairPD2.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnforcedMigration.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnforcedMigration.java
index ed64f0d..2db7102 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnforcedMigration.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnforcedMigration.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
  * @model
  * @generated
  */
-public interface EnforcedMigration extends CallGraphItem {
+public interface EnforcedMigration extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Resource Owner</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EntityEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EntityEvent.java
index 4d4ccea..dd89fdc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EntityEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EntityEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnumMode.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnumMode.java
index 70512d0..e342a0e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnumMode.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EnumMode.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Event.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Event.java
index 71f12fe..68857ca 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Event.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Event.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventActivation.java
index 1025608..de3a244 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChain.java
index 70d839b..5101f29 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainContainer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainContainer.java
index 92ecdc4..c23dfcb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainContainer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainContainer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItem.java
index dec173f..c455185 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItem.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItem.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItemType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItemType.java
index 08d5d3e..8669bba 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItemType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainItemType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainLatencyConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainLatencyConstraint.java
index 95536d6..1554176 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainLatencyConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainLatencyConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainMeasurement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainMeasurement.java
index 9071d26..2d89cf9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainMeasurement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainMeasurement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainReference.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainReference.java
index f9400d9..7e17b25 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainReference.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainReference.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainSynchronizationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainSynchronizationConstraint.java
index d5f62bb..28a04f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainSynchronizationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventChainSynchronizationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventConfig.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventConfig.java
index aa7baa0..82bd3d6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventConfig.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventConfig.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventMask.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventMask.java
index d454fbe..b549c14 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventMask.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventMask.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventModel.java
index ae91d54..ec2b547 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSet.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSet.java
index 7d57a71..20bfa65 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSet.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSet.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventStimulus.java
index a3616cc..4ddf8fb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSynchronizationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSynchronizationConstraint.java
index dbf47c2..afc3045 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSynchronizationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/EventSynchronizationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ExecutionNeed.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ExecutionNeed.java
index aba6f2f..a97febb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ExecutionNeed.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ExecutionNeed.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface ExecutionNeed extends CallGraphItem {
+public interface ExecutionNeed extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Needs</b></em>' map.
 	 * The key is of type {@link java.lang.String},
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPeriodic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPeriodic.java
index 0d12151..1e8e806 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPeriodic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPeriodic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriority.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriority.java
index ef62641..1e8c98a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriority.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriority.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptive.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptive.java
index 6e1bfdd..9d60484 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptive.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptive.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptiveWithBudgetEnforcement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptiveWithBudgetEnforcement.java
index b7c89cb..8af2469 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptiveWithBudgetEnforcement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FixedPriorityPreemptiveWithBudgetEnforcement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FloatObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FloatObject.java
index b3d267d..37b46d5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FloatObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FloatObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Frequency.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Frequency.java
index 9244d04..d2265ba 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Frequency.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Frequency.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyDomain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyDomain.java
index c23b68a..7a293d3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyDomain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyDomain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyMetric.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyMetric.java
index 115ddf3..906a903 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyMetric.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyMetric.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyRequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyRequirementLimit.java
index 86a5414..deb7924 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyRequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyRequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyUnit.java
index 26d3fc0..7b79f57 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/FrequencyUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GeneralPrecedence.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GeneralPrecedence.java
index 4f452f0..bbdf655 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GeneralPrecedence.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GeneralPrecedence.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GetResultServerCall.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GetResultServerCall.java
index 6ec9fc4..a9790ce 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GetResultServerCall.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GetResultServerCall.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Group.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Group.java
index f8953cd..77bc1a8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Group.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Group.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
  * @model
  * @generated
  */
-public interface Group extends CallGraphItem, INamed, ICallGraphItemContainer {
+public interface Group extends ActivityGraphItem, INamed, IActivityGraphItemContainer {
 	/**
 	 * Returns the value of the '<em><b>Ordered</b></em>' attribute.
 	 * The default value is <code>"true"</code>.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Grouping.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Grouping.java
index c022ade..76740a4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Grouping.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Grouping.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GroupingType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GroupingType.java
index 84d2874..63c410c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GroupingType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/GroupingType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HWModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HWModel.java
index 5ab500f..7b4c335 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HWModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HWModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessElement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessElement.java
index 1b0d8a6..e701348 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessElement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessElement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessPath.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessPath.java
index 0cd0add..9e9dcec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessPath.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwAccessPath.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwConnection.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwConnection.java
index 4344b8d..9cf1353 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwConnection.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwConnection.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -171,7 +171,7 @@
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
+	EList<String> getNamePrefixSegments();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDefinition.java
index 261e90c..c8cf7b5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDestination.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDestination.java
index d01e45c..c6718b8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDestination.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDestination.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDomain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDomain.java
index 0c60ad6..ac18f9d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDomain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwDomain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeature.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeature.java
index 28cdc13..a2557c1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeature.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeature.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -75,7 +76,7 @@
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
+	EList<String> getNamePrefixSegments();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureCategory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureCategory.java
index 0ab9836..777acf7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureCategory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureCategory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureType.java
index d34e9da..f6d6596 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwFeatureType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwModule.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwModule.java
index 49d2e62..7130182 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwModule.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwModule.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPath.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPath.java
index 9a358f7..158516c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPath.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPath.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPathElement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPathElement.java
index 9466b72..adfb008 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPathElement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPathElement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPort.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPort.java
index 31db02c..e8987e1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPort.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwPort.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -166,6 +166,6 @@
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
+	EList<String> getNamePrefixSegments();
 
 } // HwPort
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwStructure.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwStructure.java
index 65f40b9..ad34323 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwStructure.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/HwStructure.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IActivityGraphItemContainer.java
similarity index 64%
rename from plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java
rename to plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IActivityGraphItemContainer.java
index 6c40286..de77d89 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IActivityGraphItemContainer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,31 +20,31 @@
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>ICall Graph Item Container</b></em>'.
+ * A representation of the model object '<em><b>IActivity Graph Item Container</b></em>'.
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer#getItems <em>Items</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer#getItems <em>Items</em>}</li>
  * </ul>
  *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getICallGraphItemContainer()
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIActivityGraphItemContainer()
  * @model interface="true" abstract="true"
  * @generated
  */
-public interface ICallGraphItemContainer extends EObject {
+public interface IActivityGraphItemContainer extends EObject {
 	/**
 	 * Returns the value of the '<em><b>Items</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.CallGraphItem}.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Items</em>' containment reference list.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getICallGraphItemContainer_Items()
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIActivityGraphItemContainer_Items()
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<CallGraphItem> getItems();
+	EList<ActivityGraphItem> getItems();
 
-} // ICallGraphItemContainer
+} // IActivityGraphItemContainer
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IAnnotatable.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IAnnotatable.java
index 844ace7..f50d6f3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IAnnotatable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IAnnotatable.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentContainer.java
similarity index 60%
copy from plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java
copy to plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentContainer.java
index 6c40286..f26790d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ICallGraphItemContainer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentContainer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,31 +20,31 @@
 
 /**
  * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>ICall Graph Item Container</b></em>'.
+ * A representation of the model object '<em><b>IComponent Container</b></em>'.
  * <!-- end-user-doc -->
  *
  * <p>
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer#getItems <em>Items</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IComponentContainer#getComponents <em>Components</em>}</li>
  * </ul>
  *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getICallGraphItemContainer()
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIComponentContainer()
  * @model interface="true" abstract="true"
  * @generated
  */
-public interface ICallGraphItemContainer extends EObject {
+public interface IComponentContainer extends EObject {
 	/**
-	 * Returns the value of the '<em><b>Items</b></em>' containment reference list.
-	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.CallGraphItem}.
+	 * Returns the value of the '<em><b>Components</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Component}.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Items</em>' containment reference list.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getICallGraphItemContainer_Items()
+	 * @return the value of the '<em>Components</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIComponentContainer_Components()
 	 * @model containment="true"
 	 * @generated
 	 */
-	EList<CallGraphItem> getItems();
+	EList<Component> getComponents();
 
-} // ICallGraphItemContainer
+} // IComponentContainer
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentStructureMember.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentStructureMember.java
new file mode 100644
index 0000000..1c13a14
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IComponentStructureMember.java
@@ -0,0 +1,58 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IComponent Structure Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember#getStructure <em>Structure</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIComponentStructureMember()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface IComponentStructureMember extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Structure</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Structure</em>' reference.
+	 * @see #setStructure(ComponentStructure)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIComponentStructureMember_Structure()
+	 * @model
+	 * @generated
+	 */
+	ComponentStructure getStructure();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember#getStructure <em>Structure</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Structure</em>' reference.
+	 * @see #getStructure()
+	 * @generated
+	 */
+	void setStructure(ComponentStructure value);
+
+} // IComponentStructureMember
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IContinuousValueDeviation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IContinuousValueDeviation.java
index 6365f68..7893810 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IContinuousValueDeviation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IContinuousValueDeviation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDependsOn.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDependsOn.java
new file mode 100644
index 0000000..370b9bc
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDependsOn.java
@@ -0,0 +1,58 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IDepends On</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IDependsOn#getDependsOn <em>Depends On</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIDependsOn()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface IDependsOn extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Depends On</b></em>' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Depends On</em>' containment reference.
+	 * @see #setDependsOn(DataDependency)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIDependsOn_DependsOn()
+	 * @model containment="true"
+	 * @generated
+	 */
+	DataDependency getDependsOn();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.IDependsOn#getDependsOn <em>Depends On</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Depends On</em>' containment reference.
+	 * @see #getDependsOn()
+	 * @generated
+	 */
+	void setDependsOn(DataDependency value);
+
+} // IDependsOn
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDescription.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDescription.java
index eb899d3..e47d652 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDescription.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDescription.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDiscreteValueDeviation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDiscreteValueDeviation.java
index 7095b92..6f36879 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDiscreteValueDeviation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDiscreteValueDeviation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDisplayName.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDisplayName.java
index 95a6ed6..1c0f243 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDisplayName.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IDisplayName.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IInterfaceContainer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IInterfaceContainer.java
new file mode 100644
index 0000000..9d6d03e
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IInterfaceContainer.java
@@ -0,0 +1,50 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>IInterface Container</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.IInterfaceContainer#getInterfaces <em>Interfaces</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIInterfaceContainer()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface IInterfaceContainer extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Interfaces</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.MainInterface}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Interfaces</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getIInterfaceContainer_Interfaces()
+	 * @model containment="true"
+	 * @generated
+	 */
+	EList<MainInterface> getInterfaces();
+
+} // IInterfaceContainer
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamed.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamed.java
index bf19130..81d5de9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamed.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamed.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,8 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EObject;
 
 /**
@@ -30,6 +32,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.INamed#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.INamed#getQualifiedName <em>Qualified Name</em>}</li>
  * </ul>
  *
  * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getINamed()
@@ -60,4 +63,69 @@
 	 */
 	void setName(String value);
 
+	/**
+	 * Returns the value of the '<em><b>Qualified Name</b></em>' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Qualified Name</em>' attribute.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getINamed_QualifiedName()
+	 * @model unique="false" transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	String getQualifiedName();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	INamed getNamedContainer();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	String getNamePrefix();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getQualifiedNameSegments();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Overwrite this method to define a specific name separator.
+	 * <!-- end-model-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	String getDefaultNameSeparator();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	Namespace getNamespace();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * Overwrite this method to define a specific prefix (used by name-based references).
+	 * <!-- end-model-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
 } // INamed
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamespaceMember.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamespaceMember.java
new file mode 100644
index 0000000..cc676b6
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/INamespaceMember.java
@@ -0,0 +1,58 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>INamespace Member</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.INamespaceMember#getNamespace <em>Namespace</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getINamespaceMember()
+ * @model interface="true" abstract="true"
+ * @generated
+ */
+public interface INamespaceMember extends EObject {
+	/**
+	 * Returns the value of the '<em><b>Namespace</b></em>' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Namespace</em>' reference.
+	 * @see #setNamespace(Namespace)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getINamespaceMember_Namespace()
+	 * @model
+	 * @generated
+	 */
+	Namespace getNamespace();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.INamespaceMember#getNamespace <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Namespace</em>' reference.
+	 * @see #getNamespace()
+	 * @generated
+	 */
+	void setNamespace(Namespace value);
+
+} // INamespaceMember
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IReferable.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IReferable.java
index 8f9f898..db25314 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IReferable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IReferable.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -53,21 +53,10 @@
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * <!-- begin-model-doc -->
-	 * Overwrite this method to define a specific prefix (used by name-based references).
-	 * <!-- end-model-doc -->
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model unique="false" strUnique="false"
-	 * @generated
-	 */
-	String encode(String str);
+	String getEncodedQualifiedName();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISR.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISR.java
index b782f8e..8a6fbd2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISR.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISR.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRAllocation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRAllocation.java
index a67f01e..7fa12c4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRAllocation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRAllocation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRCategory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRCategory.java
index 705269f..308abc1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRCategory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISRCategory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISystem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISystem.java
index de7c511..83e6315 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISystem.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ISystem.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -41,11 +41,13 @@
 	/**
 	 * Returns the value of the '<em><b>Component Instances</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ComponentInstance}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem <em>Containing System</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Component Instances</em>' containment reference list.
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getISystem_ComponentInstances()
-	 * @model containment="true"
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInstance#getContainingSystem
+	 * @model opposite="containingSystem" containment="true"
 	 * @generated
 	 */
 	EList<ComponentInstance> getComponentInstances();
@@ -53,11 +55,13 @@
 	/**
 	 * Returns the value of the '<em><b>Connectors</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Connector}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem <em>Containing System</em>}'.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Connectors</em>' containment reference list.
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getISystem_Connectors()
-	 * @model containment="true"
+	 * @see org.eclipse.app4mc.amalthea.model.Connector#getContainingSystem
+	 * @model opposite="containingSystem" containment="true"
 	 * @generated
 	 */
 	EList<Connector> getConnectors();
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITaggable.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITaggable.java
index 2129596..fbb2198 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITaggable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITaggable.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITimeDeviation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITimeDeviation.java
index f17d2e8..0527eb1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITimeDeviation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ITimeDeviation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IntegerObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IntegerObject.java
index 87071a0..7128186 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IntegerObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/IntegerObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessStimulus.java
index e05a2d1..3a3dc99 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessTrigger.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessTrigger.java
index 2b2434c..2722421 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessTrigger.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterProcessTrigger.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface InterProcessTrigger extends CallGraphItem {
+public interface InterProcessTrigger extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Stimulus</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfaceKind.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfaceKind.java
index b3d33ff..339a7cd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfaceKind.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfaceKind.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfacePort.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfacePort.java
deleted file mode 100644
index 29f397a..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterfacePort.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Interface Port</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getInterfaceName <em>Interface Name</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getKind <em>Kind</em>}</li>
- * </ul>
- *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getInterfacePort()
- * @model
- * @generated
- */
-public interface InterfacePort extends Port {
-	/**
-	 * Returns the value of the '<em><b>Interface Name</b></em>' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Interface Name</em>' attribute.
-	 * @see #setInterfaceName(String)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getInterfacePort_InterfaceName()
-	 * @model unique="false"
-	 * @generated
-	 */
-	String getInterfaceName();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getInterfaceName <em>Interface Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Interface Name</em>' attribute.
-	 * @see #getInterfaceName()
-	 * @generated
-	 */
-	void setInterfaceName(String value);
-
-	/**
-	 * Returns the value of the '<em><b>Kind</b></em>' attribute.
-	 * The literals are from the enumeration {@link org.eclipse.app4mc.amalthea.model.InterfaceKind}.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Kind</em>' attribute.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfaceKind
-	 * @see #setKind(InterfaceKind)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getInterfacePort_Kind()
-	 * @model unique="false"
-	 * @generated
-	 */
-	InterfaceKind getKind();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.InterfacePort#getKind <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Kind</em>' attribute.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfaceKind
-	 * @see #getKind()
-	 * @generated
-	 */
-	void setKind(InterfaceKind value);
-
-} // InterfacePort
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptController.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptController.java
index 32bc876..ad16aee 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptController.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptController.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptSchedulingAlgorithm.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptSchedulingAlgorithm.java
index 405657d..ddbae47 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptSchedulingAlgorithm.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/InterruptSchedulingAlgorithm.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Label.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Label.java
index 30abec7..336e79f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Label.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Label.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -43,7 +43,7 @@
  * @model
  * @generated
  */
-public interface Label extends AbstractMemoryElement, IDisplayName {
+public interface Label extends AbstractMemoryElement, IDisplayName, INamespaceMember {
 	/**
 	 * Returns the value of the '<em><b>Data Type</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccess.java
index 8951639..4add8b4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -34,14 +34,13 @@
  *   <li>{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getTransmissionPolicy <em>Transmission Policy</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getDataStability <em>Data Stability</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getImplementation <em>Implementation</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getLabelAccess()
  * @model
  * @generated
  */
-public interface LabelAccess extends ComputationItem, ITaggable {
+public interface LabelAccess extends ComputationItem, ITaggable, IDependsOn {
 	/**
 	 * Returns the value of the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -192,26 +191,4 @@
 	 */
 	void setImplementation(LabelAccessImplementation value);
 
-	/**
-	 * Returns the value of the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Depends On</em>' containment reference.
-	 * @see #setDependsOn(DataDependency)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getLabelAccess_DependsOn()
-	 * @model containment="true"
-	 * @generated
-	 */
-	DataDependency getDependsOn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.LabelAccess#getDependsOn <em>Depends On</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Depends On</em>' containment reference.
-	 * @see #getDependsOn()
-	 * @generated
-	 */
-	void setDependsOn(DataDependency value);
-
 } // LabelAccess
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessDataStability.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessDataStability.java
index 90df803..8dc4d08 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessDataStability.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessDataStability.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessEnum.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessEnum.java
index 11d133b..f044c84 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessEnum.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessEnum.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessImplementation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessImplementation.java
index 3a01a86..577d56a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessImplementation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessImplementation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessStatistic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessStatistic.java
index cf06b55..c873532 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessStatistic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelAccessStatistic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelDataStability.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelDataStability.java
index 8843ee9..db9e259 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelDataStability.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelDataStability.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEntityGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEntityGroup.java
index e9da987..b4e52dd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEntityGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEntityGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEvent.java
index 3a7d31b..12c9b35 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEventType.java
index 73a3b3d..3445e73 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelGroup.java
index 566a740..499e59f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LabelGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LatencyType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LatencyType.java
index 3e07ef3..4b8cfed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LatencyType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LatencyType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LeastLocalRemainingExecutionTimeFirst.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LeastLocalRemainingExecutionTimeFirst.java
index 3732a18..e7a345c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LeastLocalRemainingExecutionTimeFirst.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LeastLocalRemainingExecutionTimeFirst.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LimitType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LimitType.java
index d564f6a..8d7e499 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LimitType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LimitType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ListObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ListObject.java
index d90cb15..c7bad63 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ListObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ListObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LongObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LongObject.java
index e240355..f4ba2c0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LongObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/LongObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MainInterface.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MainInterface.java
new file mode 100644
index 0000000..83d9cd0
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MainInterface.java
@@ -0,0 +1,58 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Main Interface</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.MainInterface#getVersion <em>Version</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getMainInterface()
+ * @model
+ * @generated
+ */
+public interface MainInterface extends ComponentInterface, INamespaceMember, IComponentStructureMember {
+	/**
+	 * Returns the value of the '<em><b>Version</b></em>' attribute.
+	 * The default value is <code>"1.0"</code>.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Version</em>' attribute.
+	 * @see #setVersion(String)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getMainInterface_Version()
+	 * @model default="1.0" unique="false"
+	 * @generated
+	 */
+	String getVersion();
+
+	/**
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.MainInterface#getVersion <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @param value the new value of the '<em>Version</em>' attribute.
+	 * @see #getVersion()
+	 * @generated
+	 */
+	void setVersion(String value);
+
+} // MainInterface
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingModel.java
index 003fb77..b692cf8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingType.java
index 7cbdf4d..82d84c0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MappingType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Measurement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Measurement.java
index 0165a24..61843f8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Measurement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Measurement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MeasurementModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MeasurementModel.java
index 4df6bd7..8645ad4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MeasurementModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MeasurementModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Memory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Memory.java
index 2b10841..1400249 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Memory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Memory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryAddressMappingType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryAddressMappingType.java
index 04d8c3d..5e1c660 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryAddressMappingType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryAddressMappingType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassification.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassification.java
index a140d27..ce62cfa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassification.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassification.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassifier.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassifier.java
index 6883dc0..0b666e8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassifier.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryClassifier.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryDefinition.java
index 03a9308..b9f8106 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMapping.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMapping.java
index 387a44e..247e4fa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMapping.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMapping.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMappingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMappingConstraint.java
index b3a5592..cfcb600 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMappingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryMappingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryType.java
index 5abf207..ee6f56f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MemoryType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MinAvgMaxStatistic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MinAvgMaxStatistic.java
index 9193e11..7a7e640 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MinAvgMaxStatistic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/MinAvgMaxStatistic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Mode.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Mode.java
index a683bd3..ff230fb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Mode.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Mode.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeAssignment.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeAssignment.java
index f9b2e26..3be2b47 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeAssignment.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeAssignment.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeCondition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeCondition.java
index b2f7ffc..8160ce0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeCondition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeCondition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionConjunction.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionConjunction.java
index 4190c5c..b309e23 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionConjunction.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionConjunction.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunction.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunction.java
index cc9f71c..a9f2172 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunction.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunction.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunctionEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunctionEntry.java
index bfcd26b..0be8f13 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunctionEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeConditionDisjunctionEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabel.java
index 3bccf20..d1a0b2e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccess.java
index d6c282d..6345494 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -41,7 +41,7 @@
  * @model
  * @generated
  */
-public interface ModeLabelAccess extends CallGraphItem {
+public interface ModeLabelAccess extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Data</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccessEnum.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccessEnum.java
index bb9059d..23f4327 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccessEnum.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelAccessEnum.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
index 4b1173e..e4f62d4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLabelCondition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLiteral.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLiteral.java
index 139350e..c62e232 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLiteral.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeLiteral.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -51,7 +52,7 @@
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
+	EList<String> getNamePrefixSegments();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitch.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitch.java
index 5f9dd42..49f6b73 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitch.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitch.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -37,7 +37,7 @@
  * @model
  * @generated
  */
-public interface ModeSwitch extends CallGraphItem {
+public interface ModeSwitch extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ModeSwitchEntry}.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchDefault.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchDefault.java
index b865d8b..c4258af 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchDefault.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchDefault.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -25,5 +25,5 @@
  * @model
  * @generated
  */
-public interface ModeSwitchDefault extends BaseObject, ICallGraphItemContainer {
+public interface ModeSwitchDefault extends BaseObject, IActivityGraphItemContainer {
 } // ModeSwitchDefault
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchEntry.java
index 1b02c14..fd3ff05 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeSwitchEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface ModeSwitchEntry extends BaseObject, INamed, ICallGraphItemContainer {
+public interface ModeSwitchEntry extends BaseObject, INamed, IActivityGraphItemContainer {
 	/**
 	 * Returns the value of the '<em><b>Condition</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValue.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValue.java
index f79b907..ca7f58d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValue.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValue.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueCondition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueCondition.java
index 4179329..0e8aa2a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueCondition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueCondition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueList.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueList.java
index 974f17c..9cf5729 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueList.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ModeValueList.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Namespace.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Namespace.java
new file mode 100644
index 0000000..36db613
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Namespace.java
@@ -0,0 +1,88 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Namespace</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Namespace#getNextSegments <em>Next Segments</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Namespace#getPreviousSegment <em>Previous Segment</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Namespace#getMemberObjects <em>Member Objects</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getNamespace()
+ * @model
+ * @generated
+ */
+public interface Namespace extends ReferableObject {
+	/**
+	 * Returns the value of the '<em><b>Next Segments</b></em>' containment reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.Namespace}.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Namespace#getPreviousSegment <em>Previous Segment</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Next Segments</em>' containment reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getNamespace_NextSegments()
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getPreviousSegment
+	 * @model opposite="previousSegment" containment="true"
+	 * @generated
+	 */
+	EList<Namespace> getNextSegments();
+
+	/**
+	 * Returns the value of the '<em><b>Previous Segment</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Namespace#getNextSegments <em>Next Segments</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Previous Segment</em>' container reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getNamespace_PreviousSegment()
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace#getNextSegments
+	 * @model opposite="nextSegments" transient="false" changeable="false"
+	 * @generated
+	 */
+	Namespace getPreviousSegment();
+
+	/**
+	 * Returns the value of the '<em><b>Member Objects</b></em>' reference list.
+	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.INamespaceMember}.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * <!-- begin-model-doc -->
+	 * <p><b>Returns an <em>immutable</em> list of objects (INamespaceMember) referring to this namespace.</b></p>
+	 * <!-- end-model-doc -->
+	 * @return the value of the '<em>Member Objects</em>' reference list.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getNamespace_MemberObjects()
+	 * @model transient="true" changeable="false" volatile="true" derived="true"
+	 * @generated
+	 */
+	EList<INamespaceMember> getMemberObjects();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
+} // Namespace
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NonAtomicDataCoherency.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NonAtomicDataCoherency.java
index a4e96c2..9b725d6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NonAtomicDataCoherency.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NonAtomicDataCoherency.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericMode.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericMode.java
index b694c26..9bc0c6b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericMode.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericMode.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericStatistic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericStatistic.java
index 06344a2..93b26e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericStatistic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/NumericStatistic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSEK.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSEK.java
index 6570543..8ec2940 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSEK.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSEK.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSModel.java
index a946158..6ff362f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OSModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OperatingSystem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OperatingSystem.java
index 820fd44..5baf0ef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OperatingSystem.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OperatingSystem.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderPrecedenceSpec.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderPrecedenceSpec.java
index 0b2957d..54d53f3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderPrecedenceSpec.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderPrecedenceSpec.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderType.java
index 3e57f8f..fd57247 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OrderType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsAPIOverhead.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsAPIOverhead.java
index 78ba70a..a542bb8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsAPIOverhead.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsAPIOverhead.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistency.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistency.java
index 6989dcc..5b83684 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistency.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistency.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistencyMode.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistencyMode.java
index cb71ba6..d158871 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistencyMode.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsDataConsistencyMode.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsEvent.java
index 60870bc..0843225 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsISROverhead.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsISROverhead.java
index 9317fdd..b9b2220 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsISROverhead.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsISROverhead.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsOverhead.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsOverhead.java
index 46490ce..3ac5037 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsOverhead.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/OsOverhead.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PairingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PairingConstraint.java
index 2b4ceaa..4800018 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PairingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PairingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyEarlyReleaseFairPD2.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyEarlyReleaseFairPD2.java
index 8258c1a..53d3838 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyEarlyReleaseFairPD2.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyEarlyReleaseFairPD2.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyPFairPD2.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyPFairPD2.java
index 445c28f..2dbb696 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyPFairPD2.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PartlyPFairPD2.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageMetric.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageMetric.java
index 0107f88..43e30c2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageMetric.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageMetric.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageRequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageRequirementLimit.java
index 4f09c27..d8dc9ac 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageRequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PercentageRequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicActivation.java
index 7c85ccb..ebc210b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicBurstStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicBurstStimulus.java
index b608475..396caef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicBurstStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicBurstStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicStimulus.java
index 13d71e4..e67ce9c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicSyntheticStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicSyntheticStimulus.java
index 0aa5aaa..29577a3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicSyntheticStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PeriodicSyntheticStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pfair.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pfair.java
index 1ba9b91..c856a81 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pfair.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pfair.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PfairPD2.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PfairPD2.java
index 87e9292..8c7ec54 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PfairPD2.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PfairPD2.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionConstraint.java
index e7b0499..a52d410 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionMapping.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionMapping.java
index 715d8db..fc6555b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionMapping.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PhysicalSectionMapping.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pointer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pointer.java
index 92f8426..0452de2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pointer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Pointer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PollingPeriodicServer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PollingPeriodicServer.java
index 6601d6e..5161e89 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PollingPeriodicServer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PollingPeriodicServer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Port.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Port.java
deleted file mode 100644
index 4acb9d3..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Port.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Port</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.Port#getContainingComponent <em>Containing Component</em>}</li>
- * </ul>
- *
- * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getPort()
- * @model abstract="true"
- * @generated
- */
-public interface Port extends ReferableBaseObject, ITaggable {
-	/**
-	 * Returns the value of the '<em><b>Containing Component</b></em>' container reference.
-	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Component#getPorts <em>Ports</em>}'.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Containing Component</em>' container reference.
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getPort_ContainingComponent()
-	 * @see org.eclipse.app4mc.amalthea.model.Component#getPorts
-	 * @model opposite="ports" transient="false" changeable="false"
-	 * @generated
-	 */
-	Component getContainingComponent();
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @model kind="operation" unique="false"
-	 * @generated
-	 */
-	String getNamePrefix();
-
-} // Port
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortInterface.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortInterface.java
index 821a8eb..1948b17 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortInterface.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortInterface.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortType.java
index e072797..fb02076 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PortType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PowerDomain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PowerDomain.java
index b24e4b7..546633c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PowerDomain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PowerDomain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Preemption.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Preemption.java
index 90dd3d6..6f8edc4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Preemption.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Preemption.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBased.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBased.java
index 87599f1..64b1d69 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBased.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBased.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBasedRoundRobin.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBasedRoundRobin.java
index afc37ab..d69d038 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBasedRoundRobin.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PriorityBasedRoundRobin.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitch.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitch.java
index a78befd..8e6edaf 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitch.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitch.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface ProbabilitySwitch extends CallGraphItem {
+public interface ProbabilitySwitch extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Entries</b></em>' containment reference list.
 	 * The list contents are of type {@link org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry}.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitchEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitchEntry.java
index bfe9a9a..01c6021 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitchEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProbabilitySwitchEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -36,7 +36,7 @@
  * @model
  * @generated
  */
-public interface ProbabilitySwitchEntry extends BaseObject, ICallGraphItemContainer {
+public interface ProbabilitySwitchEntry extends BaseObject, IActivityGraphItemContainer {
 	/**
 	 * Returns the value of the '<em><b>Probability</b></em>' attribute.
 	 * The default value is <code>"0.0"</code>.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Process.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Process.java
index 780347b..9552792 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Process.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Process.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -29,7 +29,7 @@
  * The following features are supported:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.Process#getCallGraph <em>Call Graph</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Process#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Process#getStimuli <em>Stimuli</em>}</li>
  * </ul>
  *
@@ -39,26 +39,26 @@
  */
 public interface Process extends AbstractProcess {
 	/**
-	 * Returns the value of the '<em><b>Call Graph</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Call Graph</em>' containment reference.
-	 * @see #setCallGraph(CallGraph)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getProcess_CallGraph()
+	 * @return the value of the '<em>Activity Graph</em>' containment reference.
+	 * @see #setActivityGraph(ActivityGraph)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getProcess_ActivityGraph()
 	 * @model containment="true"
 	 * @generated
 	 */
-	CallGraph getCallGraph();
+	ActivityGraph getActivityGraph();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.Process#getCallGraph <em>Call Graph</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.Process#getActivityGraph <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Call Graph</em>' containment reference.
-	 * @see #getCallGraph()
+	 * @param value the new value of the '<em>Activity Graph</em>' containment reference.
+	 * @see #getActivityGraph()
 	 * @generated
 	 */
-	void setCallGraph(CallGraph value);
+	void setActivityGraph(ActivityGraph value);
 
 	/**
 	 * Returns the value of the '<em><b>Stimuli</b></em>' reference list.
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessAllocationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessAllocationConstraint.java
index b2e6d48..97b5fb6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessAllocationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessAllocationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChain.java
index 0baaeb2..469b565 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainEvent.java
index 853eb00..079835a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainRequirement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainRequirement.java
index b240f18..f38962f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainRequirement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessChainRequirement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraint.java
index 6b20e72..1ebd031 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraintTarget.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraintTarget.java
index 564242b..9d37b7a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraintTarget.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessConstraintTarget.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEntityGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEntityGroup.java
index cbac37d..79f0754 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEntityGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEntityGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEvent.java
index ec231c4..eaa175e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEventType.java
index 21fa64a..fb463e3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessGroup.java
index 724a800..33cfc09 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPairingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPairingConstraint.java
index 59df68b..954446b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPairingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPairingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototype.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototype.java
index 7dbee48..47c76db 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototype.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototype.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototypeAllocationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototypeAllocationConstraint.java
index 954122e..25bdbf8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototypeAllocationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessPrototypeAllocationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessRequirement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessRequirement.java
index 24d0235..fef1d02 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessRequirement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessRequirement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessScope.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessScope.java
index ba9826c..b7691bc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessScope.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessScope.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessSeparationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessSeparationConstraint.java
index 95fa24a..1d887d6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessSeparationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessSeparationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnit.java
index e0ef640..81b77fc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnitDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnitDefinition.java
index edd1077..3cccfcd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnitDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ProcessingUnitDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PropertyConstraintsModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PropertyConstraintsModel.java
index 32e4800..b4799d1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PropertyConstraintsModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PropertyConstraintsModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PuType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PuType.java
index 3d537ae..cd4bd93 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PuType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/PuType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/QualifiedPort.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/QualifiedPort.java
index 58f88ea..74bbc01 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/QualifiedPort.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/QualifiedPort.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -60,12 +60,12 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Port</em>' reference.
-	 * @see #setPort(Port)
+	 * @see #setPort(ComponentPort)
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getQualifiedPort_Port()
-	 * @model
+	 * @model required="true"
 	 * @generated
 	 */
-	Port getPort();
+	ComponentPort getPort();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.QualifiedPort#getPort <em>Port</em>}' reference.
@@ -75,6 +75,6 @@
 	 * @see #getPort()
 	 * @generated
 	 */
-	void setPort(Port value);
+	void setPort(ComponentPort value);
 
 } // QualifiedPort
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Quantity.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Quantity.java
index 642f31f..09c8051 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Quantity.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Quantity.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RateMonotonic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RateMonotonic.java
index b55ecc1..266fb94 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RateMonotonic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RateMonotonic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReceiveOperation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReceiveOperation.java
index 7b2b5a6..5b031c8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReceiveOperation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReceiveOperation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableBaseObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableBaseObject.java
index a5b7346..635029d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableBaseObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableBaseObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableObject.java
index 38bbc91..9de831f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferableObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferenceObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferenceObject.java
index fb87194..f559399 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferenceObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReferenceObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelationalOperator.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelationalOperator.java
index 3ae8fd0..ea0ef3f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelationalOperator.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelationalOperator.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelativePeriodicStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelativePeriodicStimulus.java
index 0c95c31..50f7104 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelativePeriodicStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RelativePeriodicStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RepetitionConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RepetitionConstraint.java
index 88076cb..d696219 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RepetitionConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RepetitionConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Requirement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Requirement.java
index 489ca31..49d0f29 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Requirement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Requirement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RequirementLimit.java
index 9c40b7b..d7d0aee 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReservationBasedServer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReservationBasedServer.java
index 8cbfa77..4cabc39 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReservationBasedServer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ReservationBasedServer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunEntityCallStatistic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunEntityCallStatistic.java
index e330969..6a83a04 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunEntityCallStatistic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunEntityCallStatistic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Runnable.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
index caa451a..7c1f0f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Runnable.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -31,7 +31,7 @@
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getExecutionCondition <em>Execution Condition</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getParameters <em>Parameters</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getCallGraph <em>Call Graph</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivations <em>Activations</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#isCallback <em>Callback</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.Runnable#isService <em>Service</em>}</li>
@@ -45,7 +45,7 @@
  * @model
  * @generated
  */
-public interface Runnable extends AbstractMemoryElement {
+public interface Runnable extends AbstractMemoryElement, INamespaceMember {
 	/**
 	 * Returns the value of the '<em><b>Execution Condition</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
@@ -83,26 +83,26 @@
 	EList<RunnableParameter> getParameters();
 
 	/**
-	 * Returns the value of the '<em><b>Call Graph</b></em>' containment reference.
+	 * Returns the value of the '<em><b>Activity Graph</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Call Graph</em>' containment reference.
-	 * @see #setCallGraph(CallGraph)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getRunnable_CallGraph()
+	 * @return the value of the '<em>Activity Graph</em>' containment reference.
+	 * @see #setActivityGraph(ActivityGraph)
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getRunnable_ActivityGraph()
 	 * @model containment="true"
 	 * @generated
 	 */
-	CallGraph getCallGraph();
+	ActivityGraph getActivityGraph();
 
 	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.Runnable#getCallGraph <em>Call Graph</em>}' containment reference.
+	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.Runnable#getActivityGraph <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Call Graph</em>' containment reference.
-	 * @see #getCallGraph()
+	 * @param value the new value of the '<em>Activity Graph</em>' containment reference.
+	 * @see #getActivityGraph()
 	 * @generated
 	 */
-	void setCallGraph(CallGraph value);
+	void setActivityGraph(ActivityGraph value);
 
 	/**
 	 * Returns the value of the '<em><b>Activations</b></em>' reference list.
@@ -254,7 +254,7 @@
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	EList<CallGraphItem> getRunnableItems();
+	EList<ActivityGraphItem> getRunnableItems();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocation.java
index 1461830..e0ec89d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocationConstraint.java
index 58788e0..e3dca65 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableAllocationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableCall.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableCall.java
index 1374367..8b45523 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableCall.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableCall.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -39,7 +39,7 @@
  * @model
  * @generated
  */
-public interface RunnableCall extends CallGraphItem, ITaggable {
+public interface RunnableCall extends ActivityGraphItem, ITaggable {
 	/**
 	 * Returns the value of the '<em><b>Runnable</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraint.java
index 08a094b..8097dc1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraintTarget.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraintTarget.java
index 17d6bbe..f184b65 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraintTarget.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableConstraintTarget.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEntityGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEntityGroup.java
index 5a27f31..e9d6406 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEntityGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEntityGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEvent.java
index d4820e8..fcbb7a1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEventType.java
index 45955cd..75a5c9a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableGroup.java
index 71b4863..9dd715d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableMeasurement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableMeasurement.java
index 8ed6c44..fe3e72e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableMeasurement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableMeasurement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableOrderType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableOrderType.java
index 2ed9b79..01353a4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableOrderType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableOrderType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnablePairingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnablePairingConstraint.java
index e16832d..0a1774f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnablePairingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnablePairingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableParameter.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableParameter.java
index 1ab81f2..c88ce09 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableParameter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableParameter.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,7 @@
  */
 package org.eclipse.app4mc.amalthea.model;
 
+import org.eclipse.emf.common.util.EList;
 
 /**
  * <!-- begin-user-doc -->
@@ -27,14 +28,13 @@
  *   <li>{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getContainingRunnable <em>Containing Runnable</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getDirection <em>Direction</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getDataType <em>Data Type</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getRunnableParameter()
  * @model
  * @generated
  */
-public interface RunnableParameter extends ReferableBaseObject {
+public interface RunnableParameter extends ReferableBaseObject, IDependsOn {
 	/**
 	 * Returns the value of the '<em><b>Containing Runnable</b></em>' container reference.
 	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.Runnable#getParameters <em>Parameters</em>}'.
@@ -96,34 +96,12 @@
 	void setDataType(TypeDefinition value);
 
 	/**
-	 * Returns the value of the '<em><b>Depends On</b></em>' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @return the value of the '<em>Depends On</em>' containment reference.
-	 * @see #setDependsOn(DataDependency)
-	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getRunnableParameter_DependsOn()
-	 * @model containment="true"
-	 * @generated
-	 */
-	DataDependency getDependsOn();
-
-	/**
-	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.RunnableParameter#getDependsOn <em>Depends On</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @param value the new value of the '<em>Depends On</em>' containment reference.
-	 * @see #getDependsOn()
-	 * @generated
-	 */
-	void setDependsOn(DataDependency value);
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @model kind="operation" unique="false"
 	 * @generated
 	 */
-	String getNamePrefix();
+	EList<String> getNamePrefixSegments();
 
 	/**
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableRequirement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableRequirement.java
index 509adc1..ee6f49a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableRequirement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableRequirement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableScope.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableScope.java
index 1add3a8..4858af2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableScope.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableScope.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSeparationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSeparationConstraint.java
index 65b1495..ed499cb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSeparationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSeparationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSequencingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSequencingConstraint.java
index 32719a5..37a1a83 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSequencingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/RunnableSequencingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SWModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SWModel.java
index c69671f..e09d0ee 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SWModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SWModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SamplingType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SamplingType.java
index 9ee7e51..069ca1f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SamplingType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SamplingType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scenario.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scenario.java
index af78c99..d5452bb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scenario.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scenario.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedPolicy.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedPolicy.java
index 5e96465..9eda986 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedPolicy.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedPolicy.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulePoint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulePoint.java
index 4ce2333..6c31920 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulePoint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulePoint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -29,5 +29,5 @@
  * @model
  * @generated
  */
-public interface SchedulePoint extends CallGraphItem {
+public interface SchedulePoint extends ActivityGraphItem {
 } // SchedulePoint
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scheduler.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scheduler.java
index 6016104..a266b7e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scheduler.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Scheduler.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAllocation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAllocation.java
index 6ca9586..6a560c6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAllocation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAllocation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAssociation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAssociation.java
index efaf711..86aab28 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAssociation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulerAssociation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulingParameters.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulingParameters.java
index 3e1f7da..eff63d0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulingParameters.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SchedulingParameters.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Section.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Section.java
index ea44585..562b2c4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Section.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Section.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Semaphore.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Semaphore.java
index e8ee8e3..15c5b47 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Semaphore.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Semaphore.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccess.java
index 727f0e9..c1ec4b8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -37,7 +37,7 @@
  * @model
  * @generated
  */
-public interface SemaphoreAccess extends CallGraphItem {
+public interface SemaphoreAccess extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Semaphore</b></em>' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccessEnum.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccessEnum.java
index 5d0c9a0..ebf8e33 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccessEnum.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreAccessEnum.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEvent.java
index 3660fe3..8f89aad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEventType.java
index 9adced8..a1b7bfc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreType.java
index d1bfa9c..341af8b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SemaphoreType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverCommunication.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverCommunication.java
index 16f9277..a50fe27 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverCommunication.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverCommunication.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -37,7 +37,7 @@
  * @model abstract="true"
  * @generated
  */
-public interface SenderReceiverCommunication extends CallGraphItem {
+public interface SenderReceiverCommunication extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Buffered</b></em>' attribute.
 	 * The default value is <code>"false"</code>.
@@ -88,12 +88,12 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Port</em>' reference.
-	 * @see #setPort(Port)
+	 * @see #setPort(ComponentPort)
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getSenderReceiverCommunication_Port()
 	 * @model
 	 * @generated
 	 */
-	Port getPort();
+	ComponentPort getPort();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.SenderReceiverCommunication#getPort <em>Port</em>}' reference.
@@ -103,6 +103,6 @@
 	 * @see #getPort()
 	 * @generated
 	 */
-	void setPort(Port value);
+	void setPort(ComponentPort value);
 
 } // SenderReceiverCommunication
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverRead.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverRead.java
index 008c922..6aeb5dc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverRead.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverRead.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverWrite.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverWrite.java
index 648bff5..84ad421 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverWrite.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SenderReceiverWrite.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SeparationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SeparationConstraint.java
index ba44038..4197bb7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SeparationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SeparationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ServerCall.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ServerCall.java
index 256bff2..0d286bc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ServerCall.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/ServerCall.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -37,7 +37,7 @@
  * @model abstract="true"
  * @generated
  */
-public interface ServerCall extends CallGraphItem {
+public interface ServerCall extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Server Runnable</b></em>' reference.
 	 * <!-- begin-user-doc -->
@@ -65,12 +65,12 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @return the value of the '<em>Port</em>' reference.
-	 * @see #setPort(Port)
+	 * @see #setPort(ComponentPort)
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getServerCall_Port()
 	 * @model
 	 * @generated
 	 */
-	Port getPort();
+	ComponentPort getPort();
 
 	/**
 	 * Sets the value of the '{@link org.eclipse.app4mc.amalthea.model.ServerCall#getPort <em>Port</em>}' reference.
@@ -80,6 +80,6 @@
 	 * @see #getPort()
 	 * @generated
 	 */
-	void setPort(Port value);
+	void setPort(ComponentPort value);
 
 } // ServerCall
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SetEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SetEvent.java
index 938c784..ce64b7d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SetEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SetEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -39,7 +39,7 @@
  * @model
  * @generated
  */
-public interface SetEvent extends CallGraphItem {
+public interface SetEvent extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Event Mask</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Severity.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Severity.java
index 60fc93e..3423398 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Severity.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Severity.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleActivation.java
index 621e2a7..566fd29 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleStimulus.java
index 130fbc9..6baa287 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleValueStatistic.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleValueStatistic.java
index f9d3a77..3705628 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleValueStatistic.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SingleValueStatistic.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicActivation.java
index 1522f93..293c2de 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicServer.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicServer.java
index a86ea9e..9972b37 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicServer.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SporadicServer.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimuliModel.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimuliModel.java
index 11b6463..ef7aa46 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimuliModel.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimuliModel.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Stimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Stimulus.java
index def8955..6c4c5e6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Stimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Stimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimulusEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimulusEvent.java
index 1b3e7d8..ca09fb8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimulusEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StimulusEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StringObject.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StringObject.java
index 9f857d6..acade8f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StringObject.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StringObject.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Struct.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Struct.java
index af96521..276d6b6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Struct.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Struct.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructEntry.java
index 5b6a412..5ec6db8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructureType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructureType.java
index ba5e1af..cb085e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructureType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/StructureType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubEventChain.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubEventChain.java
index 66f006a..6f17454 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubEventChain.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubEventChain.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubInterface.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubInterface.java
new file mode 100644
index 0000000..b876860
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SubInterface.java
@@ -0,0 +1,57 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Sub Interface</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.SubInterface#getContainingInterface <em>Containing Interface</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getSubInterface()
+ * @model
+ * @generated
+ */
+public interface SubInterface extends ComponentInterface {
+	/**
+	 * Returns the value of the '<em><b>Containing Interface</b></em>' container reference.
+	 * It is bidirectional and its opposite is '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface#getSubInterfaces <em>Sub Interfaces</em>}'.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @return the value of the '<em>Containing Interface</em>' container reference.
+	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getSubInterface_ContainingInterface()
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInterface#getSubInterfaces
+	 * @model opposite="subInterfaces" transient="false" changeable="false"
+	 * @generated
+	 */
+	ComponentInterface getContainingInterface();
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @model kind="operation" unique="false"
+	 * @generated
+	 */
+	EList<String> getNamePrefixSegments();
+
+} // SubInterface
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationConstraint.java
index f99a4d0..6a4658e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationType.java
index 680a79b..5dc2c9f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronizationType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronousServerCall.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronousServerCall.java
index 7dd3569..8a02fd6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronousServerCall.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/SynchronousServerCall.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/System.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/System.java
index d5ef7a4..62479fc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/System.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/System.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Tag.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Tag.java
index d7a3c6e..a957c12 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Tag.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Tag.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -66,7 +66,7 @@
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * <!-- begin-model-doc -->
-	 * <p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to the this tag.</b></p>
+	 * <p><b>Returns an <em>immutable</em> list of objects (ITaggable) referring to this tag.</b></p>
 	 * <!-- end-model-doc -->
 	 * @return the value of the '<em>Tagged Objects</em>' reference list.
 	 * @see org.eclipse.app4mc.amalthea.model.AmaltheaPackage#getTag_TaggedObjects()
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TagGroup.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TagGroup.java
index 170c9f4..9da4854 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TagGroup.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TagGroup.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetCore.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetCore.java
index 9b2b804..3256207 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetCore.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetCore.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetMemory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetMemory.java
index 9c9824e..c1d04d5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetMemory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetMemory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetScheduler.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetScheduler.java
index 8c73a87..084a193 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetScheduler.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TargetScheduler.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Task.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Task.java
index efd5374..811bdbc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Task.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Task.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskAllocation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskAllocation.java
index e80901e..fa48709 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskAllocation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskAllocation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskMeasurement.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskMeasurement.java
index 034c5df..f932bf9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskMeasurement.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskMeasurement.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskScheduler.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskScheduler.java
index 171e4ca..1ebb7db 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskScheduler.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskScheduler.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskSchedulingAlgorithm.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskSchedulingAlgorithm.java
index 45dd9ac..0565e1c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskSchedulingAlgorithm.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TaskSchedulingAlgorithm.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TerminateProcess.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TerminateProcess.java
index 87acecb..6e17787 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TerminateProcess.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TerminateProcess.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -35,7 +35,7 @@
  * @model
  * @generated
  */
-public interface TerminateProcess extends CallGraphItem {
+public interface TerminateProcess extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Counter</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Ticks.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Ticks.java
index 4f88678..f6a5886 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Ticks.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Ticks.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Time.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Time.java
index 8129036..367ace3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Time.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Time.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBetaDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBetaDistribution.java
index b618384..6cfecd0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBetaDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBetaDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBoundaries.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBoundaries.java
index cc80147..befdbaa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBoundaries.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeBoundaries.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeConstant.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeConstant.java
index f03e699..8998c58 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeConstant.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeConstant.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeGaussDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeGaussDistribution.java
index ca88e7c..ebf25be 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeGaussDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeGaussDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogram.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogram.java
index 7c97f98..592d594 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogram.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogram.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogramEntry.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogramEntry.java
index b9abb0c..9d35083 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogramEntry.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeHistogramEntry.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeInterval.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeInterval.java
index f08d6c8..ff7f871 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeInterval.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeInterval.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeMetric.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeMetric.java
index 98fa7cc..f10c1b6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeMetric.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeMetric.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeRequirementLimit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeRequirementLimit.java
index 0a80515..8de778c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeRequirementLimit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeRequirementLimit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeStatistics.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeStatistics.java
index db16605..ac9d21f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeStatistics.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeStatistics.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUniformDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUniformDistribution.java
index 15c2917..5ab0755 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUniformDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUniformDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUnit.java
index 91877ef..ee3ca69 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeWeibullEstimatorsDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeWeibullEstimatorsDistribution.java
index c2e9950..06c3c0a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeWeibullEstimatorsDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimeWeibullEstimatorsDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimingConstraint.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimingConstraint.java
index b1dea79..61d1ea0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimingConstraint.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TimingConstraint.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TransmissionPolicy.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TransmissionPolicy.java
index 9a9cd5a..2a87dbe 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TransmissionPolicy.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TransmissionPolicy.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TriggerEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TriggerEvent.java
index ffa494a..b11573b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TriggerEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TriggerEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedContinuousValueDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedContinuousValueDistribution.java
index 4a13b41..b189996 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedContinuousValueDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedContinuousValueDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedDiscreteValueDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedDiscreteValueDistribution.java
index 33b642c..c9d1c0c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedDiscreteValueDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedDiscreteValueDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedTimeDistribution.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedTimeDistribution.java
index e44dd97..d9bd52b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedTimeDistribution.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TruncatedTimeDistribution.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeDefinition.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeDefinition.java
index 5e1ef6a..2b279ec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeDefinition.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeDefinition.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -31,7 +31,7 @@
  * @model abstract="true"
  * @generated
  */
-public interface TypeDefinition extends ReferableBaseObject {
+public interface TypeDefinition extends ReferableBaseObject, INamespaceMember {
 	/**
 	 * Returns the value of the '<em><b>Size</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeRef.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeRef.java
index 9ed9317..8628d40 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeRef.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/TypeRef.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/UserSpecificSchedulingAlgorithm.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/UserSpecificSchedulingAlgorithm.java
index 468aca1..ef948ef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/UserSpecificSchedulingAlgorithm.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/UserSpecificSchedulingAlgorithm.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Value.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Value.java
index 94841d2..7acfe5c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Value.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Value.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateActivation.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateActivation.java
index 2baa290..45c60b8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateActivation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateActivation.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateStimulus.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateStimulus.java
index c173a56..2ccbfc9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateStimulus.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VariableRateStimulus.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VendorOperatingSystem.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VendorOperatingSystem.java
index fea4eae..677302c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VendorOperatingSystem.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VendorOperatingSystem.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Voltage.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Voltage.java
index 517e561..3f7576a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Voltage.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/Voltage.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VoltageUnit.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VoltageUnit.java
index 091a416..6025086 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VoltageUnit.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/VoltageUnit.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEvent.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEvent.java
index 38f5f0c..1d7a42d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEvent.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEvent.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -39,7 +39,7 @@
  * @model
  * @generated
  */
-public interface WaitEvent extends CallGraphItem {
+public interface WaitEvent extends ActivityGraphItem {
 	/**
 	 * Returns the value of the '<em><b>Event Mask</b></em>' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEventType.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEventType.java
index 7b238a0..e58a0cd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEventType.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitEventType.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitingBehaviour.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitingBehaviour.java
index 8574952..7536bcc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitingBehaviour.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WaitingBehaviour.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WriteStrategy.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WriteStrategy.java
index d8ed8a8..bc7de0a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WriteStrategy.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/WriteStrategy.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractElementMappingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractElementMappingConstraintImpl.java
index 1e89d40..52abeb7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractElementMappingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractElementMappingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractEventChainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractEventChainImpl.java
index cc9dd41..e561ff8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractEventChainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractEventChainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,14 +14,18 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
 import org.eclipse.app4mc.amalthea.model.AbstractEventChain;
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.Event;
 import org.eclipse.app4mc.amalthea.model.EventChainItem;
 import org.eclipse.app4mc.amalthea.model.EventChainItemType;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -29,6 +33,7 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -36,6 +41,8 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Abstract Event Chain</b></em>'.
@@ -45,6 +52,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.AbstractEventChainImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.AbstractEventChainImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.AbstractEventChainImpl#getStimulus <em>Stimulus</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.AbstractEventChainImpl#getResponse <em>Response</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.AbstractEventChainImpl#getItems <em>Items</em>}</li>
@@ -76,6 +84,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getStimulus() <em>Stimulus</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -193,6 +211,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Event getStimulus() {
 		if (stimulus != null && stimulus.eIsProxy()) {
 			InternalEObject oldStimulus = (InternalEObject)stimulus;
@@ -332,6 +360,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__ITEMS:
@@ -350,6 +471,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__NAME:
 				return getName();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__STIMULUS:
 				if (resolve) return getStimulus();
 				return basicGetStimulus();
@@ -438,6 +561,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__STIMULUS:
 				return stimulus != null;
 			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__RESPONSE:
@@ -462,6 +587,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -478,6 +604,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -490,6 +617,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.ABSTRACT_EVENT_CHAIN___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractMemoryElementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractMemoryElementImpl.java
index eb4b308..0ed9511 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractMemoryElementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractMemoryElementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractProcessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractProcessImpl.java
index 73c3850..7489b03 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractProcessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AbstractProcessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -64,9 +64,9 @@
 	 */
 	@Override
 	public EList<Component> getReferringComponents() {
-		EReference _component_Tasks = AmaltheaPackage.eINSTANCE.getComponent_Tasks();
+		EReference _component_Processes = AmaltheaPackage.eINSTANCE.getComponent_Processes();
 		return AmaltheaIndex.<Component>getInverseReferences(this, AmaltheaPackage.eINSTANCE.getAbstractProcess_ReferringComponents(), 
-			java.util.Collections.<EReference>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.<EReference>newHashSet(_component_Tasks)));
+			java.util.Collections.<EReference>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.<EReference>newHashSet(_component_Processes)));
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AccessPrecedenceSpecImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AccessPrecedenceSpecImpl.java
index 6a4438e..271ee2d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AccessPrecedenceSpecImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AccessPrecedenceSpecImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivationImpl.java
index 64c2c6a..e3f15a4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphImpl.java
similarity index 70%
rename from plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphImpl.java
rename to plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphImpl.java
index 55bed48..79f5340 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,10 +16,10 @@
 
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 
 import org.eclipse.emf.common.notify.NotificationChain;
 
@@ -33,18 +33,18 @@
 
 /**
  * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Call Graph</b></em>'.
+ * An implementation of the model object '<em><b>Activity Graph</b></em>'.
  * <!-- end-user-doc -->
  * <p>
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallGraphImpl#getItems <em>Items</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphImpl#getItems <em>Items</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class CallGraphImpl extends BaseObjectImpl implements CallGraph {
+public class ActivityGraphImpl extends BaseObjectImpl implements ActivityGraph {
 	/**
 	 * The cached value of the '{@link #getItems() <em>Items</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
@@ -53,14 +53,14 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<CallGraphItem> items;
+	protected EList<ActivityGraphItem> items;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	protected CallGraphImpl() {
+	protected ActivityGraphImpl() {
 		super();
 	}
 
@@ -71,7 +71,7 @@
 	 */
 	@Override
 	protected EClass eStaticClass() {
-		return AmaltheaPackage.eINSTANCE.getCallGraph();
+		return AmaltheaPackage.eINSTANCE.getActivityGraph();
 	}
 
 	/**
@@ -80,9 +80,9 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getItems() {
+	public EList<ActivityGraphItem> getItems() {
 		if (items == null) {
-			items = new EObjectContainmentEList<CallGraphItem>(CallGraphItem.class, this, AmaltheaPackage.CALL_GRAPH__ITEMS);
+			items = new EObjectContainmentEList<ActivityGraphItem>(ActivityGraphItem.class, this, AmaltheaPackage.ACTIVITY_GRAPH__ITEMS);
 		}
 		return items;
 	}
@@ -95,7 +95,7 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				return ((InternalEList<?>)getItems()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
@@ -109,7 +109,7 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				return getItems();
 		}
 		return super.eGet(featureID, resolve, coreType);
@@ -124,9 +124,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				getItems().clear();
-				getItems().addAll((Collection<? extends CallGraphItem>)newValue);
+				getItems().addAll((Collection<? extends ActivityGraphItem>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -140,7 +140,7 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				getItems().clear();
 				return;
 		}
@@ -155,7 +155,7 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH__ITEMS:
+			case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS:
 				return items != null && !items.isEmpty();
 		}
 		return super.eIsSet(featureID);
@@ -168,9 +168,9 @@
 	 */
 	@Override
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (derivedFeatureID) {
-				case AmaltheaPackage.CALL_GRAPH__ITEMS: return AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS;
+				case AmaltheaPackage.ACTIVITY_GRAPH__ITEMS: return AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS;
 				default: return -1;
 			}
 		}
@@ -184,13 +184,13 @@
 	 */
 	@Override
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (baseFeatureID) {
-				case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.CALL_GRAPH__ITEMS;
+				case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.ACTIVITY_GRAPH__ITEMS;
 				default: return -1;
 			}
 		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
-} //CallGraphImpl
+} //ActivityGraphImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphItemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphItemImpl.java
new file mode 100644
index 0000000..d78e0ce
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ActivityGraphItemImpl.java
@@ -0,0 +1,125 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.AmaltheaServices;
+
+import org.eclipse.emf.ecore.EClass;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Activity Graph Item</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphItemImpl#getContainingProcess <em>Containing Process</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphItemImpl#getContainingRunnable <em>Containing Runnable</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ActivityGraphItemImpl#getContainingActivityGraph <em>Containing Activity Graph</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ActivityGraphItemImpl extends BaseObjectImpl implements ActivityGraphItem {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ActivityGraphItemImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getActivityGraphItem();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.app4mc.amalthea.model.Process getContainingProcess() {
+		return AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Process>getContainerOfType(this, org.eclipse.app4mc.amalthea.model.Process.class);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable() {
+		return AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Runnable>getContainerOfType(this, org.eclipse.app4mc.amalthea.model.Runnable.class);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ActivityGraph getContainingActivityGraph() {
+		return AmaltheaServices.<ActivityGraph>getContainerOfType(this, ActivityGraph.class);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS:
+				return getContainingProcess();
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE:
+				return getContainingRunnable();
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH:
+				return getContainingActivityGraph();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS:
+				return getContainingProcess() != null;
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE:
+				return getContainingRunnable() != null;
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH:
+				return getContainingActivityGraph() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //ActivityGraphItemImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AffinityConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AffinityConstraintImpl.java
index d4ebb9f..57a3b33 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AffinityConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AffinityConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AlgorithmImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AlgorithmImpl.java
index 25d81d4..b3a69c2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AlgorithmImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AlgorithmImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AliasImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AliasImpl.java
index 56c9527..a5bdcec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AliasImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AliasImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaFactoryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaFactoryImpl.java
index f28b37f..d01651e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaFactoryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaFactoryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -21,6 +21,7 @@
 import org.eclipse.app4mc.amalthea.model.AccessMultiplicity;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceType;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Alias;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
@@ -40,7 +41,6 @@
 import org.eclipse.app4mc.amalthea.model.CacheDefinition;
 import org.eclipse.app4mc.amalthea.model.CacheType;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ChannelEvent;
@@ -57,7 +57,10 @@
 import org.eclipse.app4mc.amalthea.model.ComponentEvent;
 import org.eclipse.app4mc.amalthea.model.ComponentEventType;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
 import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.ConcurrencyType;
@@ -166,7 +169,6 @@
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
 import org.eclipse.app4mc.amalthea.model.InterfaceKind;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
@@ -183,6 +185,7 @@
 import org.eclipse.app4mc.amalthea.model.LimitType;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
 import org.eclipse.app4mc.amalthea.model.MappingType;
 import org.eclipse.app4mc.amalthea.model.MeasurementModel;
@@ -207,6 +210,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeSwitchEntry;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.NumericMode;
 import org.eclipse.app4mc.amalthea.model.OSEK;
@@ -311,6 +315,7 @@
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 import org.eclipse.app4mc.amalthea.model.StructureType;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronizationType;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
 import org.eclipse.app4mc.amalthea.model.Tag;
@@ -407,6 +412,7 @@
 			case AmaltheaPackage.AMALTHEA: return createAmalthea();
 			case AmaltheaPackage.COMMON_ELEMENTS: return createCommonElements();
 			case AmaltheaPackage.TAG: return createTag();
+			case AmaltheaPackage.NAMESPACE: return createNamespace();
 			case AmaltheaPackage.CORE_CLASSIFIER: return createCoreClassifier();
 			case AmaltheaPackage.MEMORY_CLASSIFIER: return createMemoryClassifier();
 			case AmaltheaPackage.TRANSMISSION_POLICY: return createTransmissionPolicy();
@@ -458,13 +464,17 @@
 			case AmaltheaPackage.ENUM_MODE: return createEnumMode();
 			case AmaltheaPackage.MODE_LITERAL: return createModeLiteral();
 			case AmaltheaPackage.COMPONENTS_MODEL: return createComponentsModel();
+			case AmaltheaPackage.MAIN_INTERFACE: return createMainInterface();
+			case AmaltheaPackage.SUB_INTERFACE: return createSubInterface();
+			case AmaltheaPackage.COMPONENT_PORT: return createComponentPort();
+			case AmaltheaPackage.COMPONENT_STRUCTURE: return createComponentStructure();
 			case AmaltheaPackage.COMPONENT: return createComponent();
 			case AmaltheaPackage.COMPOSITE: return createComposite();
 			case AmaltheaPackage.SYSTEM: return createSystem();
 			case AmaltheaPackage.COMPONENT_INSTANCE: return createComponentInstance();
 			case AmaltheaPackage.CONNECTOR: return createConnector();
+			case AmaltheaPackage.INTERFACE_CHANNEL: return (EObject)createInterfaceChannel();
 			case AmaltheaPackage.QUALIFIED_PORT: return createQualifiedPort();
-			case AmaltheaPackage.INTERFACE_PORT: return createInterfacePort();
 			case AmaltheaPackage.CONFIG_MODEL: return createConfigModel();
 			case AmaltheaPackage.EVENT_CONFIG: return createEventConfig();
 			case AmaltheaPackage.CONSTRAINTS_MODEL: return createConstraintsModel();
@@ -613,7 +623,7 @@
 			case AmaltheaPackage.SW_MODEL: return createSWModel();
 			case AmaltheaPackage.CUSTOM_ENTITY: return createCustomEntity();
 			case AmaltheaPackage.PROCESS_CHAIN: return createProcessChain();
-			case AmaltheaPackage.CALL_GRAPH: return createCallGraph();
+			case AmaltheaPackage.ACTIVITY_GRAPH: return createActivityGraph();
 			case AmaltheaPackage.MODE_SWITCH: return createModeSwitch();
 			case AmaltheaPackage.MODE_SWITCH_ENTRY: return createModeSwitchEntry();
 			case AmaltheaPackage.MODE_SWITCH_DEFAULT: return createModeSwitchDefault();
@@ -1022,6 +1032,17 @@
 	 * @generated
 	 */
 	@Override
+	public Namespace createNamespace() {
+		NamespaceImpl namespace = new NamespaceImpl();
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public CoreClassifier createCoreClassifier() {
 		CoreClassifierImpl coreClassifier = new CoreClassifierImpl();
 		return coreClassifier;
@@ -1582,6 +1603,50 @@
 	 * @generated
 	 */
 	@Override
+	public MainInterface createMainInterface() {
+		MainInterfaceImpl mainInterface = new MainInterfaceImpl();
+		return mainInterface;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public SubInterface createSubInterface() {
+		SubInterfaceImpl subInterface = new SubInterfaceImpl();
+		return subInterface;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentPort createComponentPort() {
+		ComponentPortImpl componentPort = new ComponentPortImpl();
+		return componentPort;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentStructure createComponentStructure() {
+		ComponentStructureImpl componentStructure = new ComponentStructureImpl();
+		return componentStructure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Component createComponent() {
 		ComponentImpl component = new ComponentImpl();
 		return component;
@@ -1636,10 +1701,9 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	@Override
-	public QualifiedPort createQualifiedPort() {
-		QualifiedPortImpl qualifiedPort = new QualifiedPortImpl();
-		return qualifiedPort;
+	public Map.Entry<ComponentInterface, Channel> createInterfaceChannel() {
+		InterfaceChannelImpl interfaceChannel = new InterfaceChannelImpl();
+		return interfaceChannel;
 	}
 
 	/**
@@ -1648,9 +1712,9 @@
 	 * @generated
 	 */
 	@Override
-	public InterfacePort createInterfacePort() {
-		InterfacePortImpl interfacePort = new InterfacePortImpl();
-		return interfacePort;
+	public QualifiedPort createQualifiedPort() {
+		QualifiedPortImpl qualifiedPort = new QualifiedPortImpl();
+		return qualifiedPort;
 	}
 
 	/**
@@ -3285,9 +3349,9 @@
 	 * @generated
 	 */
 	@Override
-	public CallGraph createCallGraph() {
-		CallGraphImpl callGraph = new CallGraphImpl();
-		return callGraph;
+	public ActivityGraph createActivityGraph() {
+		ActivityGraphImpl activityGraph = new ActivityGraphImpl();
+		return activityGraph;
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaImpl.java
index 0f1cb98..3a0e499 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -219,7 +219,7 @@
 	 */
 	@Override
 	public String getVersion() {
-		return "0.9.6";
+		return "0.9.7";
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
index 643974a..a03df33 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AmaltheaPackageImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -25,6 +25,8 @@
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceType;
 import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AffinityConstraint;
 import org.eclipse.app4mc.amalthea.model.Algorithm;
 import org.eclipse.app4mc.amalthea.model.Alias;
@@ -50,8 +52,6 @@
 import org.eclipse.app4mc.amalthea.model.CacheDefinition;
 import org.eclipse.app4mc.amalthea.model.CacheType;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ChannelAccess;
@@ -72,7 +72,10 @@
 import org.eclipse.app4mc.amalthea.model.ComponentEvent;
 import org.eclipse.app4mc.amalthea.model.ComponentEventType;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
 import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.CompoundType;
@@ -196,13 +199,18 @@
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
 import org.eclipse.app4mc.amalthea.model.HwPort;
 import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.IAnnotatable;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
 import org.eclipse.app4mc.amalthea.model.IContinuousValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
 import org.eclipse.app4mc.amalthea.model.IDescription;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ISRAllocation;
 import org.eclipse.app4mc.amalthea.model.ISRCategory;
@@ -213,7 +221,6 @@
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
 import org.eclipse.app4mc.amalthea.model.InterfaceKind;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.InterruptSchedulingAlgorithm;
 import org.eclipse.app4mc.amalthea.model.Label;
@@ -232,6 +239,7 @@
 import org.eclipse.app4mc.amalthea.model.LimitType;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
 import org.eclipse.app4mc.amalthea.model.MappingType;
 import org.eclipse.app4mc.amalthea.model.Measurement;
@@ -262,6 +270,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeValue;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.NumericMode;
 import org.eclipse.app4mc.amalthea.model.NumericStatistic;
@@ -290,7 +299,6 @@
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
 import org.eclipse.app4mc.amalthea.model.Pointer;
 import org.eclipse.app4mc.amalthea.model.PollingPeriodicServer;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.PortInterface;
 import org.eclipse.app4mc.amalthea.model.PortType;
 import org.eclipse.app4mc.amalthea.model.PowerDomain;
@@ -386,6 +394,7 @@
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 import org.eclipse.app4mc.amalthea.model.StructureType;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronizationConstraint;
 import org.eclipse.app4mc.amalthea.model.SynchronizationType;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
@@ -539,6 +548,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass iNamespaceMemberEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass tagEClass = null;
 
 	/**
@@ -546,6 +562,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass namespaceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass classifierEClass = null;
 
 	/**
@@ -1036,6 +1059,20 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass iComponentContainerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iInterfaceContainerEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass iSystemEClass = null;
 
 	/**
@@ -1043,7 +1080,42 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass portEClass = null;
+	private EClass componentInterfaceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass mainInterfaceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass subInterfaceEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass componentPortEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass componentStructureEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	private EClass iComponentStructureMemberEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -1085,14 +1157,14 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass qualifiedPortEClass = null;
+	private EClass interfaceChannelEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass interfacePortEClass = null;
+	private EClass qualifiedPortEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -2478,21 +2550,21 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass iCallGraphItemContainerEClass = null;
+	private EClass iActivityGraphItemContainerEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass callGraphEClass = null;
+	private EClass activityGraphEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	private EClass callGraphItemEClass = null;
+	private EClass activityGraphItemEClass = null;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -2653,6 +2725,13 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	private EClass iDependsOnEClass = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	private EClass dataDependencyEClass = null;
 
 	/**
@@ -3742,7 +3821,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCommonElements_CoreClassifiers() {
+	public EReference getCommonElements_Namespaces() {
 		return (EReference)commonElementsEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -3752,7 +3831,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCommonElements_MemoryClassifiers() {
+	public EReference getCommonElements_CoreClassifiers() {
 		return (EReference)commonElementsEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -3762,6 +3841,16 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getCommonElements_MemoryClassifiers() {
+		return (EReference)commonElementsEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getBaseObject() {
 		return baseObjectEClass;
 	}
@@ -3852,6 +3941,76 @@
 	 * @generated
 	 */
 	@Override
+	public EAttribute getINamed_QualifiedName() {
+		return (EAttribute)iNamedEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetNamedContainer() {
+		return iNamedEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetNamePrefix() {
+		return iNamedEClass.getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetQualifiedNameSegments() {
+		return iNamedEClass.getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetDefaultNameSeparator() {
+		return iNamedEClass.getEOperations().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetNamespace() {
+		return iNamedEClass.getEOperations().get(4);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getINamed__GetNamePrefixSegments() {
+		return iNamedEClass.getEOperations().get(5);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getIReferable() {
 		return iReferableEClass;
 	}
@@ -3872,7 +4031,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getIReferable__GetNamePrefix() {
+	public EOperation getIReferable__GetEncodedQualifiedName() {
 		return iReferableEClass.getEOperations().get(0);
 	}
 
@@ -3882,18 +4041,8 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getIReferable__Encode__String() {
-		return iReferableEClass.getEOperations().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EOperation getIReferable__ValidateInvariants__DiagnosticChain_Map() {
-		return iReferableEClass.getEOperations().get(2);
+		return iReferableEClass.getEOperations().get(1);
 	}
 
 	/**
@@ -3942,6 +4091,26 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getINamespaceMember() {
+		return iNamespaceMemberEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getINamespaceMember_Namespace() {
+		return (EReference)iNamespaceMemberEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getTag() {
 		return tagEClass;
 	}
@@ -3972,6 +4141,56 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getNamespace() {
+		return namespaceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getNamespace_NextSegments() {
+		return (EReference)namespaceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getNamespace_PreviousSegment() {
+		return (EReference)namespaceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getNamespace_MemberObjects() {
+		return (EReference)namespaceEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getNamespace__GetNamePrefixSegments() {
+		return namespaceEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getClassifier() {
 		return classifierEClass;
 	}
@@ -6002,7 +6221,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getModeLiteral__GetNamePrefix() {
+	public EOperation getModeLiteral__GetNamePrefixSegments() {
 		return modeLiteralEClass.getEOperations().get(0);
 	}
 
@@ -6032,7 +6251,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getComponentsModel_Components() {
+	public EReference getComponentsModel_Structures() {
 		return (EReference)componentsModelEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -6052,6 +6271,46 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getIComponentContainer() {
+		return iComponentContainerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getIComponentContainer_Components() {
+		return (EReference)iComponentContainerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getIInterfaceContainer() {
+		return iInterfaceContainerEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getIInterfaceContainer_Interfaces() {
+		return (EReference)iInterfaceContainerEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getISystem() {
 		return iSystemEClass;
 	}
@@ -6102,8 +6361,8 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getPort() {
-		return portEClass;
+	public EClass getComponentInterface() {
+		return componentInterfaceEClass;
 	}
 
 	/**
@@ -6112,8 +6371,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getPort_ContainingComponent() {
-		return (EReference)portEClass.getEStructuralFeatures().get(0);
+	public EReference getComponentInterface_Datatype() {
+		return (EReference)componentInterfaceEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -6122,8 +6381,198 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getPort__GetNamePrefix() {
-		return portEClass.getEOperations().get(0);
+	public EReference getComponentInterface_SubInterfaces() {
+		return (EReference)componentInterfaceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getMainInterface() {
+		return mainInterfaceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getMainInterface_Version() {
+		return (EAttribute)mainInterfaceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getSubInterface() {
+		return subInterfaceEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getSubInterface_ContainingInterface() {
+		return (EReference)subInterfaceEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getSubInterface__GetNamePrefixSegments() {
+		return subInterfaceEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getComponentPort() {
+		return componentPortEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getComponentPort_ContainingComponent() {
+		return (EReference)componentPortEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getComponentPort_Kind() {
+		return (EAttribute)componentPortEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getComponentPort_Interface() {
+		return (EReference)componentPortEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getComponentPort__GetNamePrefixSegments() {
+		return componentPortEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getComponentStructure() {
+		return componentStructureEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EAttribute getComponentStructure_StructureType() {
+		return (EAttribute)componentStructureEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getComponentStructure_SubStructures() {
+		return (EReference)componentStructureEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getComponentStructure_MemberObjects() {
+		return (EReference)componentStructureEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getComponentStructure__GetContainingStructure() {
+		return componentStructureEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getComponentStructure__GetDefaultNameSeparator() {
+		return componentStructureEClass.getEOperations().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getComponentStructure__GetNamePrefixSegments() {
+		return componentStructureEClass.getEOperations().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getIComponentStructureMember() {
+		return iComponentStructureMemberEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getIComponentStructureMember_Structure() {
+		return (EReference)iComponentStructureMemberEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -6152,7 +6601,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getComponent_Tasks() {
+	public EReference getComponent_Processes() {
 		return (EReference)componentEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -6232,7 +6681,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getComponentInstance_Type() {
+	public EReference getComponentInstance_ContainingSystem() {
 		return (EReference)componentInstanceEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -6242,6 +6691,26 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getComponentInstance_Type() {
+		return (EReference)componentInstanceEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EOperation getComponentInstance__GetNamePrefixSegments() {
+		return componentInstanceEClass.getEOperations().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getConnector() {
 		return connectorEClass;
 	}
@@ -6252,7 +6721,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getConnector_SourcePort() {
+	public EReference getConnector_ContainingSystem() {
 		return (EReference)connectorEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -6262,7 +6731,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getConnector_TargetPort() {
+	public EReference getConnector_SourcePort() {
 		return (EReference)connectorEClass.getEStructuralFeatures().get(1);
 	}
 
@@ -6272,6 +6741,56 @@
 	 * @generated
 	 */
 	@Override
+	public EReference getConnector_TargetPort() {
+		return (EReference)connectorEClass.getEStructuralFeatures().get(2);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getConnector_ImplementedInterfaces() {
+		return (EReference)connectorEClass.getEStructuralFeatures().get(3);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EClass getInterfaceChannel() {
+		return interfaceChannelEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getInterfaceChannel_Key() {
+		return (EReference)interfaceChannelEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getInterfaceChannel_Value() {
+		return (EReference)interfaceChannelEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getQualifiedPort() {
 		return qualifiedPortEClass;
 	}
@@ -6302,36 +6821,6 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getInterfacePort() {
-		return interfacePortEClass;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EAttribute getInterfacePort_InterfaceName() {
-		return (EAttribute)interfacePortEClass.getEStructuralFeatures().get(0);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EAttribute getInterfacePort_Kind() {
-		return (EAttribute)interfacePortEClass.getEStructuralFeatures().get(1);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EClass getConfigModel() {
 		return configModelEClass;
 	}
@@ -8722,7 +9211,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getHwFeature__GetNamePrefix() {
+	public EOperation getHwFeature__GetNamePrefixSegments() {
 		return hwFeatureEClass.getEOperations().get(0);
 	}
 
@@ -8812,7 +9301,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getHwPort__GetNamePrefix() {
+	public EOperation getHwPort__GetNamePrefixSegments() {
 		return hwPortEClass.getEOperations().get(0);
 	}
 
@@ -8922,7 +9411,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getHwConnection__GetNamePrefix() {
+	public EOperation getHwConnection__GetNamePrefixSegments() {
 		return hwConnectionEClass.getEOperations().get(0);
 	}
 
@@ -12332,7 +12821,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getProcess_CallGraph() {
+	public EReference getProcess_ActivityGraph() {
 		return (EReference)processEClass.getEStructuralFeatures().get(0);
 	}
 
@@ -12352,8 +12841,8 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getICallGraphItemContainer() {
-		return iCallGraphItemContainerEClass;
+	public EClass getIActivityGraphItemContainer() {
+		return iActivityGraphItemContainerEClass;
 	}
 
 	/**
@@ -12362,8 +12851,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getICallGraphItemContainer_Items() {
-		return (EReference)iCallGraphItemContainerEClass.getEStructuralFeatures().get(0);
+	public EReference getIActivityGraphItemContainer_Items() {
+		return (EReference)iActivityGraphItemContainerEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -12372,8 +12861,8 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getCallGraph() {
-		return callGraphEClass;
+	public EClass getActivityGraph() {
+		return activityGraphEClass;
 	}
 
 	/**
@@ -12382,8 +12871,8 @@
 	 * @generated
 	 */
 	@Override
-	public EClass getCallGraphItem() {
-		return callGraphItemEClass;
+	public EClass getActivityGraphItem() {
+		return activityGraphItemEClass;
 	}
 
 	/**
@@ -12392,8 +12881,8 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCallGraphItem_ContainingProcess() {
-		return (EReference)callGraphItemEClass.getEStructuralFeatures().get(0);
+	public EReference getActivityGraphItem_ContainingProcess() {
+		return (EReference)activityGraphItemEClass.getEStructuralFeatures().get(0);
 	}
 
 	/**
@@ -12402,8 +12891,18 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCallGraphItem_ContainingRunnable() {
-		return (EReference)callGraphItemEClass.getEStructuralFeatures().get(1);
+	public EReference getActivityGraphItem_ContainingRunnable() {
+		return (EReference)activityGraphItemEClass.getEStructuralFeatures().get(1);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getActivityGraphItem_ContainingActivityGraph() {
+		return (EReference)activityGraphItemEClass.getEStructuralFeatures().get(2);
 	}
 
 	/**
@@ -13052,6 +13551,26 @@
 	 * @generated
 	 */
 	@Override
+	public EClass getIDependsOn() {
+		return iDependsOnEClass;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EReference getIDependsOn_DependsOn() {
+		return (EReference)iDependsOnEClass.getEStructuralFeatures().get(0);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EClass getDataDependency() {
 		return dataDependencyEClass;
 	}
@@ -13142,17 +13661,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRunnableParameter_DependsOn() {
-		return (EReference)runnableParameterEClass.getEStructuralFeatures().get(3);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EOperation getRunnableParameter__GetNamePrefix() {
+	public EOperation getRunnableParameter__GetNamePrefixSegments() {
 		return runnableParameterEClass.getEOperations().get(0);
 	}
 
@@ -13202,7 +13711,7 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getRunnable_CallGraph() {
+	public EReference getRunnable_ActivityGraph() {
 		return (EReference)runnableEClass.getEStructuralFeatures().get(2);
 	}
 
@@ -13792,16 +14301,6 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getLabelAccess_DependsOn() {
-		return (EReference)labelAccessEClass.getEStructuralFeatures().get(6);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EClass getChannelAccess() {
 		return channelAccessEClass;
 	}
@@ -14152,16 +14651,6 @@
 	 * @generated
 	 */
 	@Override
-	public EReference getCallArgument_DependsOn() {
-		return (EReference)callArgumentEClass.getEStructuralFeatures().get(2);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public EOperation getCallArgument__GetName() {
 		return callArgumentEClass.getEOperations().get(0);
 	}
@@ -14172,7 +14661,7 @@
 	 * @generated
 	 */
 	@Override
-	public EOperation getCallArgument__ComputeUniqueName() {
+	public EOperation getCallArgument__GetNamePrefixSegments() {
 		return callArgumentEClass.getEOperations().get(1);
 	}
 
@@ -15532,6 +16021,7 @@
 
 		commonElementsEClass = createEClass(COMMON_ELEMENTS);
 		createEReference(commonElementsEClass, COMMON_ELEMENTS__TAGS);
+		createEReference(commonElementsEClass, COMMON_ELEMENTS__NAMESPACES);
 		createEReference(commonElementsEClass, COMMON_ELEMENTS__CORE_CLASSIFIERS);
 		createEReference(commonElementsEClass, COMMON_ELEMENTS__MEMORY_CLASSIFIERS);
 
@@ -15549,11 +16039,17 @@
 
 		iNamedEClass = createEClass(INAMED);
 		createEAttribute(iNamedEClass, INAMED__NAME);
+		createEAttribute(iNamedEClass, INAMED__QUALIFIED_NAME);
+		createEOperation(iNamedEClass, INAMED___GET_NAMED_CONTAINER);
+		createEOperation(iNamedEClass, INAMED___GET_NAME_PREFIX);
+		createEOperation(iNamedEClass, INAMED___GET_QUALIFIED_NAME_SEGMENTS);
+		createEOperation(iNamedEClass, INAMED___GET_DEFAULT_NAME_SEPARATOR);
+		createEOperation(iNamedEClass, INAMED___GET_NAMESPACE);
+		createEOperation(iNamedEClass, INAMED___GET_NAME_PREFIX_SEGMENTS);
 
 		iReferableEClass = createEClass(IREFERABLE);
 		createEAttribute(iReferableEClass, IREFERABLE__UNIQUE_NAME);
-		createEOperation(iReferableEClass, IREFERABLE___GET_NAME_PREFIX);
-		createEOperation(iReferableEClass, IREFERABLE___ENCODE__STRING);
+		createEOperation(iReferableEClass, IREFERABLE___GET_ENCODED_QUALIFIED_NAME);
 		createEOperation(iReferableEClass, IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP);
 
 		iDisplayNameEClass = createEClass(IDISPLAY_NAME);
@@ -15562,10 +16058,19 @@
 		iDescriptionEClass = createEClass(IDESCRIPTION);
 		createEAttribute(iDescriptionEClass, IDESCRIPTION__DESCRIPTION);
 
+		iNamespaceMemberEClass = createEClass(INAMESPACE_MEMBER);
+		createEReference(iNamespaceMemberEClass, INAMESPACE_MEMBER__NAMESPACE);
+
 		tagEClass = createEClass(TAG);
 		createEAttribute(tagEClass, TAG__TAG_TYPE);
 		createEReference(tagEClass, TAG__TAGGED_OBJECTS);
 
+		namespaceEClass = createEClass(NAMESPACE);
+		createEReference(namespaceEClass, NAMESPACE__NEXT_SEGMENTS);
+		createEReference(namespaceEClass, NAMESPACE__PREVIOUS_SEGMENT);
+		createEReference(namespaceEClass, NAMESPACE__MEMBER_OBJECTS);
+		createEOperation(namespaceEClass, NAMESPACE___GET_NAME_PREFIX_SEGMENTS);
+
 		classifierEClass = createEClass(CLASSIFIER);
 
 		coreClassifierEClass = createEClass(CORE_CLASSIFIER);
@@ -15837,26 +16342,56 @@
 
 		modeLiteralEClass = createEClass(MODE_LITERAL);
 		createEReference(modeLiteralEClass, MODE_LITERAL__CONTAINING_MODE);
-		createEOperation(modeLiteralEClass, MODE_LITERAL___GET_NAME_PREFIX);
+		createEOperation(modeLiteralEClass, MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS);
 		createEOperation(modeLiteralEClass, MODE_LITERAL___TO_STRING);
 
 		componentsModelEClass = createEClass(COMPONENTS_MODEL);
-		createEReference(componentsModelEClass, COMPONENTS_MODEL__COMPONENTS);
+		createEReference(componentsModelEClass, COMPONENTS_MODEL__STRUCTURES);
 		createEReference(componentsModelEClass, COMPONENTS_MODEL__SYSTEMS);
 
+		iComponentContainerEClass = createEClass(ICOMPONENT_CONTAINER);
+		createEReference(iComponentContainerEClass, ICOMPONENT_CONTAINER__COMPONENTS);
+
+		iInterfaceContainerEClass = createEClass(IINTERFACE_CONTAINER);
+		createEReference(iInterfaceContainerEClass, IINTERFACE_CONTAINER__INTERFACES);
+
 		iSystemEClass = createEClass(ISYSTEM);
 		createEReference(iSystemEClass, ISYSTEM__COMPONENT_INSTANCES);
 		createEReference(iSystemEClass, ISYSTEM__CONNECTORS);
 		createEReference(iSystemEClass, ISYSTEM__GROUNDED_PORTS);
 		createEReference(iSystemEClass, ISYSTEM__INNER_PORTS);
 
-		portEClass = createEClass(PORT);
-		createEReference(portEClass, PORT__CONTAINING_COMPONENT);
-		createEOperation(portEClass, PORT___GET_NAME_PREFIX);
+		componentInterfaceEClass = createEClass(COMPONENT_INTERFACE);
+		createEReference(componentInterfaceEClass, COMPONENT_INTERFACE__DATATYPE);
+		createEReference(componentInterfaceEClass, COMPONENT_INTERFACE__SUB_INTERFACES);
+
+		mainInterfaceEClass = createEClass(MAIN_INTERFACE);
+		createEAttribute(mainInterfaceEClass, MAIN_INTERFACE__VERSION);
+
+		subInterfaceEClass = createEClass(SUB_INTERFACE);
+		createEReference(subInterfaceEClass, SUB_INTERFACE__CONTAINING_INTERFACE);
+		createEOperation(subInterfaceEClass, SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS);
+
+		componentPortEClass = createEClass(COMPONENT_PORT);
+		createEReference(componentPortEClass, COMPONENT_PORT__CONTAINING_COMPONENT);
+		createEAttribute(componentPortEClass, COMPONENT_PORT__KIND);
+		createEReference(componentPortEClass, COMPONENT_PORT__INTERFACE);
+		createEOperation(componentPortEClass, COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS);
+
+		componentStructureEClass = createEClass(COMPONENT_STRUCTURE);
+		createEAttribute(componentStructureEClass, COMPONENT_STRUCTURE__STRUCTURE_TYPE);
+		createEReference(componentStructureEClass, COMPONENT_STRUCTURE__SUB_STRUCTURES);
+		createEReference(componentStructureEClass, COMPONENT_STRUCTURE__MEMBER_OBJECTS);
+		createEOperation(componentStructureEClass, COMPONENT_STRUCTURE___GET_CONTAINING_STRUCTURE);
+		createEOperation(componentStructureEClass, COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR);
+		createEOperation(componentStructureEClass, COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS);
+
+		iComponentStructureMemberEClass = createEClass(ICOMPONENT_STRUCTURE_MEMBER);
+		createEReference(iComponentStructureMemberEClass, ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE);
 
 		componentEClass = createEClass(COMPONENT);
 		createEReference(componentEClass, COMPONENT__PORTS);
-		createEReference(componentEClass, COMPONENT__TASKS);
+		createEReference(componentEClass, COMPONENT__PROCESSES);
 		createEReference(componentEClass, COMPONENT__RUNNABLES);
 		createEReference(componentEClass, COMPONENT__LABELS);
 		createEReference(componentEClass, COMPONENT__SEMAPHORES);
@@ -15867,20 +16402,24 @@
 		systemEClass = createEClass(SYSTEM);
 
 		componentInstanceEClass = createEClass(COMPONENT_INSTANCE);
+		createEReference(componentInstanceEClass, COMPONENT_INSTANCE__CONTAINING_SYSTEM);
 		createEReference(componentInstanceEClass, COMPONENT_INSTANCE__TYPE);
+		createEOperation(componentInstanceEClass, COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS);
 
 		connectorEClass = createEClass(CONNECTOR);
+		createEReference(connectorEClass, CONNECTOR__CONTAINING_SYSTEM);
 		createEReference(connectorEClass, CONNECTOR__SOURCE_PORT);
 		createEReference(connectorEClass, CONNECTOR__TARGET_PORT);
+		createEReference(connectorEClass, CONNECTOR__IMPLEMENTED_INTERFACES);
+
+		interfaceChannelEClass = createEClass(INTERFACE_CHANNEL);
+		createEReference(interfaceChannelEClass, INTERFACE_CHANNEL__KEY);
+		createEReference(interfaceChannelEClass, INTERFACE_CHANNEL__VALUE);
 
 		qualifiedPortEClass = createEClass(QUALIFIED_PORT);
 		createEReference(qualifiedPortEClass, QUALIFIED_PORT__INSTANCE);
 		createEReference(qualifiedPortEClass, QUALIFIED_PORT__PORT);
 
-		interfacePortEClass = createEClass(INTERFACE_PORT);
-		createEAttribute(interfacePortEClass, INTERFACE_PORT__INTERFACE_NAME);
-		createEAttribute(interfacePortEClass, INTERFACE_PORT__KIND);
-
 		configModelEClass = createEClass(CONFIG_MODEL);
 		createEReference(configModelEClass, CONFIG_MODEL__EVENTS_TO_TRACE);
 
@@ -16208,7 +16747,7 @@
 		hwFeatureEClass = createEClass(HW_FEATURE);
 		createEReference(hwFeatureEClass, HW_FEATURE__CONTAINING_CATEGORY);
 		createEAttribute(hwFeatureEClass, HW_FEATURE__VALUE);
-		createEOperation(hwFeatureEClass, HW_FEATURE___GET_NAME_PREFIX);
+		createEOperation(hwFeatureEClass, HW_FEATURE___GET_NAME_PREFIX_SEGMENTS);
 		createEOperation(hwFeatureEClass, HW_FEATURE___TO_STRING);
 
 		hwPortEClass = createEClass(HW_PORT);
@@ -16218,7 +16757,7 @@
 		createEAttribute(hwPortEClass, HW_PORT__PORT_INTERFACE);
 		createEAttribute(hwPortEClass, HW_PORT__DELEGATED);
 		createEReference(hwPortEClass, HW_PORT__CONNECTIONS);
-		createEOperation(hwPortEClass, HW_PORT___GET_NAME_PREFIX);
+		createEOperation(hwPortEClass, HW_PORT___GET_NAME_PREFIX_SEGMENTS);
 
 		connectionHandlerEClass = createEClass(CONNECTION_HANDLER);
 		createEReference(connectionHandlerEClass, CONNECTION_HANDLER__DEFINITION);
@@ -16231,7 +16770,7 @@
 		createEReference(hwConnectionEClass, HW_CONNECTION__PORT1);
 		createEReference(hwConnectionEClass, HW_CONNECTION__PORT2);
 		createEAttribute(hwConnectionEClass, HW_CONNECTION__INTERNAL);
-		createEOperation(hwConnectionEClass, HW_CONNECTION___GET_NAME_PREFIX);
+		createEOperation(hwConnectionEClass, HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS);
 		createEOperation(hwConnectionEClass, HW_CONNECTION___GET_PORTS);
 
 		hwAccessElementEClass = createEClass(HW_ACCESS_ELEMENT);
@@ -16677,17 +17216,18 @@
 		createEReference(processChainEClass, PROCESS_CHAIN__PROCESSES);
 
 		processEClass = createEClass(PROCESS);
-		createEReference(processEClass, PROCESS__CALL_GRAPH);
+		createEReference(processEClass, PROCESS__ACTIVITY_GRAPH);
 		createEReference(processEClass, PROCESS__STIMULI);
 
-		iCallGraphItemContainerEClass = createEClass(ICALL_GRAPH_ITEM_CONTAINER);
-		createEReference(iCallGraphItemContainerEClass, ICALL_GRAPH_ITEM_CONTAINER__ITEMS);
+		iActivityGraphItemContainerEClass = createEClass(IACTIVITY_GRAPH_ITEM_CONTAINER);
+		createEReference(iActivityGraphItemContainerEClass, IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS);
 
-		callGraphEClass = createEClass(CALL_GRAPH);
+		activityGraphEClass = createEClass(ACTIVITY_GRAPH);
 
-		callGraphItemEClass = createEClass(CALL_GRAPH_ITEM);
-		createEReference(callGraphItemEClass, CALL_GRAPH_ITEM__CONTAINING_PROCESS);
-		createEReference(callGraphItemEClass, CALL_GRAPH_ITEM__CONTAINING_RUNNABLE);
+		activityGraphItemEClass = createEClass(ACTIVITY_GRAPH_ITEM);
+		createEReference(activityGraphItemEClass, ACTIVITY_GRAPH_ITEM__CONTAINING_PROCESS);
+		createEReference(activityGraphItemEClass, ACTIVITY_GRAPH_ITEM__CONTAINING_RUNNABLE);
+		createEReference(activityGraphItemEClass, ACTIVITY_GRAPH_ITEM__CONTAINING_ACTIVITY_GRAPH);
 
 		modeSwitchEClass = createEClass(MODE_SWITCH);
 		createEReference(modeSwitchEClass, MODE_SWITCH__ENTRIES);
@@ -16775,6 +17315,9 @@
 		orderPrecedenceSpecEClass = createEClass(ORDER_PRECEDENCE_SPEC);
 		createEAttribute(orderPrecedenceSpecEClass, ORDER_PRECEDENCE_SPEC__ORDER_TYPE);
 
+		iDependsOnEClass = createEClass(IDEPENDS_ON);
+		createEReference(iDependsOnEClass, IDEPENDS_ON__DEPENDS_ON);
+
 		dataDependencyEClass = createEClass(DATA_DEPENDENCY);
 		createEReference(dataDependencyEClass, DATA_DEPENDENCY__LABELS);
 		createEReference(dataDependencyEClass, DATA_DEPENDENCY__PARAMETERS);
@@ -16785,14 +17328,13 @@
 		createEReference(runnableParameterEClass, RUNNABLE_PARAMETER__CONTAINING_RUNNABLE);
 		createEAttribute(runnableParameterEClass, RUNNABLE_PARAMETER__DIRECTION);
 		createEReference(runnableParameterEClass, RUNNABLE_PARAMETER__DATA_TYPE);
-		createEReference(runnableParameterEClass, RUNNABLE_PARAMETER__DEPENDS_ON);
-		createEOperation(runnableParameterEClass, RUNNABLE_PARAMETER___GET_NAME_PREFIX);
+		createEOperation(runnableParameterEClass, RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS);
 		createEOperation(runnableParameterEClass, RUNNABLE_PARAMETER___TO_STRING);
 
 		runnableEClass = createEClass(RUNNABLE);
 		createEReference(runnableEClass, RUNNABLE__EXECUTION_CONDITION);
 		createEReference(runnableEClass, RUNNABLE__PARAMETERS);
-		createEReference(runnableEClass, RUNNABLE__CALL_GRAPH);
+		createEReference(runnableEClass, RUNNABLE__ACTIVITY_GRAPH);
 		createEReference(runnableEClass, RUNNABLE__ACTIVATIONS);
 		createEAttribute(runnableEClass, RUNNABLE__CALLBACK);
 		createEAttribute(runnableEClass, RUNNABLE__SERVICE);
@@ -16862,7 +17404,6 @@
 		createEReference(labelAccessEClass, LABEL_ACCESS__TRANSMISSION_POLICY);
 		createEAttribute(labelAccessEClass, LABEL_ACCESS__DATA_STABILITY);
 		createEAttribute(labelAccessEClass, LABEL_ACCESS__IMPLEMENTATION);
-		createEReference(labelAccessEClass, LABEL_ACCESS__DEPENDS_ON);
 
 		channelAccessEClass = createEClass(CHANNEL_ACCESS);
 		createEReference(channelAccessEClass, CHANNEL_ACCESS__DATA);
@@ -16911,9 +17452,8 @@
 		callArgumentEClass = createEClass(CALL_ARGUMENT);
 		createEReference(callArgumentEClass, CALL_ARGUMENT__CONTAINING_CALL);
 		createEReference(callArgumentEClass, CALL_ARGUMENT__PARAMETER);
-		createEReference(callArgumentEClass, CALL_ARGUMENT__DEPENDS_ON);
 		createEOperation(callArgumentEClass, CALL_ARGUMENT___GET_NAME);
-		createEOperation(callArgumentEClass, CALL_ARGUMENT___COMPUTE_UNIQUE_NAME);
+		createEOperation(callArgumentEClass, CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS);
 
 		runnableCallEClass = createEClass(RUNNABLE_CALL);
 		createEReference(runnableCallEClass, RUNNABLE_CALL__RUNNABLE);
@@ -17118,6 +17658,7 @@
 		iReferableEClass.getESuperTypes().add(this.getINamed());
 		tagEClass.getESuperTypes().add(this.getReferableBaseObject());
 		tagEClass.getESuperTypes().add(this.getIDescription());
+		namespaceEClass.getESuperTypes().add(this.getReferableObject());
 		classifierEClass.getESuperTypes().add(this.getReferableBaseObject());
 		classifierEClass.getESuperTypes().add(this.getIDescription());
 		coreClassifierEClass.getESuperTypes().add(this.getClassifier());
@@ -17182,10 +17723,21 @@
 		enumModeEClass.getESuperTypes().add(this.getMode());
 		modeLiteralEClass.getESuperTypes().add(this.getReferableBaseObject());
 		componentsModelEClass.getESuperTypes().add(this.getBaseObject());
-		portEClass.getESuperTypes().add(this.getReferableBaseObject());
-		portEClass.getESuperTypes().add(this.getITaggable());
+		componentsModelEClass.getESuperTypes().add(this.getIComponentContainer());
+		componentsModelEClass.getESuperTypes().add(this.getIInterfaceContainer());
+		componentInterfaceEClass.getESuperTypes().add(this.getReferableBaseObject());
+		componentInterfaceEClass.getESuperTypes().add(this.getITaggable());
+		mainInterfaceEClass.getESuperTypes().add(this.getComponentInterface());
+		mainInterfaceEClass.getESuperTypes().add(this.getINamespaceMember());
+		mainInterfaceEClass.getESuperTypes().add(this.getIComponentStructureMember());
+		subInterfaceEClass.getESuperTypes().add(this.getComponentInterface());
+		componentPortEClass.getESuperTypes().add(this.getReferableBaseObject());
+		componentPortEClass.getESuperTypes().add(this.getITaggable());
+		componentStructureEClass.getESuperTypes().add(this.getReferableObject());
 		componentEClass.getESuperTypes().add(this.getReferableBaseObject());
 		componentEClass.getESuperTypes().add(this.getITaggable());
+		componentEClass.getESuperTypes().add(this.getINamespaceMember());
+		componentEClass.getESuperTypes().add(this.getIComponentStructureMember());
 		compositeEClass.getESuperTypes().add(this.getComponent());
 		compositeEClass.getESuperTypes().add(this.getISystem());
 		systemEClass.getESuperTypes().add(this.getReferableBaseObject());
@@ -17197,7 +17749,6 @@
 		connectorEClass.getESuperTypes().add(this.getINamed());
 		connectorEClass.getESuperTypes().add(this.getITaggable());
 		qualifiedPortEClass.getESuperTypes().add(this.getBaseObject());
-		interfacePortEClass.getESuperTypes().add(this.getPort());
 		configModelEClass.getESuperTypes().add(this.getBaseObject());
 		eventConfigEClass.getESuperTypes().add(this.getBaseObject());
 		eventConfigEClass.getESuperTypes().add(this.getINamed());
@@ -17429,29 +17980,29 @@
 		customEntityEClass.getESuperTypes().add(this.getIDescription());
 		processChainEClass.getESuperTypes().add(this.getReferableBaseObject());
 		processEClass.getESuperTypes().add(this.getAbstractProcess());
-		callGraphEClass.getESuperTypes().add(this.getBaseObject());
-		callGraphEClass.getESuperTypes().add(this.getICallGraphItemContainer());
-		callGraphItemEClass.getESuperTypes().add(this.getBaseObject());
-		modeSwitchEClass.getESuperTypes().add(this.getCallGraphItem());
+		activityGraphEClass.getESuperTypes().add(this.getBaseObject());
+		activityGraphEClass.getESuperTypes().add(this.getIActivityGraphItemContainer());
+		activityGraphItemEClass.getESuperTypes().add(this.getBaseObject());
+		modeSwitchEClass.getESuperTypes().add(this.getActivityGraphItem());
 		modeSwitchEntryEClass.getESuperTypes().add(this.getBaseObject());
 		modeSwitchEntryEClass.getESuperTypes().add(this.getINamed());
-		modeSwitchEntryEClass.getESuperTypes().add(this.getICallGraphItemContainer());
+		modeSwitchEntryEClass.getESuperTypes().add(this.getIActivityGraphItemContainer());
 		modeSwitchDefaultEClass.getESuperTypes().add(this.getBaseObject());
-		modeSwitchDefaultEClass.getESuperTypes().add(this.getICallGraphItemContainer());
-		probabilitySwitchEClass.getESuperTypes().add(this.getCallGraphItem());
+		modeSwitchDefaultEClass.getESuperTypes().add(this.getIActivityGraphItemContainer());
+		probabilitySwitchEClass.getESuperTypes().add(this.getActivityGraphItem());
 		probabilitySwitchEntryEClass.getESuperTypes().add(this.getBaseObject());
-		probabilitySwitchEntryEClass.getESuperTypes().add(this.getICallGraphItemContainer());
+		probabilitySwitchEntryEClass.getESuperTypes().add(this.getIActivityGraphItemContainer());
 		counterEClass.getESuperTypes().add(this.getBaseObject());
-		waitEventEClass.getESuperTypes().add(this.getCallGraphItem());
-		setEventEClass.getESuperTypes().add(this.getCallGraphItem());
-		clearEventEClass.getESuperTypes().add(this.getCallGraphItem());
+		waitEventEClass.getESuperTypes().add(this.getActivityGraphItem());
+		setEventEClass.getESuperTypes().add(this.getActivityGraphItem());
+		clearEventEClass.getESuperTypes().add(this.getActivityGraphItem());
 		eventMaskEClass.getESuperTypes().add(this.getBaseObject());
 		osEventEClass.getESuperTypes().add(this.getReferableBaseObject());
 		osEventEClass.getESuperTypes().add(this.getITaggable());
-		interProcessTriggerEClass.getESuperTypes().add(this.getCallGraphItem());
-		enforcedMigrationEClass.getESuperTypes().add(this.getCallGraphItem());
-		schedulePointEClass.getESuperTypes().add(this.getCallGraphItem());
-		terminateProcessEClass.getESuperTypes().add(this.getCallGraphItem());
+		interProcessTriggerEClass.getESuperTypes().add(this.getActivityGraphItem());
+		enforcedMigrationEClass.getESuperTypes().add(this.getActivityGraphItem());
+		schedulePointEClass.getESuperTypes().add(this.getActivityGraphItem());
+		terminateProcessEClass.getESuperTypes().add(this.getActivityGraphItem());
 		taskEClass.getESuperTypes().add(this.getProcess());
 		isrEClass.getESuperTypes().add(this.getProcess());
 		processPrototypeEClass.getESuperTypes().add(this.getAbstractProcess());
@@ -17461,38 +18012,44 @@
 		orderPrecedenceSpecEClass.getESuperTypes().add(this.getGeneralPrecedence());
 		dataDependencyEClass.getESuperTypes().add(this.getBaseObject());
 		runnableParameterEClass.getESuperTypes().add(this.getReferableBaseObject());
+		runnableParameterEClass.getESuperTypes().add(this.getIDependsOn());
 		runnableEClass.getESuperTypes().add(this.getAbstractMemoryElement());
+		runnableEClass.getESuperTypes().add(this.getINamespaceMember());
 		labelEClass.getESuperTypes().add(this.getAbstractMemoryElement());
 		labelEClass.getESuperTypes().add(this.getIDisplayName());
+		labelEClass.getESuperTypes().add(this.getINamespaceMember());
 		channelEClass.getESuperTypes().add(this.getAbstractMemoryElement());
 		channelEClass.getESuperTypes().add(this.getIDisplayName());
+		channelEClass.getESuperTypes().add(this.getINamespaceMember());
 		modeLabelEClass.getESuperTypes().add(this.getAbstractMemoryElement());
 		modeLabelEClass.getESuperTypes().add(this.getIDisplayName());
 		sectionEClass.getESuperTypes().add(this.getReferableBaseObject());
-		computationItemEClass.getESuperTypes().add(this.getCallGraphItem());
-		executionNeedEClass.getESuperTypes().add(this.getCallGraphItem());
+		computationItemEClass.getESuperTypes().add(this.getActivityGraphItem());
+		executionNeedEClass.getESuperTypes().add(this.getActivityGraphItem());
 		ticksEClass.getESuperTypes().add(this.getComputationItem());
-		modeLabelAccessEClass.getESuperTypes().add(this.getCallGraphItem());
+		modeLabelAccessEClass.getESuperTypes().add(this.getActivityGraphItem());
 		labelAccessEClass.getESuperTypes().add(this.getComputationItem());
 		labelAccessEClass.getESuperTypes().add(this.getITaggable());
-		channelAccessEClass.getESuperTypes().add(this.getCallGraphItem());
+		labelAccessEClass.getESuperTypes().add(this.getIDependsOn());
+		channelAccessEClass.getESuperTypes().add(this.getActivityGraphItem());
 		channelSendEClass.getESuperTypes().add(this.getChannelAccess());
 		channelReceiveEClass.getESuperTypes().add(this.getChannelAccess());
-		semaphoreAccessEClass.getESuperTypes().add(this.getCallGraphItem());
-		senderReceiverCommunicationEClass.getESuperTypes().add(this.getCallGraphItem());
+		semaphoreAccessEClass.getESuperTypes().add(this.getActivityGraphItem());
+		senderReceiverCommunicationEClass.getESuperTypes().add(this.getActivityGraphItem());
 		senderReceiverReadEClass.getESuperTypes().add(this.getSenderReceiverCommunication());
 		senderReceiverWriteEClass.getESuperTypes().add(this.getSenderReceiverCommunication());
-		serverCallEClass.getESuperTypes().add(this.getCallGraphItem());
+		serverCallEClass.getESuperTypes().add(this.getActivityGraphItem());
 		synchronousServerCallEClass.getESuperTypes().add(this.getServerCall());
 		asynchronousServerCallEClass.getESuperTypes().add(this.getServerCall());
 		getResultServerCallEClass.getESuperTypes().add(this.getServerCall());
-		groupEClass.getESuperTypes().add(this.getCallGraphItem());
+		groupEClass.getESuperTypes().add(this.getActivityGraphItem());
 		groupEClass.getESuperTypes().add(this.getINamed());
-		groupEClass.getESuperTypes().add(this.getICallGraphItemContainer());
+		groupEClass.getESuperTypes().add(this.getIActivityGraphItemContainer());
 		callArgumentEClass.getESuperTypes().add(this.getReferableObject());
-		runnableCallEClass.getESuperTypes().add(this.getCallGraphItem());
+		callArgumentEClass.getESuperTypes().add(this.getIDependsOn());
+		runnableCallEClass.getESuperTypes().add(this.getActivityGraphItem());
 		runnableCallEClass.getESuperTypes().add(this.getITaggable());
-		customEventTriggerEClass.getESuperTypes().add(this.getCallGraphItem());
+		customEventTriggerEClass.getESuperTypes().add(this.getActivityGraphItem());
 		compoundTypeEClass.getESuperTypes().add(this.getBaseObject());
 		compoundTypeEClass.getESuperTypes().add(this.getDataType());
 		structEClass.getESuperTypes().add(this.getCompoundType());
@@ -17504,6 +18061,7 @@
 		typeRefEClass.getESuperTypes().add(this.getDataType());
 		aliasEClass.getESuperTypes().add(this.getBaseObject());
 		typeDefinitionEClass.getESuperTypes().add(this.getReferableBaseObject());
+		typeDefinitionEClass.getESuperTypes().add(this.getINamespaceMember());
 		dataTypeDefinitionEClass.getESuperTypes().add(this.getTypeDefinition());
 		baseTypeDefinitionEClass.getESuperTypes().add(this.getTypeDefinition());
 		activationEClass.getESuperTypes().add(this.getReferableBaseObject());
@@ -17543,6 +18101,7 @@
 
 		initEClass(commonElementsEClass, CommonElements.class, "CommonElements", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCommonElements_Tags(), this.getTag(), null, "tags", null, 0, -1, CommonElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getCommonElements_Namespaces(), this.getNamespace(), null, "namespaces", null, 0, -1, CommonElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCommonElements_CoreClassifiers(), this.getCoreClassifier(), null, "coreClassifiers", null, 0, -1, CommonElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCommonElements_MemoryClassifiers(), this.getMemoryClassifier(), null, "memoryClassifiers", null, 0, -1, CommonElements.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
@@ -17560,16 +18119,26 @@
 
 		initEClass(iNamedEClass, INamed.class, "INamed", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getINamed_Name(), theEcorePackage.getEString(), "name", "", 0, 1, INamed.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getINamed_QualifiedName(), theEcorePackage.getEString(), "qualifiedName", null, 0, 1, INamed.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEOperation(getINamed__GetNamedContainer(), this.getINamed(), "getNamedContainer", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getINamed__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getINamed__GetQualifiedNameSegments(), theEcorePackage.getEString(), "getQualifiedNameSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getINamed__GetDefaultNameSeparator(), theEcorePackage.getEString(), "getDefaultNameSeparator", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getINamed__GetNamespace(), this.getNamespace(), "getNamespace", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getINamed__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEClass(iReferableEClass, IReferable.class, "IReferable", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getIReferable_UniqueName(), theEcorePackage.getEString(), "uniqueName", null, 0, 1, IReferable.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getIReferable__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getIReferable__GetEncodedQualifiedName(), theEcorePackage.getEString(), "getEncodedQualifiedName", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
-		EOperation op = initEOperation(getIReferable__Encode__String(), theEcorePackage.getEString(), "encode", 0, 1, !IS_UNIQUE, IS_ORDERED);
-		addEParameter(op, theEcorePackage.getEString(), "str", 0, 1, !IS_UNIQUE, IS_ORDERED);
-
-		op = initEOperation(getIReferable__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		EOperation op = initEOperation(getIReferable__ValidateInvariants__DiagnosticChain_Map(), theEcorePackage.getEBoolean(), "validateInvariants", 0, 1, !IS_UNIQUE, IS_ORDERED);
 		addEParameter(op, theEcorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, !IS_UNIQUE, IS_ORDERED);
 		EGenericType g1 = createEGenericType(theEcorePackage.getEMap());
 		EGenericType g2 = createEGenericType(theEcorePackage.getEJavaObject());
@@ -17584,10 +18153,20 @@
 		initEClass(iDescriptionEClass, IDescription.class, "IDescription", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getIDescription_Description(), theEcorePackage.getEString(), "description", null, 0, 1, IDescription.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(iNamespaceMemberEClass, INamespaceMember.class, "INamespaceMember", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getINamespaceMember_Namespace(), this.getNamespace(), null, "namespace", null, 0, 1, INamespaceMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(tagEClass, Tag.class, "Tag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getTag_TagType(), theEcorePackage.getEString(), "tagType", null, 0, 1, Tag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getTag_TaggedObjects(), this.getITaggable(), null, "taggedObjects", null, 0, -1, Tag.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
+		initEClass(namespaceEClass, Namespace.class, "Namespace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getNamespace_NextSegments(), this.getNamespace(), this.getNamespace_PreviousSegment(), "nextSegments", null, 0, -1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getNamespace_PreviousSegment(), this.getNamespace(), this.getNamespace_NextSegments(), "previousSegment", null, 0, 1, Namespace.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getNamespace_MemberObjects(), this.getINamespaceMember(), null, "memberObjects", null, 0, -1, Namespace.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEOperation(getNamespace__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
 		initEClass(classifierEClass, Classifier.class, "Classifier", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(coreClassifierEClass, CoreClassifier.class, "CoreClassifier", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -17976,28 +18555,62 @@
 		initEClass(modeLiteralEClass, ModeLiteral.class, "ModeLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getModeLiteral_ContainingMode(), this.getEnumMode(), this.getEnumMode_Literals(), "containingMode", null, 0, 1, ModeLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getModeLiteral__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getModeLiteral__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEOperation(getModeLiteral__ToString(), theEcorePackage.getEString(), "toString", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
 		initEClass(componentsModelEClass, ComponentsModel.class, "ComponentsModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getComponentsModel_Components(), this.getComponent(), null, "components", null, 0, -1, ComponentsModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponentsModel_Structures(), this.getComponentStructure(), null, "structures", null, 0, -1, ComponentsModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getComponentsModel_Systems(), this.getSystem(), null, "systems", null, 0, -1, ComponentsModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(iComponentContainerEClass, IComponentContainer.class, "IComponentContainer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIComponentContainer_Components(), this.getComponent(), null, "components", null, 0, -1, IComponentContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(iInterfaceContainerEClass, IInterfaceContainer.class, "IInterfaceContainer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIInterfaceContainer_Interfaces(), this.getMainInterface(), null, "interfaces", null, 0, -1, IInterfaceContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(iSystemEClass, ISystem.class, "ISystem", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getISystem_ComponentInstances(), this.getComponentInstance(), null, "componentInstances", null, 0, -1, ISystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getISystem_Connectors(), this.getConnector(), null, "connectors", null, 0, -1, ISystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getISystem_ComponentInstances(), this.getComponentInstance(), this.getComponentInstance_ContainingSystem(), "componentInstances", null, 0, -1, ISystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getISystem_Connectors(), this.getConnector(), this.getConnector_ContainingSystem(), "connectors", null, 0, -1, ISystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getISystem_GroundedPorts(), this.getQualifiedPort(), null, "groundedPorts", null, 0, -1, ISystem.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getISystem_InnerPorts(), this.getQualifiedPort(), null, "innerPorts", null, 0, -1, ISystem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
-		initEClass(portEClass, Port.class, "Port", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getPort_ContainingComponent(), this.getComponent(), this.getComponent_Ports(), "containingComponent", null, 0, 1, Port.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(componentInterfaceEClass, ComponentInterface.class, "ComponentInterface", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getComponentInterface_Datatype(), this.getTypeDefinition(), null, "datatype", null, 0, 1, ComponentInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponentInterface_SubInterfaces(), this.getSubInterface(), this.getSubInterface_ContainingInterface(), "subInterfaces", null, 0, -1, ComponentInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getPort__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEClass(mainInterfaceEClass, MainInterface.class, "MainInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getMainInterface_Version(), theEcorePackage.getEString(), "version", "1.0", 0, 1, MainInterface.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(subInterfaceEClass, SubInterface.class, "SubInterface", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getSubInterface_ContainingInterface(), this.getComponentInterface(), this.getComponentInterface_SubInterfaces(), "containingInterface", null, 0, 1, SubInterface.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEOperation(getSubInterface__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(componentPortEClass, ComponentPort.class, "ComponentPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getComponentPort_ContainingComponent(), this.getComponent(), this.getComponent_Ports(), "containingComponent", null, 0, 1, ComponentPort.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEAttribute(getComponentPort_Kind(), this.getInterfaceKind(), "kind", null, 0, 1, ComponentPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponentPort_Interface(), this.getComponentInterface(), null, "interface", null, 0, 1, ComponentPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEOperation(getComponentPort__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(componentStructureEClass, ComponentStructure.class, "ComponentStructure", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEAttribute(getComponentStructure_StructureType(), theEcorePackage.getEString(), "structureType", "", 0, 1, ComponentStructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponentStructure_SubStructures(), this.getComponentStructure(), null, "subStructures", null, 0, -1, ComponentStructure.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponentStructure_MemberObjects(), this.getIComponentStructureMember(), null, "memberObjects", null, 0, -1, ComponentStructure.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+
+		initEOperation(getComponentStructure__GetContainingStructure(), this.getComponentStructure(), "getContainingStructure", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getComponentStructure__GetDefaultNameSeparator(), theEcorePackage.getEString(), "getDefaultNameSeparator", 0, 1, !IS_UNIQUE, IS_ORDERED);
+
+		initEOperation(getComponentStructure__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
+		initEClass(iComponentStructureMemberEClass, IComponentStructureMember.class, "IComponentStructureMember", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIComponentStructureMember_Structure(), this.getComponentStructure(), null, "structure", null, 0, 1, IComponentStructureMember.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(componentEClass, Component.class, "Component", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getComponent_Ports(), this.getPort(), this.getPort_ContainingComponent(), "ports", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getComponent_Tasks(), this.getAbstractProcess(), null, "tasks", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponent_Ports(), this.getComponentPort(), this.getComponentPort_ContainingComponent(), "ports", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getComponent_Processes(), this.getAbstractProcess(), null, "processes", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getComponent_Runnables(), this.getRunnable(), null, "runnables", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getComponent_Labels(), this.getLabel(), null, "labels", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getComponent_Semaphores(), this.getSemaphore(), null, "semaphores", null, 0, -1, Component.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18008,19 +18621,24 @@
 		initEClass(systemEClass, org.eclipse.app4mc.amalthea.model.System.class, "System", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
 		initEClass(componentInstanceEClass, ComponentInstance.class, "ComponentInstance", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getComponentInstance_ContainingSystem(), this.getISystem(), this.getISystem_ComponentInstances(), "containingSystem", null, 0, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getComponentInstance_Type(), this.getComponent(), null, "type", null, 0, 1, ComponentInstance.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEOperation(getComponentInstance__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
+
 		initEClass(connectorEClass, Connector.class, "Connector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getConnector_ContainingSystem(), this.getISystem(), this.getISystem_Connectors(), "containingSystem", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getConnector_SourcePort(), this.getQualifiedPort(), null, "sourcePort", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getConnector_TargetPort(), this.getQualifiedPort(), null, "targetPort", null, 0, 1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getConnector_ImplementedInterfaces(), this.getInterfaceChannel(), null, "implementedInterfaces", null, 0, -1, Connector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+		initEClass(interfaceChannelEClass, Map.Entry.class, "InterfaceChannel", !IS_ABSTRACT, !IS_INTERFACE, !IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getInterfaceChannel_Key(), this.getComponentInterface(), null, "key", null, 1, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getInterfaceChannel_Value(), this.getChannel(), null, "value", null, 0, 1, Map.Entry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(qualifiedPortEClass, QualifiedPort.class, "QualifiedPort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getQualifiedPort_Instance(), this.getComponentInstance(), null, "instance", null, 0, 1, QualifiedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getQualifiedPort_Port(), this.getPort(), null, "port", null, 0, 1, QualifiedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-		initEClass(interfacePortEClass, InterfacePort.class, "InterfacePort", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEAttribute(getInterfacePort_InterfaceName(), theEcorePackage.getEString(), "interfaceName", null, 0, 1, InterfacePort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEAttribute(getInterfacePort_Kind(), this.getInterfaceKind(), "kind", null, 0, 1, InterfacePort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getQualifiedPort_Port(), this.getComponentPort(), null, "port", null, 1, 1, QualifiedPort.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(configModelEClass, ConfigModel.class, "ConfigModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getConfigModel_EventsToTrace(), this.getEventConfig(), null, "eventsToTrace", null, 0, -1, ConfigModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18351,7 +18969,7 @@
 		initEReference(getHwFeature_ContainingCategory(), this.getHwFeatureCategory(), this.getHwFeatureCategory_Features(), "containingCategory", null, 0, 1, HwFeature.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getHwFeature_Value(), theEcorePackage.getEDouble(), "value", "0.0", 0, 1, HwFeature.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getHwFeature__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getHwFeature__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEOperation(getHwFeature__ToString(), theEcorePackage.getEString(), "toString", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
@@ -18363,7 +18981,7 @@
 		initEAttribute(getHwPort_Delegated(), theEcorePackage.getEBoolean(), "delegated", null, 0, 1, HwPort.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getHwPort_Connections(), this.getHwConnection(), null, "connections", null, 0, -1, HwPort.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getHwPort__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getHwPort__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEClass(connectionHandlerEClass, ConnectionHandler.class, "ConnectionHandler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getConnectionHandler_Definition(), this.getConnectionHandlerDefinition(), null, "definition", null, 0, 1, ConnectionHandler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18377,7 +18995,7 @@
 		initEReference(getHwConnection_Port2(), this.getHwPort(), null, "port2", null, 0, 1, HwConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getHwConnection_Internal(), theEcorePackage.getEBoolean(), "internal", null, 0, 1, HwConnection.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getHwConnection__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getHwConnection__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEOperation(getHwConnection__GetPorts(), this.getHwPort(), "getPorts", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
@@ -18853,17 +19471,18 @@
 		initEReference(getProcessChain_Processes(), this.getProcess(), null, "processes", null, 0, -1, ProcessChain.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(processEClass, org.eclipse.app4mc.amalthea.model.Process.class, "Process", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getProcess_CallGraph(), this.getCallGraph(), null, "callGraph", null, 0, 1, org.eclipse.app4mc.amalthea.model.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getProcess_ActivityGraph(), this.getActivityGraph(), null, "activityGraph", null, 0, 1, org.eclipse.app4mc.amalthea.model.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getProcess_Stimuli(), this.getStimulus(), null, "stimuli", null, 0, -1, org.eclipse.app4mc.amalthea.model.Process.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(iCallGraphItemContainerEClass, ICallGraphItemContainer.class, "ICallGraphItemContainer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getICallGraphItemContainer_Items(), this.getCallGraphItem(), null, "items", null, 0, -1, ICallGraphItemContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEClass(iActivityGraphItemContainerEClass, IActivityGraphItemContainer.class, "IActivityGraphItemContainer", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIActivityGraphItemContainer_Items(), this.getActivityGraphItem(), null, "items", null, 0, -1, IActivityGraphItemContainer.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEClass(callGraphEClass, CallGraph.class, "CallGraph", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEClass(activityGraphEClass, ActivityGraph.class, "ActivityGraph", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
-		initEClass(callGraphItemEClass, CallGraphItem.class, "CallGraphItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-		initEReference(getCallGraphItem_ContainingProcess(), this.getProcess(), null, "containingProcess", null, 0, 1, CallGraphItem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
-		initEReference(getCallGraphItem_ContainingRunnable(), this.getRunnable(), null, "containingRunnable", null, 0, 1, CallGraphItem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEClass(activityGraphItemEClass, ActivityGraphItem.class, "ActivityGraphItem", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getActivityGraphItem_ContainingProcess(), this.getProcess(), null, "containingProcess", null, 0, 1, ActivityGraphItem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getActivityGraphItem_ContainingRunnable(), this.getRunnable(), null, "containingRunnable", null, 0, 1, ActivityGraphItem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+		initEReference(getActivityGraphItem_ContainingActivityGraph(), this.getActivityGraph(), null, "containingActivityGraph", null, 0, 1, ActivityGraphItem.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
 		initEClass(modeSwitchEClass, ModeSwitch.class, "ModeSwitch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getModeSwitch_Entries(), this.getModeSwitchEntry(), null, "entries", null, 0, -1, ModeSwitch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18951,6 +19570,9 @@
 		initEClass(orderPrecedenceSpecEClass, OrderPrecedenceSpec.class, "OrderPrecedenceSpec", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getOrderPrecedenceSpec_OrderType(), this.getOrderType(), "orderType", null, 0, 1, OrderPrecedenceSpec.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
+		initEClass(iDependsOnEClass, IDependsOn.class, "IDependsOn", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+		initEReference(getIDependsOn_DependsOn(), this.getDataDependency(), null, "dependsOn", null, 0, 1, IDependsOn.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
 		initEClass(dataDependencyEClass, DataDependency.class, "DataDependency", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getDataDependency_Labels(), this.getLabel(), null, "labels", null, 0, -1, DataDependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getDataDependency_Parameters(), this.getRunnableParameter(), null, "parameters", null, 0, -1, DataDependency.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18961,16 +19583,15 @@
 		initEReference(getRunnableParameter_ContainingRunnable(), this.getRunnable(), this.getRunnable_Parameters(), "containingRunnable", null, 0, 1, RunnableParameter.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getRunnableParameter_Direction(), this.getDirectionType(), "direction", null, 0, 1, RunnableParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnableParameter_DataType(), this.getTypeDefinition(), null, "dataType", null, 0, 1, RunnableParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRunnableParameter_DependsOn(), this.getDataDependency(), null, "dependsOn", null, 0, 1, RunnableParameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getRunnableParameter__GetNamePrefix(), theEcorePackage.getEString(), "getNamePrefix", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getRunnableParameter__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEOperation(getRunnableParameter__ToString(), theEcorePackage.getEString(), "toString", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
 		initEClass(runnableEClass, org.eclipse.app4mc.amalthea.model.Runnable.class, "Runnable", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getRunnable_ExecutionCondition(), this.getModeConditionDisjunction(), null, "executionCondition", null, 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnable_Parameters(), this.getRunnableParameter(), this.getRunnableParameter_ContainingRunnable(), "parameters", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getRunnable_CallGraph(), this.getCallGraph(), null, "callGraph", null, 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getRunnable_ActivityGraph(), this.getActivityGraph(), null, "activityGraph", null, 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnable_Activations(), this.getActivation(), null, "activations", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getRunnable_Callback(), theEcorePackage.getEBoolean(), "callback", "false", 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getRunnable_Service(), theEcorePackage.getEBoolean(), "service", "false", 0, 1, org.eclipse.app4mc.amalthea.model.Runnable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -18979,7 +19600,7 @@
 		initEReference(getRunnable_RunnableCalls(), this.getRunnableCall(), null, "runnableCalls", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 		initEReference(getRunnable_ReferringComponents(), this.getComponent(), null, "referringComponents", null, 0, -1, org.eclipse.app4mc.amalthea.model.Runnable.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
 
-		initEOperation(getRunnable__GetRunnableItems(), this.getCallGraphItem(), "getRunnableItems", 0, -1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getRunnable__GetRunnableItems(), this.getActivityGraphItem(), "getRunnableItems", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEOperation(getRunnable__GetFirstActivation(), this.getActivation(), "getFirstActivation", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
@@ -19060,7 +19681,6 @@
 		initEReference(getLabelAccess_TransmissionPolicy(), this.getTransmissionPolicy(), null, "transmissionPolicy", null, 0, 1, LabelAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLabelAccess_DataStability(), this.getLabelAccessDataStability(), "dataStability", null, 0, 1, LabelAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEAttribute(getLabelAccess_Implementation(), this.getLabelAccessImplementation(), "implementation", null, 0, 1, LabelAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getLabelAccess_DependsOn(), this.getDataDependency(), null, "dependsOn", null, 0, 1, LabelAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(channelAccessEClass, ChannelAccess.class, "ChannelAccess", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getChannelAccess_Data(), this.getChannel(), null, "data", null, 1, 1, ChannelAccess.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -19083,7 +19703,7 @@
 		initEClass(senderReceiverCommunicationEClass, SenderReceiverCommunication.class, "SenderReceiverCommunication", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getSenderReceiverCommunication_Buffered(), theEcorePackage.getEBoolean(), "buffered", "false", 0, 1, SenderReceiverCommunication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getSenderReceiverCommunication_Label(), this.getLabel(), null, "label", null, 1, 1, SenderReceiverCommunication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getSenderReceiverCommunication_Port(), this.getPort(), null, "port", null, 0, 1, SenderReceiverCommunication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getSenderReceiverCommunication_Port(), this.getComponentPort(), null, "port", null, 0, 1, SenderReceiverCommunication.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(senderReceiverReadEClass, SenderReceiverRead.class, "SenderReceiverRead", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 
@@ -19092,7 +19712,7 @@
 
 		initEClass(serverCallEClass, ServerCall.class, "ServerCall", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getServerCall_ServerRunnable(), this.getRunnable(), null, "serverRunnable", null, 1, 1, ServerCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getServerCall_Port(), this.getPort(), null, "port", null, 0, 1, ServerCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+		initEReference(getServerCall_Port(), this.getComponentPort(), null, "port", null, 0, 1, ServerCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEClass(synchronousServerCallEClass, SynchronousServerCall.class, "SynchronousServerCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEAttribute(getSynchronousServerCall_WaitingBehaviour(), this.getWaitingBehaviour(), "waitingBehaviour", null, 0, 1, SynchronousServerCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -19109,11 +19729,10 @@
 		initEClass(callArgumentEClass, CallArgument.class, "CallArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getCallArgument_ContainingCall(), this.getRunnableCall(), this.getRunnableCall_Arguments(), "containingCall", null, 0, 1, CallArgument.class, !IS_TRANSIENT, !IS_VOLATILE, !IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 		initEReference(getCallArgument_Parameter(), this.getRunnableParameter(), null, "parameter", null, 0, 1, CallArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-		initEReference(getCallArgument_DependsOn(), this.getDataDependency(), null, "dependsOn", null, 0, 1, CallArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
 
 		initEOperation(getCallArgument__GetName(), theEcorePackage.getEString(), "getName", 0, 1, !IS_UNIQUE, IS_ORDERED);
 
-		initEOperation(getCallArgument__ComputeUniqueName(), theEcorePackage.getEString(), "computeUniqueName", 0, 1, !IS_UNIQUE, IS_ORDERED);
+		initEOperation(getCallArgument__GetNamePrefixSegments(), theEcorePackage.getEString(), "getNamePrefixSegments", 0, -1, !IS_UNIQUE, IS_ORDERED);
 
 		initEClass(runnableCallEClass, RunnableCall.class, "RunnableCall", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
 		initEReference(getRunnableCall_Runnable(), this.getRunnable(), null, "runnable", null, 1, 1, RunnableCall.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArchitectureRequirementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArchitectureRequirementImpl.java
index 5ff92ee..5670540 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArchitectureRequirementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArchitectureRequirementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrayImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrayImpl.java
index 5165d79..17b4af9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrayImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrayImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveEntryImpl.java
index fdceace..44bd77e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveStimulusImpl.java
index 4beca78..9cb14dd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ArrivalCurveStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AsynchronousServerCallImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AsynchronousServerCallImpl.java
index 9a57d54..d1fbb7e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AsynchronousServerCallImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/AsynchronousServerCallImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseObjectImpl.java
index 48314fb..eff5932 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseTypeDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseTypeDefinitionImpl.java
index c4a57e2..d1fa3e2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseTypeDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BaseTypeDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BigIntegerObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BigIntegerObjectImpl.java
index c8d1a01..254f4e7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BigIntegerObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BigIntegerObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BooleanObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BooleanObjectImpl.java
index 63f943c..9eeae00 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BooleanObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BooleanObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedContinuousValueDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedContinuousValueDistributionImpl.java
index d1cb25a..86e258c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedContinuousValueDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedContinuousValueDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedDiscreteValueDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedDiscreteValueDistributionImpl.java
index d351f3d..e3ab1fd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedDiscreteValueDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedDiscreteValueDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedTimeDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedTimeDistributionImpl.java
index c01d8fc..9ebf8c1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedTimeDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/BoundedTimeDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CPUPercentageRequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CPUPercentageRequirementLimitImpl.java
index bfbefae..01a1816 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CPUPercentageRequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CPUPercentageRequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheDefinitionImpl.java
index ec81439..c5d2139 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheImpl.java
index 7a59376..1460554 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CacheImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallArgumentImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallArgumentImpl.java
index db84596..6d10245 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallArgumentImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallArgumentImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,22 +16,33 @@
 
 import java.lang.reflect.InvocationTargetException;
 
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
 import org.eclipse.app4mc.amalthea.model.DataDependency;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ReferableObject;
 import org.eclipse.app4mc.amalthea.model.RunnableCall;
 import org.eclipse.app4mc.amalthea.model.RunnableParameter;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 import org.eclipse.xtext.xbase.lib.StringExtensions;
 
 /**
@@ -42,25 +53,15 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallArgumentImpl#getDependsOn <em>Depends On</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallArgumentImpl#getContainingCall <em>Containing Call</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallArgumentImpl#getParameter <em>Parameter</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallArgumentImpl#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class CallArgumentImpl extends ReferableObjectImpl implements CallArgument {
 	/**
-	 * The cached value of the '{@link #getParameter() <em>Parameter</em>}' reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getParameter()
-	 * @generated
-	 * @ordered
-	 */
-	protected RunnableParameter parameter;
-
-	/**
 	 * The cached value of the '{@link #getDependsOn() <em>Depends On</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -71,6 +72,16 @@
 	protected DataDependency dependsOn;
 
 	/**
+	 * The cached value of the '{@link #getParameter() <em>Parameter</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getParameter()
+	 * @generated
+	 * @ordered
+	 */
+	protected RunnableParameter parameter;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -95,6 +106,51 @@
 	 * @generated
 	 */
 	@Override
+	public DataDependency getDependsOn() {
+		return dependsOn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
+		DataDependency oldDependsOn = dependsOn;
+		dependsOn = newDependsOn;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, oldDependsOn, newDependsOn);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDependsOn(DataDependency newDependsOn) {
+		if (newDependsOn != dependsOn) {
+			NotificationChain msgs = null;
+			if (dependsOn != null)
+				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, null, msgs);
+			if (newDependsOn != null)
+				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, null, msgs);
+			msgs = basicSetDependsOn(newDependsOn, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, newDependsOn, newDependsOn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public RunnableCall getContainingCall() {
 		if (eContainerFeatureID() != AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL) return null;
 		return (RunnableCall)eContainer();
@@ -156,56 +212,11 @@
 	 * @generated
 	 */
 	@Override
-	public DataDependency getDependsOn() {
-		return dependsOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
-		DataDependency oldDependsOn = dependsOn;
-		dependsOn = newDependsOn;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, oldDependsOn, newDependsOn);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setDependsOn(DataDependency newDependsOn) {
-		if (newDependsOn != dependsOn) {
-			NotificationChain msgs = null;
-			if (dependsOn != null)
-				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, null, msgs);
-			if (newDependsOn != null)
-				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, null, msgs);
-			msgs = basicSetDependsOn(newDependsOn, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON, newDependsOn, newDependsOn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public String getName() {
 		String _xifexpression = null;
 		boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(super.getName());
 		if (_isNullOrEmpty) {
-			_xifexpression = "access.1";
+			_xifexpression = "access-1";
 		}
 		else {
 			_xifexpression = super.getName();
@@ -219,43 +230,52 @@
 	 * @generated
 	 */
 	@Override
-	public String computeUniqueName() {
+	public EList<String> getNamePrefixSegments() {
+		final BasicEList<String> segments = XcoreCollectionLiterals.<String>newBasicEList();
 		RunnableCall _containingCall = this.getContainingCall();
-		org.eclipse.app4mc.amalthea.model.Runnable _containingRunnable = null;
+		ActivityGraph _containingActivityGraph = null;
 		if (_containingCall!=null) {
-			_containingRunnable=_containingCall.getContainingRunnable();
+			_containingActivityGraph=_containingCall.getContainingActivityGraph();
 		}
-		String _name = null;
-		if (_containingRunnable!=null) {
-			_name=_containingRunnable.getName();
+		EObject _eContainer = null;
+		if (_containingActivityGraph!=null) {
+			_eContainer=_containingActivityGraph.eContainer();
 		}
-		String _encode = this.encode(_name);
-		String _plus = (_encode + "/calls/");
+		final IReferable runnableOrProcess = ((IReferable) _eContainer);
+		if ((runnableOrProcess != null)) {
+			segments.addAll(runnableOrProcess.getQualifiedNameSegments());
+		}
+		segments.add("calls");
+		List<String> _elvis = null;
 		RunnableCall _containingCall_1 = this.getContainingCall();
 		org.eclipse.app4mc.amalthea.model.Runnable _runnable = null;
 		if (_containingCall_1!=null) {
 			_runnable=_containingCall_1.getRunnable();
 		}
-		String _name_1 = null;
+		EList<String> _qualifiedNameSegments = null;
 		if (_runnable!=null) {
-			_name_1=_runnable.getName();
+			_qualifiedNameSegments=_runnable.getQualifiedNameSegments();
 		}
-		String _encode_1 = this.encode(_name_1);
-		String _plus_1 = (_plus + _encode_1);
-		String _plus_2 = (_plus_1 + "/param/");
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			_elvis = java.util.Collections.<String>unmodifiableList(org.eclipse.xtext.xbase.lib.CollectionLiterals.<String>newArrayList(""));
+		}
+		segments.addAll(_elvis);
+		segments.add("param");
+		String _elvis_1 = null;
 		RunnableParameter _parameter = this.getParameter();
-		String _name_2 = null;
+		String _name = null;
 		if (_parameter!=null) {
-			_name_2=_parameter.getName();
+			_name=_parameter.getName();
 		}
-		String _encode_2 = this.encode(_name_2);
-		String _plus_3 = (_plus_2 + _encode_2);
-		String _plus_4 = (_plus_3 + "/");
-		String _encode_3 = this.encode(this.getName());
-		String _plus_5 = (_plus_4 + _encode_3);
-		String _plus_6 = (_plus_5 + "?type=");
-		String _name_3 = this.eClass().getName();
-		return (_plus_6 + _name_3);
+		if (_name != null) {
+			_elvis_1 = _name;
+		} else {
+			_elvis_1 = "";
+		}
+		segments.add(_elvis_1);
+		return segments;
 	}
 
 	/**
@@ -282,10 +302,10 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL:
-				return eBasicSetContainer(null, AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL, msgs);
 			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
 				return basicSetDependsOn(null, msgs);
+			case AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL:
+				return eBasicSetContainer(null, AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -312,14 +332,14 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
+				return getDependsOn();
 			case AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL:
 				if (resolve) return getContainingCall();
 				return basicGetContainingCall();
 			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
 				if (resolve) return getParameter();
 				return basicGetParameter();
-			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
-				return getDependsOn();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -332,12 +352,12 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
-				setParameter((RunnableParameter)newValue);
-				return;
 			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
 				setDependsOn((DataDependency)newValue);
 				return;
+			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
+				setParameter((RunnableParameter)newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -350,12 +370,12 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
-				setParameter((RunnableParameter)null);
-				return;
 			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
 				setDependsOn((DataDependency)null);
 				return;
+			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
+				setParameter((RunnableParameter)null);
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -368,12 +388,12 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
+				return dependsOn != null;
 			case AmaltheaPackage.CALL_ARGUMENT__CONTAINING_CALL:
 				return basicGetContainingCall() != null;
 			case AmaltheaPackage.CALL_ARGUMENT__PARAMETER:
 				return parameter != null;
-			case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON:
-				return dependsOn != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -384,12 +404,77 @@
 	 * @generated
 	 */
 	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == IDependsOn.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON: return AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == IDependsOn.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON: return AmaltheaPackage.CALL_ARGUMENT__DEPENDS_ON;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IDependsOn.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
 			case AmaltheaPackage.CALL_ARGUMENT___GET_NAME:
 				return getName();
-			case AmaltheaPackage.CALL_ARGUMENT___COMPUTE_UNIQUE_NAME:
-				return computeUniqueName();
+			case AmaltheaPackage.CALL_ARGUMENT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 		}
 		return super.eInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphItemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphItemImpl.java
deleted file mode 100644
index 523fac3..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CallGraphItemImpl.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model.impl;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.AmaltheaServices;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Call Graph Item</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallGraphItemImpl#getContainingProcess <em>Containing Process</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CallGraphItemImpl#getContainingRunnable <em>Containing Runnable</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class CallGraphItemImpl extends BaseObjectImpl implements CallGraphItem {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected CallGraphItemImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return AmaltheaPackage.eINSTANCE.getCallGraphItem();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public org.eclipse.app4mc.amalthea.model.Process getContainingProcess() {
-		return AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Process>getContainerOfType(this, org.eclipse.app4mc.amalthea.model.Process.class);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable() {
-		return AmaltheaServices.<org.eclipse.app4mc.amalthea.model.Runnable>getContainerOfType(this, org.eclipse.app4mc.amalthea.model.Runnable.class);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH_ITEM__CONTAINING_PROCESS:
-				return getContainingProcess();
-			case AmaltheaPackage.CALL_GRAPH_ITEM__CONTAINING_RUNNABLE:
-				return getContainingRunnable();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case AmaltheaPackage.CALL_GRAPH_ITEM__CONTAINING_PROCESS:
-				return getContainingProcess() != null;
-			case AmaltheaPackage.CALL_GRAPH_ITEM__CONTAINING_RUNNABLE:
-				return getContainingRunnable() != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-} //CallGraphItemImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChainedProcessPrototypeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChainedProcessPrototypeImpl.java
index 73ddb89..93c11ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChainedProcessPrototypeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChainedProcessPrototypeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelAccessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelAccessImpl.java
index dae9a23..93643e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelAccessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelAccessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -42,7 +42,7 @@
  *
  * @generated
  */
-public abstract class ChannelAccessImpl extends CallGraphItemImpl implements ChannelAccess {
+public abstract class ChannelAccessImpl extends ActivityGraphItemImpl implements ChannelAccess {
 	/**
 	 * The cached value of the '{@link #getData() <em>Data</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelEventImpl.java
index f036a14..26c3dec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelImpl.java
index eefa2d2..b21ded3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,6 +20,8 @@
 import org.eclipse.app4mc.amalthea.model.ChannelAccess;
 import org.eclipse.app4mc.amalthea.model.DataType;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -41,6 +43,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ChannelImpl#getDisplayName <em>Display Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ChannelImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ChannelImpl#getElementType <em>Element Type</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ChannelImpl#getDefaultElements <em>Default Elements</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ChannelImpl#getMaxElements <em>Max Elements</em>}</li>
@@ -71,6 +74,16 @@
 	protected String displayName = DISPLAY_NAME_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
 	 * The cached value of the '{@link #getElementType() <em>Element Type</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -168,6 +181,46 @@
 	 * @generated
 	 */
 	@Override
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.CHANNEL__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CHANNEL__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public DataType getElementType() {
 		return elementType;
 	}
@@ -289,6 +342,9 @@
 		switch (featureID) {
 			case AmaltheaPackage.CHANNEL__DISPLAY_NAME:
 				return getDisplayName();
+			case AmaltheaPackage.CHANNEL__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
 			case AmaltheaPackage.CHANNEL__ELEMENT_TYPE:
 				return getElementType();
 			case AmaltheaPackage.CHANNEL__DEFAULT_ELEMENTS:
@@ -312,6 +368,9 @@
 			case AmaltheaPackage.CHANNEL__DISPLAY_NAME:
 				setDisplayName((String)newValue);
 				return;
+			case AmaltheaPackage.CHANNEL__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
 			case AmaltheaPackage.CHANNEL__ELEMENT_TYPE:
 				setElementType((DataType)newValue);
 				return;
@@ -336,6 +395,9 @@
 			case AmaltheaPackage.CHANNEL__DISPLAY_NAME:
 				setDisplayName(DISPLAY_NAME_EDEFAULT);
 				return;
+			case AmaltheaPackage.CHANNEL__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
 			case AmaltheaPackage.CHANNEL__ELEMENT_TYPE:
 				setElementType((DataType)null);
 				return;
@@ -359,6 +421,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.CHANNEL__DISPLAY_NAME:
 				return DISPLAY_NAME_EDEFAULT == null ? displayName != null : !DISPLAY_NAME_EDEFAULT.equals(displayName);
+			case AmaltheaPackage.CHANNEL__NAMESPACE:
+				return namespace != null;
 			case AmaltheaPackage.CHANNEL__ELEMENT_TYPE:
 				return elementType != null;
 			case AmaltheaPackage.CHANNEL__DEFAULT_ELEMENTS:
@@ -384,6 +448,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.CHANNEL__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -400,6 +470,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.CHANNEL__NAMESPACE;
+				default: return -1;
+			}
+		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelReceiveImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelReceiveImpl.java
index 267ef07..fa8ce2e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelReceiveImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelReceiveImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelSendImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelSendImpl.java
index 10df43c..2759a5b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelSendImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ChannelSendImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassificationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassificationImpl.java
index 1e1db82..3170a42 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassificationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassificationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassifierImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassifierImpl.java
index ffcdb07..04618ba 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassifierImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClassifierImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClearEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClearEventImpl.java
index a805d0c..c2c451f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClearEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClearEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -41,7 +41,7 @@
  *
  * @generated
  */
-public class ClearEventImpl extends CallGraphItemImpl implements ClearEvent {
+public class ClearEventImpl extends ActivityGraphItemImpl implements ClearEvent {
 	/**
 	 * The cached value of the '{@link #getEventMask() <em>Event Mask</em>}' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockFunctionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockFunctionImpl.java
index 448c342..e18d6e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockFunctionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockFunctionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockImpl.java
index 7125fe1..d1909ce 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepImpl.java
index c800c23..45cd6b3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepListImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepListImpl.java
index 2e7adfa..9fe49f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepListImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ClockStepListImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CommonElementsImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CommonElementsImpl.java
index 73e23d0..3928726 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CommonElementsImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CommonElementsImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,6 +20,7 @@
 import org.eclipse.app4mc.amalthea.model.CommonElements;
 import org.eclipse.app4mc.amalthea.model.CoreClassifier;
 import org.eclipse.app4mc.amalthea.model.MemoryClassifier;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.Tag;
 
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -41,6 +42,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CommonElementsImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CommonElementsImpl#getNamespaces <em>Namespaces</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CommonElementsImpl#getCoreClassifiers <em>Core Classifiers</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.CommonElementsImpl#getMemoryClassifiers <em>Memory Classifiers</em>}</li>
  * </ul>
@@ -59,6 +61,16 @@
 	protected EList<Tag> tags;
 
 	/**
+	 * The cached value of the '{@link #getNamespaces() <em>Namespaces</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespaces()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Namespace> namespaces;
+
+	/**
 	 * The cached value of the '{@link #getCoreClassifiers() <em>Core Classifiers</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -116,6 +128,19 @@
 	 * @generated
 	 */
 	@Override
+	public EList<Namespace> getNamespaces() {
+		if (namespaces == null) {
+			namespaces = new EObjectContainmentEList<Namespace>(Namespace.class, this, AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES);
+		}
+		return namespaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<CoreClassifier> getCoreClassifiers() {
 		if (coreClassifiers == null) {
 			coreClassifiers = new EObjectContainmentEList<CoreClassifier>(CoreClassifier.class, this, AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS);
@@ -146,6 +171,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
 				return ((InternalEList<?>)getTags()).basicRemove(otherEnd, msgs);
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
+				return ((InternalEList<?>)getNamespaces()).basicRemove(otherEnd, msgs);
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 				return ((InternalEList<?>)getCoreClassifiers()).basicRemove(otherEnd, msgs);
 			case AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS:
@@ -164,6 +191,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
 				return getTags();
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
+				return getNamespaces();
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 				return getCoreClassifiers();
 			case AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS:
@@ -185,6 +214,10 @@
 				getTags().clear();
 				getTags().addAll((Collection<? extends Tag>)newValue);
 				return;
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
+				getNamespaces().clear();
+				getNamespaces().addAll((Collection<? extends Namespace>)newValue);
+				return;
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 				getCoreClassifiers().clear();
 				getCoreClassifiers().addAll((Collection<? extends CoreClassifier>)newValue);
@@ -208,6 +241,9 @@
 			case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
 				getTags().clear();
 				return;
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
+				getNamespaces().clear();
+				return;
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 				getCoreClassifiers().clear();
 				return;
@@ -228,6 +264,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
 				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
+				return namespaces != null && !namespaces.isEmpty();
 			case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 				return coreClassifiers != null && !coreClassifiers.isEmpty();
 			case AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentEventImpl.java
index bc4ddac..26c73ab 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentImpl.java
index 30dec4f..b66cb77 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -19,13 +19,18 @@
 import org.eclipse.app4mc.amalthea.model.AbstractProcess;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.ITaggable;
 import org.eclipse.app4mc.amalthea.model.Label;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.OsEvent;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.Semaphore;
 import org.eclipse.app4mc.amalthea.model.Tag;
 
+import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.common.util.EList;
@@ -33,6 +38,8 @@
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
@@ -46,8 +53,10 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getStructure <em>Structure</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getPorts <em>Ports</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getTasks <em>Tasks</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getProcesses <em>Processes</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getRunnables <em>Runnables</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getLabels <em>Labels</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentImpl#getSemaphores <em>Semaphores</em>}</li>
@@ -68,6 +77,26 @@
 	protected EList<Tag> tags;
 
 	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
+	 * The cached value of the '{@link #getStructure() <em>Structure</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructure()
+	 * @generated
+	 * @ordered
+	 */
+	protected ComponentStructure structure;
+
+	/**
 	 * The cached value of the '{@link #getPorts() <em>Ports</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75,17 +104,17 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<Port> ports;
+	protected EList<ComponentPort> ports;
 
 	/**
-	 * The cached value of the '{@link #getTasks() <em>Tasks</em>}' reference list.
+	 * The cached value of the '{@link #getProcesses() <em>Processes</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getTasks()
+	 * @see #getProcesses()
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<AbstractProcess> tasks;
+	protected EList<AbstractProcess> processes;
 
 	/**
 	 * The cached value of the '{@link #getRunnables() <em>Runnables</em>}' reference list.
@@ -165,9 +194,89 @@
 	 * @generated
 	 */
 	@Override
-	public EList<Port> getPorts() {
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.COMPONENT__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentStructure getStructure() {
+		if (structure != null && structure.eIsProxy()) {
+			InternalEObject oldStructure = (InternalEObject)structure;
+			structure = (ComponentStructure)eResolveProxy(oldStructure);
+			if (structure != oldStructure) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.COMPONENT__STRUCTURE, oldStructure, structure));
+			}
+		}
+		return structure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentStructure basicGetStructure() {
+		return structure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setStructure(ComponentStructure newStructure) {
+		ComponentStructure oldStructure = structure;
+		structure = newStructure;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT__STRUCTURE, oldStructure, structure));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ComponentPort> getPorts() {
 		if (ports == null) {
-			ports = new EObjectContainmentWithInverseEList<Port>(Port.class, this, AmaltheaPackage.COMPONENT__PORTS, AmaltheaPackage.PORT__CONTAINING_COMPONENT);
+			ports = new EObjectContainmentWithInverseEList<ComponentPort>(ComponentPort.class, this, AmaltheaPackage.COMPONENT__PORTS, AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT);
 		}
 		return ports;
 	}
@@ -178,11 +287,11 @@
 	 * @generated
 	 */
 	@Override
-	public EList<AbstractProcess> getTasks() {
-		if (tasks == null) {
-			tasks = new EObjectResolvingEList<AbstractProcess>(AbstractProcess.class, this, AmaltheaPackage.COMPONENT__TASKS);
+	public EList<AbstractProcess> getProcesses() {
+		if (processes == null) {
+			processes = new EObjectResolvingEList<AbstractProcess>(AbstractProcess.class, this, AmaltheaPackage.COMPONENT__PROCESSES);
 		}
-		return tasks;
+		return processes;
 	}
 
 	/**
@@ -276,10 +385,16 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENT__TAGS:
 				return getTags();
+			case AmaltheaPackage.COMPONENT__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
+			case AmaltheaPackage.COMPONENT__STRUCTURE:
+				if (resolve) return getStructure();
+				return basicGetStructure();
 			case AmaltheaPackage.COMPONENT__PORTS:
 				return getPorts();
-			case AmaltheaPackage.COMPONENT__TASKS:
-				return getTasks();
+			case AmaltheaPackage.COMPONENT__PROCESSES:
+				return getProcesses();
 			case AmaltheaPackage.COMPONENT__RUNNABLES:
 				return getRunnables();
 			case AmaltheaPackage.COMPONENT__LABELS:
@@ -305,13 +420,19 @@
 				getTags().clear();
 				getTags().addAll((Collection<? extends Tag>)newValue);
 				return;
+			case AmaltheaPackage.COMPONENT__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT__STRUCTURE:
+				setStructure((ComponentStructure)newValue);
+				return;
 			case AmaltheaPackage.COMPONENT__PORTS:
 				getPorts().clear();
-				getPorts().addAll((Collection<? extends Port>)newValue);
+				getPorts().addAll((Collection<? extends ComponentPort>)newValue);
 				return;
-			case AmaltheaPackage.COMPONENT__TASKS:
-				getTasks().clear();
-				getTasks().addAll((Collection<? extends AbstractProcess>)newValue);
+			case AmaltheaPackage.COMPONENT__PROCESSES:
+				getProcesses().clear();
+				getProcesses().addAll((Collection<? extends AbstractProcess>)newValue);
 				return;
 			case AmaltheaPackage.COMPONENT__RUNNABLES:
 				getRunnables().clear();
@@ -344,11 +465,17 @@
 			case AmaltheaPackage.COMPONENT__TAGS:
 				getTags().clear();
 				return;
+			case AmaltheaPackage.COMPONENT__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
+			case AmaltheaPackage.COMPONENT__STRUCTURE:
+				setStructure((ComponentStructure)null);
+				return;
 			case AmaltheaPackage.COMPONENT__PORTS:
 				getPorts().clear();
 				return;
-			case AmaltheaPackage.COMPONENT__TASKS:
-				getTasks().clear();
+			case AmaltheaPackage.COMPONENT__PROCESSES:
+				getProcesses().clear();
 				return;
 			case AmaltheaPackage.COMPONENT__RUNNABLES:
 				getRunnables().clear();
@@ -376,10 +503,14 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENT__TAGS:
 				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.COMPONENT__NAMESPACE:
+				return namespace != null;
+			case AmaltheaPackage.COMPONENT__STRUCTURE:
+				return structure != null;
 			case AmaltheaPackage.COMPONENT__PORTS:
 				return ports != null && !ports.isEmpty();
-			case AmaltheaPackage.COMPONENT__TASKS:
-				return tasks != null && !tasks.isEmpty();
+			case AmaltheaPackage.COMPONENT__PROCESSES:
+				return processes != null && !processes.isEmpty();
 			case AmaltheaPackage.COMPONENT__RUNNABLES:
 				return runnables != null && !runnables.isEmpty();
 			case AmaltheaPackage.COMPONENT__LABELS:
@@ -405,6 +536,18 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENT__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
+		if (baseClass == IComponentStructureMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENT__STRUCTURE: return AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE;
+				default: return -1;
+			}
+		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -421,6 +564,18 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.COMPONENT__NAMESPACE;
+				default: return -1;
+			}
+		}
+		if (baseClass == IComponentStructureMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE: return AmaltheaPackage.COMPONENT__STRUCTURE;
+				default: return -1;
+			}
+		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInstanceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInstanceImpl.java
index d0bf054..a28a8fe 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInstanceImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInstanceImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,16 +14,24 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.Component;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ISystem;
 import org.eclipse.app4mc.amalthea.model.ITaggable;
+import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
 import org.eclipse.app4mc.amalthea.model.Tag;
 
 import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
@@ -32,6 +40,9 @@
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
 
 /**
  * <!-- begin-user-doc -->
@@ -42,6 +53,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInstanceImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInstanceImpl#getContainingSystem <em>Containing System</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInstanceImpl#getType <em>Type</em>}</li>
  * </ul>
  *
@@ -106,6 +118,59 @@
 	 * @generated
 	 */
 	@Override
+	public ISystem getContainingSystem() {
+		if (eContainerFeatureID() != AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM) return null;
+		return (ISystem)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISystem basicGetContainingSystem() {
+		if (eContainerFeatureID() != AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM) return null;
+		return (ISystem)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetContainingSystem(ISystem newContainingSystem, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newContainingSystem, AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setContainingSystem(ISystem newContainingSystem) {
+		if (newContainingSystem != eInternalContainer() || (eContainerFeatureID() != AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM && newContainingSystem != null)) {
+			if (EcoreUtil.isAncestor(this, newContainingSystem))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newContainingSystem != null)
+				msgs = ((InternalEObject)newContainingSystem).eInverseAdd(this, AmaltheaPackage.ISYSTEM__COMPONENT_INSTANCES, ISystem.class, msgs);
+			msgs = basicSetContainingSystem(newContainingSystem, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM, newContainingSystem, newContainingSystem));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Component getType() {
 		if (type != null && type.eIsProxy()) {
 			InternalEObject oldType = (InternalEObject)type;
@@ -146,10 +211,79 @@
 	 * @generated
 	 */
 	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		INamed _namedContainer = this.getNamedContainer();
+		EList<String> _qualifiedNameSegments = null;
+		if (_namedContainer!=null) {
+			_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
+		}
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetContainingSystem((ISystem)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				return basicSetContainingSystem(null, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.ISYSTEM__COMPONENT_INSTANCES, ISystem.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENT_INSTANCE__TAGS:
 				return getTags();
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				if (resolve) return getContainingSystem();
+				return basicGetContainingSystem();
 			case AmaltheaPackage.COMPONENT_INSTANCE__TYPE:
 				if (resolve) return getType();
 				return basicGetType();
@@ -170,6 +304,9 @@
 				getTags().clear();
 				getTags().addAll((Collection<? extends Tag>)newValue);
 				return;
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				setContainingSystem((ISystem)newValue);
+				return;
 			case AmaltheaPackage.COMPONENT_INSTANCE__TYPE:
 				setType((Component)newValue);
 				return;
@@ -188,6 +325,9 @@
 			case AmaltheaPackage.COMPONENT_INSTANCE__TAGS:
 				getTags().clear();
 				return;
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				setContainingSystem((ISystem)null);
+				return;
 			case AmaltheaPackage.COMPONENT_INSTANCE__TYPE:
 				setType((Component)null);
 				return;
@@ -205,6 +345,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENT_INSTANCE__TAGS:
 				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM:
+				return basicGetContainingSystem() != null;
 			case AmaltheaPackage.COMPONENT_INSTANCE__TYPE:
 				return type != null;
 		}
@@ -243,4 +385,51 @@
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableBaseObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ITaggable.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.COMPONENT_INSTANCE___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
 } //ComponentInstanceImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInterfaceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInterfaceImpl.java
new file mode 100644
index 0000000..bfc8a03
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentInterfaceImpl.java
@@ -0,0 +1,314 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ITaggable;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
+import org.eclipse.app4mc.amalthea.model.Tag;
+import org.eclipse.app4mc.amalthea.model.TypeDefinition;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Component Interface</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInterfaceImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInterfaceImpl#getDatatype <em>Datatype</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentInterfaceImpl#getSubInterfaces <em>Sub Interfaces</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class ComponentInterfaceImpl extends ReferableBaseObjectImpl implements ComponentInterface {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Tag> tags;
+
+	/**
+	 * The cached value of the '{@link #getDatatype() <em>Datatype</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDatatype()
+	 * @generated
+	 * @ordered
+	 */
+	protected TypeDefinition datatype;
+
+	/**
+	 * The cached value of the '{@link #getSubInterfaces() <em>Sub Interfaces</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSubInterfaces()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<SubInterface> subInterfaces;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComponentInterfaceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getComponentInterface();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Tag> getTags() {
+		if (tags == null) {
+			tags = new EObjectResolvingEList<Tag>(Tag.class, this, AmaltheaPackage.COMPONENT_INTERFACE__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public TypeDefinition getDatatype() {
+		if (datatype != null && datatype.eIsProxy()) {
+			InternalEObject oldDatatype = (InternalEObject)datatype;
+			datatype = (TypeDefinition)eResolveProxy(oldDatatype);
+			if (datatype != oldDatatype) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE, oldDatatype, datatype));
+			}
+		}
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public TypeDefinition basicGetDatatype() {
+		return datatype;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDatatype(TypeDefinition newDatatype) {
+		TypeDefinition oldDatatype = datatype;
+		datatype = newDatatype;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE, oldDatatype, datatype));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<SubInterface> getSubInterfaces() {
+		if (subInterfaces == null) {
+			subInterfaces = new EObjectContainmentWithInverseEList<SubInterface>(SubInterface.class, this, AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES, AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE);
+		}
+		return subInterfaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getSubInterfaces()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				return ((InternalEList<?>)getSubInterfaces()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__TAGS:
+				return getTags();
+			case AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE:
+				if (resolve) return getDatatype();
+				return basicGetDatatype();
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				return getSubInterfaces();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends Tag>)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE:
+				setDatatype((TypeDefinition)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				getSubInterfaces().clear();
+				getSubInterfaces().addAll((Collection<? extends SubInterface>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__TAGS:
+				getTags().clear();
+				return;
+			case AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE:
+				setDatatype((TypeDefinition)null);
+				return;
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				getSubInterfaces().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_INTERFACE__TAGS:
+				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.COMPONENT_INTERFACE__DATATYPE:
+				return datatype != null;
+			case AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES:
+				return subInterfaces != null && !subInterfaces.isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == ITaggable.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENT_INTERFACE__TAGS: return AmaltheaPackage.ITAGGABLE__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == ITaggable.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.ITAGGABLE__TAGS: return AmaltheaPackage.COMPONENT_INTERFACE__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+} //ComponentInterfaceImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentPortImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentPortImpl.java
new file mode 100644
index 0000000..0cda3c1
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentPortImpl.java
@@ -0,0 +1,467 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ITaggable;
+import org.eclipse.app4mc.amalthea.model.InterfaceKind;
+import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
+import org.eclipse.app4mc.amalthea.model.Tag;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Component Port</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl#getContainingComponent <em>Containing Component</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl#getKind <em>Kind</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentPortImpl#getInterface <em>Interface</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ComponentPortImpl extends ReferableBaseObjectImpl implements ComponentPort {
+	/**
+	 * The cached value of the '{@link #getTags() <em>Tags</em>}' reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTags()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Tag> tags;
+
+	/**
+	 * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final InterfaceKind KIND_EDEFAULT = InterfaceKind._UNDEFINED_;
+
+	/**
+	 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getKind()
+	 * @generated
+	 * @ordered
+	 */
+	protected InterfaceKind kind = KIND_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getInterface() <em>Interface</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInterface()
+	 * @generated
+	 * @ordered
+	 */
+	protected ComponentInterface interface_;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComponentPortImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getComponentPort();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Tag> getTags() {
+		if (tags == null) {
+			tags = new EObjectResolvingEList<Tag>(Tag.class, this, AmaltheaPackage.COMPONENT_PORT__TAGS);
+		}
+		return tags;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Component getContainingComponent() {
+		if (eContainerFeatureID() != AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT) return null;
+		return (Component)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Component basicGetContainingComponent() {
+		if (eContainerFeatureID() != AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT) return null;
+		return (Component)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public InterfaceKind getKind() {
+		return kind;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setKind(InterfaceKind newKind) {
+		InterfaceKind oldKind = kind;
+		kind = newKind == null ? KIND_EDEFAULT : newKind;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT_PORT__KIND, oldKind, kind));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentInterface getInterface() {
+		if (interface_ != null && interface_.eIsProxy()) {
+			InternalEObject oldInterface = (InternalEObject)interface_;
+			interface_ = (ComponentInterface)eResolveProxy(oldInterface);
+			if (interface_ != oldInterface) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.COMPONENT_PORT__INTERFACE, oldInterface, interface_));
+			}
+		}
+		return interface_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentInterface basicGetInterface() {
+		return interface_;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setInterface(ComponentInterface newInterface) {
+		ComponentInterface oldInterface = interface_;
+		interface_ = newInterface;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT_PORT__INTERFACE, oldInterface, interface_));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		Component _containingComponent = this.getContainingComponent();
+		EList<String> _qualifiedNameSegments = null;
+		if (_containingComponent!=null) {
+			_qualifiedNameSegments=_containingComponent.getQualifiedNameSegments();
+		}
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd, AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT:
+				return eBasicSetContainer(null, AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.COMPONENT__PORTS, Component.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__TAGS:
+				return getTags();
+			case AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT:
+				if (resolve) return getContainingComponent();
+				return basicGetContainingComponent();
+			case AmaltheaPackage.COMPONENT_PORT__KIND:
+				return getKind();
+			case AmaltheaPackage.COMPONENT_PORT__INTERFACE:
+				if (resolve) return getInterface();
+				return basicGetInterface();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__TAGS:
+				getTags().clear();
+				getTags().addAll((Collection<? extends Tag>)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT_PORT__KIND:
+				setKind((InterfaceKind)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT_PORT__INTERFACE:
+				setInterface((ComponentInterface)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__TAGS:
+				getTags().clear();
+				return;
+			case AmaltheaPackage.COMPONENT_PORT__KIND:
+				setKind(KIND_EDEFAULT);
+				return;
+			case AmaltheaPackage.COMPONENT_PORT__INTERFACE:
+				setInterface((ComponentInterface)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_PORT__TAGS:
+				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.COMPONENT_PORT__CONTAINING_COMPONENT:
+				return basicGetContainingComponent() != null;
+			case AmaltheaPackage.COMPONENT_PORT__KIND:
+				return kind != KIND_EDEFAULT;
+			case AmaltheaPackage.COMPONENT_PORT__INTERFACE:
+				return interface_ != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == ITaggable.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENT_PORT__TAGS: return AmaltheaPackage.ITAGGABLE__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == ITaggable.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.ITAGGABLE__TAGS: return AmaltheaPackage.COMPONENT_PORT__TAGS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableBaseObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ITaggable.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.COMPONENT_PORT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (kind: ");
+		result.append(kind);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ComponentPortImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentScopeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentScopeImpl.java
index 264086f..1d08b38 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentScopeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentScopeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentStructureImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentStructureImpl.java
new file mode 100644
index 0000000..23490ba
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentStructureImpl.java
@@ -0,0 +1,360 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ReferableObject;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Component Structure</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentStructureImpl#getStructureType <em>Structure Type</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentStructureImpl#getSubStructures <em>Sub Structures</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentStructureImpl#getMemberObjects <em>Member Objects</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class ComponentStructureImpl extends ReferableObjectImpl implements ComponentStructure {
+	/**
+	 * The default value of the '{@link #getStructureType() <em>Structure Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructureType()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String STRUCTURE_TYPE_EDEFAULT = "";
+
+	/**
+	 * The cached value of the '{@link #getStructureType() <em>Structure Type</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructureType()
+	 * @generated
+	 * @ordered
+	 */
+	protected String structureType = STRUCTURE_TYPE_EDEFAULT;
+
+	/**
+	 * The cached value of the '{@link #getSubStructures() <em>Sub Structures</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getSubStructures()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ComponentStructure> subStructures;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected ComponentStructureImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getComponentStructure();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getStructureType() {
+		return structureType;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setStructureType(String newStructureType) {
+		String oldStructureType = structureType;
+		structureType = newStructureType;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE, oldStructureType, structureType));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ComponentStructure> getSubStructures() {
+		if (subStructures == null) {
+			subStructures = new EObjectContainmentEList<ComponentStructure>(ComponentStructure.class, this, AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES);
+		}
+		return subStructures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<IComponentStructureMember> getMemberObjects() {
+		EReference _iComponentStructureMember_Structure = AmaltheaPackage.eINSTANCE.getIComponentStructureMember_Structure();
+		return AmaltheaIndex.<IComponentStructureMember>getInverseReferences(this, AmaltheaPackage.eINSTANCE.getComponentStructure_MemberObjects(), 
+			java.util.Collections.<EReference>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.<EReference>newHashSet(_iComponentStructureMember_Structure)));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentStructure getContainingStructure() {
+		ComponentStructure _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof ComponentStructure)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((ComponentStructure) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return "::";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		ComponentStructure _containingStructure = this.getContainingStructure();
+		boolean _tripleEquals = (_containingStructure == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getContainingStructure().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				return ((InternalEList<?>)getSubStructures()).basicRemove(otherEnd, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE:
+				return getStructureType();
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				return getSubStructures();
+			case AmaltheaPackage.COMPONENT_STRUCTURE__MEMBER_OBJECTS:
+				return getMemberObjects();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE:
+				setStructureType((String)newValue);
+				return;
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				getSubStructures().clear();
+				getSubStructures().addAll((Collection<? extends ComponentStructure>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE:
+				setStructureType(STRUCTURE_TYPE_EDEFAULT);
+				return;
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				getSubStructures().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE__STRUCTURE_TYPE:
+				return STRUCTURE_TYPE_EDEFAULT == null ? structureType != null : !STRUCTURE_TYPE_EDEFAULT.equals(structureType);
+			case AmaltheaPackage.COMPONENT_STRUCTURE__SUB_STRUCTURES:
+				return subStructures != null && !subStructures.isEmpty();
+			case AmaltheaPackage.COMPONENT_STRUCTURE__MEMBER_OBJECTS:
+				return !getMemberObjects().isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_OBJECT___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.COMPONENT_STRUCTURE___GET_CONTAINING_STRUCTURE:
+				return getContainingStructure();
+			case AmaltheaPackage.COMPONENT_STRUCTURE___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.COMPONENT_STRUCTURE___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (structureType: ");
+		result.append(structureType);
+		result.append(')');
+		return result.toString();
+	}
+
+} //ComponentStructureImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentsModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentsModelImpl.java
index 240c424..52169d9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentsModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComponentsModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -18,7 +18,11 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 
 import org.eclipse.emf.common.notify.NotificationChain;
 
@@ -39,6 +43,8 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentsModelImpl#getComponents <em>Components</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentsModelImpl#getInterfaces <em>Interfaces</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentsModelImpl#getStructures <em>Structures</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ComponentsModelImpl#getSystems <em>Systems</em>}</li>
  * </ul>
  *
@@ -56,6 +62,26 @@
 	protected EList<Component> components;
 
 	/**
+	 * The cached value of the '{@link #getInterfaces() <em>Interfaces</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getInterfaces()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<MainInterface> interfaces;
+
+	/**
+	 * The cached value of the '{@link #getStructures() <em>Structures</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructures()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<ComponentStructure> structures;
+
+	/**
 	 * The cached value of the '{@link #getSystems() <em>Systems</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -103,6 +129,32 @@
 	 * @generated
 	 */
 	@Override
+	public EList<MainInterface> getInterfaces() {
+		if (interfaces == null) {
+			interfaces = new EObjectContainmentEList<MainInterface>(MainInterface.class, this, AmaltheaPackage.COMPONENTS_MODEL__INTERFACES);
+		}
+		return interfaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ComponentStructure> getStructures() {
+		if (structures == null) {
+			structures = new EObjectContainmentEList<ComponentStructure>(ComponentStructure.class, this, AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES);
+		}
+		return structures;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<org.eclipse.app4mc.amalthea.model.System> getSystems() {
 		if (systems == null) {
 			systems = new EObjectContainmentEList<org.eclipse.app4mc.amalthea.model.System>(org.eclipse.app4mc.amalthea.model.System.class, this, AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS);
@@ -120,6 +172,10 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
 				return ((InternalEList<?>)getComponents()).basicRemove(otherEnd, msgs);
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+				return ((InternalEList<?>)getInterfaces()).basicRemove(otherEnd, msgs);
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+				return ((InternalEList<?>)getStructures()).basicRemove(otherEnd, msgs);
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				return ((InternalEList<?>)getSystems()).basicRemove(otherEnd, msgs);
 		}
@@ -136,6 +192,10 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
 				return getComponents();
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+				return getInterfaces();
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+				return getStructures();
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				return getSystems();
 		}
@@ -155,6 +215,14 @@
 				getComponents().clear();
 				getComponents().addAll((Collection<? extends Component>)newValue);
 				return;
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+				getInterfaces().clear();
+				getInterfaces().addAll((Collection<? extends MainInterface>)newValue);
+				return;
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+				getStructures().clear();
+				getStructures().addAll((Collection<? extends ComponentStructure>)newValue);
+				return;
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				getSystems().clear();
 				getSystems().addAll((Collection<? extends org.eclipse.app4mc.amalthea.model.System>)newValue);
@@ -174,6 +242,12 @@
 			case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
 				getComponents().clear();
 				return;
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+				getInterfaces().clear();
+				return;
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+				getStructures().clear();
+				return;
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				getSystems().clear();
 				return;
@@ -191,10 +265,58 @@
 		switch (featureID) {
 			case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
 				return components != null && !components.isEmpty();
+			case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+				return interfaces != null && !interfaces.isEmpty();
+			case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+				return structures != null && !structures.isEmpty();
 			case AmaltheaPackage.COMPONENTS_MODEL__SYSTEMS:
 				return systems != null && !systems.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == IComponentContainer.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS: return AmaltheaPackage.ICOMPONENT_CONTAINER__COMPONENTS;
+				default: return -1;
+			}
+		}
+		if (baseClass == IInterfaceContainer.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES: return AmaltheaPackage.IINTERFACE_CONTAINER__INTERFACES;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == IComponentContainer.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.ICOMPONENT_CONTAINER__COMPONENTS: return AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS;
+				default: return -1;
+			}
+		}
+		if (baseClass == IInterfaceContainer.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.IINTERFACE_CONTAINER__INTERFACES: return AmaltheaPackage.COMPONENTS_MODEL__INTERFACES;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
 } //ComponentsModelImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompositeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompositeImpl.java
index 6663e9b..5a535dc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompositeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompositeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -32,6 +32,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
@@ -108,7 +109,7 @@
 	@Override
 	public EList<ComponentInstance> getComponentInstances() {
 		if (componentInstances == null) {
-			componentInstances = new EObjectContainmentEList<ComponentInstance>(ComponentInstance.class, this, AmaltheaPackage.COMPOSITE__COMPONENT_INSTANCES);
+			componentInstances = new EObjectContainmentWithInverseEList<ComponentInstance>(ComponentInstance.class, this, AmaltheaPackage.COMPOSITE__COMPONENT_INSTANCES, AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM);
 		}
 		return componentInstances;
 	}
@@ -121,7 +122,7 @@
 	@Override
 	public EList<Connector> getConnectors() {
 		if (connectors == null) {
-			connectors = new EObjectContainmentEList<Connector>(Connector.class, this, AmaltheaPackage.COMPOSITE__CONNECTORS);
+			connectors = new EObjectContainmentWithInverseEList<Connector>(Connector.class, this, AmaltheaPackage.COMPOSITE__CONNECTORS, AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM);
 		}
 		return connectors;
 	}
@@ -154,6 +155,23 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.COMPOSITE__COMPONENT_INSTANCES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getComponentInstances()).basicAdd(otherEnd, msgs);
+			case AmaltheaPackage.COMPOSITE__CONNECTORS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getConnectors()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompoundTypeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompoundTypeImpl.java
index acfec75..ae0c068 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompoundTypeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CompoundTypeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComputationItemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComputationItemImpl.java
index b50a27f..a364f71 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComputationItemImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ComputationItemImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,7 @@
  *
  * @generated
  */
-public abstract class ComputationItemImpl extends CallGraphItemImpl implements ComputationItem {
+public abstract class ComputationItemImpl extends ActivityGraphItemImpl implements ComputationItem {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConfigModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConfigModelImpl.java
index 9e67b8b..5cb6d85 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConfigModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConfigModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerDefinitionImpl.java
index 481f34c..8a730c0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerImpl.java
index bdfc14a..9a2fc75 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectionHandlerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectorImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectorImpl.java
index 4e7017b..e689207 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectorImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConnectorImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,12 +14,19 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.Channel;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
 import org.eclipse.app4mc.amalthea.model.Connector;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.ISystem;
 import org.eclipse.app4mc.amalthea.model.ITaggable;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.QualifiedPort;
 import org.eclipse.app4mc.amalthea.model.Tag;
 
@@ -27,13 +34,21 @@
 import org.eclipse.emf.common.notify.NotificationChain;
 
 import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.common.util.EMap;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.EcoreEMap;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
 
 /**
  * <!-- begin-user-doc -->
@@ -44,9 +59,12 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getContainingSystem <em>Containing System</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getSourcePort <em>Source Port</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getTargetPort <em>Target Port</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ConnectorImpl#getImplementedInterfaces <em>Implemented Interfaces</em>}</li>
  * </ul>
  *
  * @generated
@@ -73,6 +91,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getTags() <em>Tags</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -103,6 +131,16 @@
 	protected QualifiedPort targetPort;
 
 	/**
+	 * The cached value of the '{@link #getImplementedInterfaces() <em>Implemented Interfaces</em>}' map.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getImplementedInterfaces()
+	 * @generated
+	 * @ordered
+	 */
+	protected EMap<ComponentInterface, Channel> implementedInterfaces;
+
+	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -150,6 +188,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EList<Tag> getTags() {
 		if (tags == null) {
 			tags = new EObjectResolvingEList<Tag>(Tag.class, this, AmaltheaPackage.CONNECTOR__TAGS);
@@ -163,6 +211,59 @@
 	 * @generated
 	 */
 	@Override
+	public ISystem getContainingSystem() {
+		if (eContainerFeatureID() != AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM) return null;
+		return (ISystem)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ISystem basicGetContainingSystem() {
+		if (eContainerFeatureID() != AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM) return null;
+		return (ISystem)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetContainingSystem(ISystem newContainingSystem, NotificationChain msgs) {
+		msgs = eBasicSetContainer((InternalEObject)newContainingSystem, AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM, msgs);
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setContainingSystem(ISystem newContainingSystem) {
+		if (newContainingSystem != eInternalContainer() || (eContainerFeatureID() != AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM && newContainingSystem != null)) {
+			if (EcoreUtil.isAncestor(this, newContainingSystem))
+				throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+			NotificationChain msgs = null;
+			if (eInternalContainer() != null)
+				msgs = eBasicRemoveFromContainer(msgs);
+			if (newContainingSystem != null)
+				msgs = ((InternalEObject)newContainingSystem).eInverseAdd(this, AmaltheaPackage.ISYSTEM__CONNECTORS, ISystem.class, msgs);
+			msgs = basicSetContainingSystem(newContainingSystem, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM, newContainingSystem, newContainingSystem));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public QualifiedPort getSourcePort() {
 		return sourcePort;
 	}
@@ -253,12 +354,138 @@
 	 * @generated
 	 */
 	@Override
+	public EMap<ComponentInterface, Channel> getImplementedInterfaces() {
+		if (implementedInterfaces == null) {
+			implementedInterfaces = new EcoreEMap<ComponentInterface,Channel>(AmaltheaPackage.eINSTANCE.getInterfaceChannel(), InterfaceChannelImpl.class, this, AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES);
+		}
+		return implementedInterfaces;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return basicSetContainingSystem((ISystem)otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				return basicSetContainingSystem(null, msgs);
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 				return basicSetSourcePort(null, msgs);
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
 				return basicSetTargetPort(null, msgs);
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
+				return ((InternalEList<?>)getImplementedInterfaces()).basicRemove(otherEnd, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -269,16 +496,38 @@
 	 * @generated
 	 */
 	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.ISYSTEM__CONNECTORS, ISystem.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case AmaltheaPackage.CONNECTOR__NAME:
 				return getName();
+			case AmaltheaPackage.CONNECTOR__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.CONNECTOR__TAGS:
 				return getTags();
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				if (resolve) return getContainingSystem();
+				return basicGetContainingSystem();
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 				return getSourcePort();
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
 				return getTargetPort();
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
+				if (coreType) return getImplementedInterfaces();
+				else return getImplementedInterfaces().map();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -299,12 +548,18 @@
 				getTags().clear();
 				getTags().addAll((Collection<? extends Tag>)newValue);
 				return;
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				setContainingSystem((ISystem)newValue);
+				return;
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 				setSourcePort((QualifiedPort)newValue);
 				return;
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
 				setTargetPort((QualifiedPort)newValue);
 				return;
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
+				((EStructuralFeature.Setting)getImplementedInterfaces()).set(newValue);
+				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -323,12 +578,18 @@
 			case AmaltheaPackage.CONNECTOR__TAGS:
 				getTags().clear();
 				return;
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				setContainingSystem((ISystem)null);
+				return;
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 				setSourcePort((QualifiedPort)null);
 				return;
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
 				setTargetPort((QualifiedPort)null);
 				return;
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
+				getImplementedInterfaces().clear();
+				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -343,12 +604,18 @@
 		switch (featureID) {
 			case AmaltheaPackage.CONNECTOR__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.CONNECTOR__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.CONNECTOR__TAGS:
 				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM:
+				return basicGetContainingSystem() != null;
 			case AmaltheaPackage.CONNECTOR__SOURCE_PORT:
 				return sourcePort != null;
 			case AmaltheaPackage.CONNECTOR__TARGET_PORT:
 				return targetPort != null;
+			case AmaltheaPackage.CONNECTOR__IMPLEMENTED_INTERFACES:
+				return implementedInterfaces != null && !implementedInterfaces.isEmpty();
 		}
 		return super.eIsSet(featureID);
 	}
@@ -363,6 +630,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.CONNECTOR__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.CONNECTOR__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -385,6 +653,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.CONNECTOR__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.CONNECTOR__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -403,6 +672,56 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.CONNECTOR___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.CONNECTOR___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.CONNECTOR___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.CONNECTOR___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.CONNECTOR___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.CONNECTOR___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		if (baseClass == ITaggable.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.CONNECTOR___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.CONNECTOR___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.CONNECTOR___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.CONNECTOR___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.CONNECTOR___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.CONNECTOR___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerImpl.java
index 7afa11b..82aa6af 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerWithCASHImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerWithCASHImpl.java
index 70ba8fd..ecefbc9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerWithCASHImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstantBandwidthServerWithCASHImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstraintsModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstraintsModelImpl.java
index 425f8b0..6ed24ef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstraintsModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ConstraintsModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBetaDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBetaDistributionImpl.java
index 0c6bd9a..ddbb3e8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBetaDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBetaDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBoundariesImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBoundariesImpl.java
index 971466c..f2c4f2b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBoundariesImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueBoundariesImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueConstantImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueConstantImpl.java
index 2b4ec87..d0424dc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueConstantImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueConstantImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueGaussDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueGaussDistributionImpl.java
index 889c2a9..fe99dac 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueGaussDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueGaussDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramEntryImpl.java
index 042c2b0..cc90ebd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramImpl.java
index 2134380..afc44e7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueHistogramImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueIntervalImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueIntervalImpl.java
index d590dfb..e15199a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueIntervalImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueIntervalImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueStatisticsImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueStatisticsImpl.java
index 1932cfa..0c9e306 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueStatisticsImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueStatisticsImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueUniformDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueUniformDistributionImpl.java
index 54bdbe8..d7acc70 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueUniformDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueUniformDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueWeibullEstimatorsDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueWeibullEstimatorsDistributionImpl.java
index e146a99..0c91f80 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueWeibullEstimatorsDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ContinuousValueWeibullEstimatorsDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreAllocationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreAllocationConstraintImpl.java
index 5f303ef..626b33a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreAllocationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreAllocationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassificationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassificationImpl.java
index 62b9799..8aa9054 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassificationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassificationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassifierImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassifierImpl.java
index 48e46a6..7a284cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassifierImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CoreClassifierImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CountRequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CountRequirementLimitImpl.java
index 7808d75..8fe1a72 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CountRequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CountRequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CounterImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CounterImpl.java
index 2c8707c..b0e563b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CounterImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CounterImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomActivationImpl.java
index d23d35c..c964cc7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEntityImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEntityImpl.java
index 2ca6bc8..db53b0e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEntityImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEntityImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventImpl.java
index 03327b2..dfa9ebc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventTriggerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventTriggerImpl.java
index 987586f..b6681cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventTriggerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomEventTriggerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -38,7 +38,7 @@
  *
  * @generated
  */
-public class CustomEventTriggerImpl extends CallGraphItemImpl implements CustomEventTrigger {
+public class CustomEventTriggerImpl extends ActivityGraphItemImpl implements CustomEventTrigger {
 	/**
 	 * The cached value of the '{@link #getEvent() <em>Event</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomPropertyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomPropertyImpl.java
index 31a13f2..7c5f774 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomPropertyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomPropertyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomStimulusImpl.java
index a7481d8..4392c86 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/CustomStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeConstraintImpl.java
index 4840cbe..7ebcc17 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeCycleImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeCycleImpl.java
index 3ae4c66..97f5a65 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeCycleImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeCycleImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeImpl.java
index 06bf66b..be6f282 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeTimeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeTimeImpl.java
index 33452dc..d13eb52 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeTimeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataAgeTimeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataCoherencyGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataCoherencyGroupImpl.java
index a82ba2e..39bf3e3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataCoherencyGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataCoherencyGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintImpl.java
index cc4c0e9..57e9d61 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintTargetImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintTargetImpl.java
index effd548..2b6ff65 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintTargetImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataConstraintTargetImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataDependencyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataDependencyImpl.java
index dfead2a..c0ac7a8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataDependencyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataDependencyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataGroupScopeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataGroupScopeImpl.java
index b1ecce0..26d7310 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataGroupScopeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataGroupScopeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataPairingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataPairingConstraintImpl.java
index a04a07c..30ebce2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataPairingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataPairingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataRateImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataRateImpl.java
index 21a0daa..a421ae9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataRateImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataRateImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSeparationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSeparationConstraintImpl.java
index 16d3664..3f48e9a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSeparationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSeparationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSizeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSizeImpl.java
index 76373b3..61162cb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSizeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataSizeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityGroupImpl.java
index e9f8541..8aee4bd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityImpl.java
index b712bea..c47370f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataStabilityImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataTypeDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataTypeDefinitionImpl.java
index 2093828..6e9fc8b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataTypeDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DataTypeDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeadlineMonotonicImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeadlineMonotonicImpl.java
index bd47886..bf47ca4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeadlineMonotonicImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeadlineMonotonicImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeferrableServerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeferrableServerImpl.java
index c479b33..b4aef19 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeferrableServerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DeferrableServerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DelayConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DelayConstraintImpl.java
index 9978d58..c6b0c4e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DelayConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DelayConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBetaDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBetaDistributionImpl.java
index 58bc5f6..316ddf0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBetaDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBetaDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBoundariesImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBoundariesImpl.java
index 4dc0fd5..ae6ae6b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBoundariesImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueBoundariesImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueConstantImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueConstantImpl.java
index 6de18cd..ba4edf5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueConstantImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueConstantImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueGaussDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueGaussDistributionImpl.java
index d3185b3..fde40e2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueGaussDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueGaussDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramEntryImpl.java
index 16b74f5..54c630c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramImpl.java
index 1e191f6..a03db33 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueHistogramImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueIntervalImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueIntervalImpl.java
index 29e2c95..cd4de5a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueIntervalImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueIntervalImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueStatisticsImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueStatisticsImpl.java
index e5bf3d6..04af05f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueStatisticsImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueStatisticsImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueUniformDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueUniformDistributionImpl.java
index f052e99..e09fcc2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueUniformDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueUniformDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueWeibullEstimatorsDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueWeibullEstimatorsDistributionImpl.java
index c3c29f3..d0ae628 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueWeibullEstimatorsDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DiscreteValueWeibullEstimatorsDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DoubleObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DoubleObjectImpl.java
index b587896..4de9bed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DoubleObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DoubleObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DynamicPriorityImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DynamicPriorityImpl.java
index 1dd3534..465a838 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DynamicPriorityImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/DynamicPriorityImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarliestDeadlineFirstImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarliestDeadlineFirstImpl.java
index 18fa29d..6d10157 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarliestDeadlineFirstImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarliestDeadlineFirstImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarlyReleaseFairPD2Impl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarlyReleaseFairPD2Impl.java
index 4de3759..089c191 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarlyReleaseFairPD2Impl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EarlyReleaseFairPD2Impl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnforcedMigrationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnforcedMigrationImpl.java
index a00cc0a..97bd423 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnforcedMigrationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnforcedMigrationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -38,7 +38,7 @@
  *
  * @generated
  */
-public class EnforcedMigrationImpl extends CallGraphItemImpl implements EnforcedMigration {
+public class EnforcedMigrationImpl extends ActivityGraphItemImpl implements EnforcedMigration {
 	/**
 	 * The cached value of the '{@link #getResourceOwner() <em>Resource Owner</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EntityEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EntityEventImpl.java
index a77fcd4..e3cc208 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EntityEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EntityEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnumModeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnumModeImpl.java
index aa6d777..78cc7a5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnumModeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EnumModeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventActivationImpl.java
index 4fb1e1b..4ed041d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainContainerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainContainerImpl.java
index 46e6dde..174c8c8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainContainerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainContainerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainImpl.java
index ee6c111..fc1e063 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,12 +16,9 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import java.net.URLEncoder;
-
-import java.nio.charset.StandardCharsets;
-
 import java.util.Map;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
 import org.eclipse.app4mc.amalthea.model.EventChain;
@@ -32,8 +29,6 @@
 
 import org.eclipse.emf.ecore.EClass;
 
-import org.eclipse.xtext.xbase.lib.StringExtensions;
-
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Event Chain</b></em>'.
@@ -84,20 +79,10 @@
 	 */
 	@Override
 	public String getUniqueName() {
-		String _xifexpression = null;
-		boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(this.getNamePrefix());
-		if (_isNullOrEmpty) {
-			_xifexpression = "";
-		}
-		else {
-			String _encode = this.encode(this.getNamePrefix());
-			_xifexpression = (_encode + "/");
-		}
-		String _encode_1 = this.encode(this.getName());
-		String _plus = (_xifexpression + _encode_1);
-		String _plus_1 = (_plus + "?type=");
+		String _encodedQualifiedName = this.getEncodedQualifiedName();
+		String _plus = (_encodedQualifiedName + "?type=");
 		String _name = this.eClass().getName();
-		return (_plus_1 + _name);
+		return (_plus + _name);
 	}
 
 	/**
@@ -106,31 +91,8 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
-		return "";
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String encode(final String str) {
-		try {
-			String _xifexpression = null;
-			boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(str);
-			if (_isNullOrEmpty) {
-				_xifexpression = "no-name";
-			}
-			else {
-				_xifexpression = URLEncoder.encode(str, StandardCharsets.UTF_8.toString());
-			}
-			return _xifexpression;
-		}
-		catch (Throwable _e) {
-			throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);
-		}
+	public String getEncodedQualifiedName() {
+		return AmaltheaExtensions.toEncodedString(this.getQualifiedNameSegments());
 	}
 
 	/**
@@ -212,8 +174,7 @@
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.EVENT_CHAIN___GET_NAME_PREFIX;
-				case AmaltheaPackage.IREFERABLE___ENCODE__STRING: return AmaltheaPackage.EVENT_CHAIN___ENCODE__STRING;
+				case AmaltheaPackage.IREFERABLE___GET_ENCODED_QUALIFIED_NAME: return AmaltheaPackage.EVENT_CHAIN___GET_ENCODED_QUALIFIED_NAME;
 				case AmaltheaPackage.IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP: return AmaltheaPackage.EVENT_CHAIN___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 				default: return -1;
 			}
@@ -230,10 +191,8 @@
 	@SuppressWarnings("unchecked")
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.EVENT_CHAIN___GET_NAME_PREFIX:
-				return getNamePrefix();
-			case AmaltheaPackage.EVENT_CHAIN___ENCODE__STRING:
-				return encode((String)arguments.get(0));
+			case AmaltheaPackage.EVENT_CHAIN___GET_ENCODED_QUALIFIED_NAME:
+				return getEncodedQualifiedName();
 			case AmaltheaPackage.EVENT_CHAIN___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
 				return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainLatencyConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainLatencyConstraintImpl.java
index f172746..5be0365 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainLatencyConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainLatencyConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainMeasurementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainMeasurementImpl.java
index d719896..ae4c6a7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainMeasurementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainMeasurementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainReferenceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainReferenceImpl.java
index 8b10ac7..84e5d3f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainReferenceImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainReferenceImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainSynchronizationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainSynchronizationConstraintImpl.java
index 4be4f03..6ee9ae8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainSynchronizationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventChainSynchronizationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventConfigImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventConfigImpl.java
index 0ba79b1..d35300a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventConfigImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventConfigImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,18 +14,27 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.EntityEvent;
 import org.eclipse.app4mc.amalthea.model.EventConfig;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Event Config</b></em>'.
@@ -35,6 +44,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.EventConfigImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.EventConfigImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.EventConfigImpl#getEvent <em>Event</em>}</li>
  * </ul>
  *
@@ -62,6 +72,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getEvent() <em>Event</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -119,6 +139,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public EntityEvent getEvent() {
 		if (event != null && event.eIsProxy()) {
 			InternalEObject oldEvent = (InternalEObject)event;
@@ -159,10 +189,105 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case AmaltheaPackage.EVENT_CONFIG__NAME:
 				return getName();
+			case AmaltheaPackage.EVENT_CONFIG__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.EVENT_CONFIG__EVENT:
 				if (resolve) return getEvent();
 				return basicGetEvent();
@@ -216,6 +341,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.EVENT_CONFIG__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.EVENT_CONFIG__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.EVENT_CONFIG__EVENT:
 				return event != null;
 		}
@@ -232,6 +359,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.EVENT_CONFIG__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.EVENT_CONFIG__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -248,6 +376,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.EVENT_CONFIG__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.EVENT_CONFIG__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -260,6 +389,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.EVENT_CONFIG___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.EVENT_CONFIG___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.EVENT_CONFIG___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.EVENT_CONFIG___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.EVENT_CONFIG___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.EVENT_CONFIG___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.EVENT_CONFIG___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.EVENT_CONFIG___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.EVENT_CONFIG___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.EVENT_CONFIG___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.EVENT_CONFIG___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.EVENT_CONFIG___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventImpl.java
index e6cadb6..f5be329 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventMaskImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventMaskImpl.java
index de08978..a920b70 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventMaskImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventMaskImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventModelImpl.java
index a6a0f84..0706ea8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSetImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSetImpl.java
index 2d19116..782eeb7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSetImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSetImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventStimulusImpl.java
index 0bbd529..112a868 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSynchronizationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSynchronizationConstraintImpl.java
index 753f854..8f08cef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSynchronizationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/EventSynchronizationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ExecutionNeedImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ExecutionNeedImpl.java
index 0942019..13b0d1a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ExecutionNeedImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ExecutionNeedImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -42,7 +42,7 @@
  *
  * @generated
  */
-public class ExecutionNeedImpl extends CallGraphItemImpl implements ExecutionNeed {
+public class ExecutionNeedImpl extends ActivityGraphItemImpl implements ExecutionNeed {
 	/**
 	 * The cached value of the '{@link #getNeeds() <em>Needs</em>}' map.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityImpl.java
index fcd6de1..921adfa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveImpl.java
index 0f84f91..ff687a9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveWithBudgetEnforcementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveWithBudgetEnforcementImpl.java
index ee632ac..5b82e21 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveWithBudgetEnforcementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FixedPriorityPreemptiveWithBudgetEnforcementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FloatObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FloatObjectImpl.java
index a39a67b..51bbf4f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FloatObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FloatObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyDomainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyDomainImpl.java
index 09d9909..cc65913 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyDomainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyDomainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyImpl.java
index 0579414..a3bcdbc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyRequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyRequirementLimitImpl.java
index 0dad0ed..0aa5d6c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyRequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/FrequencyRequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GeneralPrecedenceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GeneralPrecedenceImpl.java
index 4987ba8..d11e26c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GeneralPrecedenceImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GeneralPrecedenceImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GetResultServerCallImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GetResultServerCallImpl.java
index 38737d6..03d7ead 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GetResultServerCallImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GetResultServerCallImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupImpl.java
index 43da528..062279b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,13 +14,17 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.Group;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -28,6 +32,7 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -35,6 +40,8 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Group</b></em>'.
@@ -44,13 +51,14 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.GroupImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.GroupImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.GroupImpl#getItems <em>Items</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.GroupImpl#isOrdered <em>Ordered</em>}</li>
  * </ul>
  *
  * @generated
  */
-public class GroupImpl extends CallGraphItemImpl implements Group {
+public class GroupImpl extends ActivityGraphItemImpl implements Group {
 	/**
 	 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -72,6 +80,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getItems() <em>Items</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -79,7 +97,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<CallGraphItem> items;
+	protected EList<ActivityGraphItem> items;
 
 	/**
 	 * The default value of the '{@link #isOrdered() <em>Ordered</em>}' attribute.
@@ -149,9 +167,19 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getItems() {
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ActivityGraphItem> getItems() {
 		if (items == null) {
-			items = new EObjectContainmentEList<CallGraphItem>(CallGraphItem.class, this, AmaltheaPackage.GROUP__ITEMS);
+			items = new EObjectContainmentEList<ActivityGraphItem>(ActivityGraphItem.class, this, AmaltheaPackage.GROUP__ITEMS);
 		}
 		return items;
 	}
@@ -185,6 +213,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.GROUP__ITEMS:
@@ -203,6 +324,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.GROUP__NAME:
 				return getName();
+			case AmaltheaPackage.GROUP__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.GROUP__ITEMS:
 				return getItems();
 			case AmaltheaPackage.GROUP__ORDERED:
@@ -225,7 +348,7 @@
 				return;
 			case AmaltheaPackage.GROUP__ITEMS:
 				getItems().clear();
-				getItems().addAll((Collection<? extends CallGraphItem>)newValue);
+				getItems().addAll((Collection<? extends ActivityGraphItem>)newValue);
 				return;
 			case AmaltheaPackage.GROUP__ORDERED:
 				setOrdered((Boolean)newValue);
@@ -265,6 +388,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.GROUP__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.GROUP__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.GROUP__ITEMS:
 				return items != null && !items.isEmpty();
 			case AmaltheaPackage.GROUP__ORDERED:
@@ -283,12 +408,13 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.GROUP__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.GROUP__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (derivedFeatureID) {
-				case AmaltheaPackage.GROUP__ITEMS: return AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS;
+				case AmaltheaPackage.GROUP__ITEMS: return AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS;
 				default: return -1;
 			}
 		}
@@ -305,12 +431,13 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.GROUP__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.GROUP__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (baseFeatureID) {
-				case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.GROUP__ITEMS;
+				case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.GROUP__ITEMS;
 				default: return -1;
 			}
 		}
@@ -323,6 +450,56 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.GROUP___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.GROUP___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.GROUP___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.GROUP___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.GROUP___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.GROUP___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		if (baseClass == IActivityGraphItemContainer.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.GROUP___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.GROUP___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.GROUP___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.GROUP___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.GROUP___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.GROUP___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupingImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupingImpl.java
index be9f0f4..be6575f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupingImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/GroupingImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HWModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HWModelImpl.java
index 6000e03..2127ed1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HWModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HWModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessElementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessElementImpl.java
index 3fc0680..068356e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessElementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessElementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,8 +14,11 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.DataRate;
 import org.eclipse.app4mc.amalthea.model.HwAccessElement;
@@ -23,6 +26,7 @@
 import org.eclipse.app4mc.amalthea.model.HwDestination;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
 import org.eclipse.app4mc.amalthea.model.Tag;
 
@@ -34,12 +38,15 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Hw Access Element</b></em>'.
@@ -50,6 +57,7 @@
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getTags <em>Tags</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getSource <em>Source</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getDestination <em>Destination</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessElementImpl#getAccessPath <em>Access Path</em>}</li>
@@ -92,6 +100,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getDestination() <em>Destination</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -202,6 +220,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public ProcessingUnit getSource() {
 		if (eContainerFeatureID() != AmaltheaPackage.HW_ACCESS_ELEMENT__SOURCE) return null;
 		return (ProcessingUnit)eContainer();
@@ -443,6 +471,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__SOURCE:
@@ -505,6 +626,8 @@
 				return getTags();
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__NAME:
 				return getName();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__SOURCE:
 				if (resolve) return getSource();
 				return basicGetSource();
@@ -603,6 +726,8 @@
 				return tags != null && !tags.isEmpty();
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.HW_ACCESS_ELEMENT__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__SOURCE:
 				return basicGetSource() != null;
 			case AmaltheaPackage.HW_ACCESS_ELEMENT__DESTINATION:
@@ -629,6 +754,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.HW_ACCESS_ELEMENT__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.HW_ACCESS_ELEMENT__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -645,6 +771,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.HW_ACCESS_ELEMENT__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.HW_ACCESS_ELEMENT__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -657,6 +784,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.HW_ACCESS_ELEMENT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessPathImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessPathImpl.java
index ce272f1..1df206f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessPathImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwAccessPathImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,13 +14,17 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.HwAccessElement;
 import org.eclipse.app4mc.amalthea.model.HwAccessPath;
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -28,12 +32,15 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Hw Access Path</b></em>'.
@@ -43,6 +50,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessPathImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessPathImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessPathImpl#getContainingAccessElement <em>Containing Access Element</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessPathImpl#getPathElements <em>Path Elements</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.HwAccessPathImpl#getStartAddress <em>Start Address</em>}</li>
@@ -74,6 +82,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getPathElements() <em>Path Elements</em>}' reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -191,6 +209,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public HwAccessElement getContainingAccessElement() {
 		if (eContainerFeatureID() != AmaltheaPackage.HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT) return null;
 		return (HwAccessElement)eContainer();
@@ -294,6 +322,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT:
@@ -342,6 +463,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.HW_ACCESS_PATH__NAME:
 				return getName();
+			case AmaltheaPackage.HW_ACCESS_PATH__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT:
 				if (resolve) return getContainingAccessElement();
 				return basicGetContainingAccessElement();
@@ -423,6 +546,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.HW_ACCESS_PATH__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.HW_ACCESS_PATH__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.HW_ACCESS_PATH__CONTAINING_ACCESS_ELEMENT:
 				return basicGetContainingAccessElement() != null;
 			case AmaltheaPackage.HW_ACCESS_PATH__PATH_ELEMENTS:
@@ -447,6 +572,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.HW_ACCESS_PATH__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.HW_ACCESS_PATH__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -463,6 +589,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.HW_ACCESS_PATH__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.HW_ACCESS_PATH__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -475,6 +602,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.HW_ACCESS_PATH___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.HW_ACCESS_PATH___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.HW_ACCESS_PATH___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.HW_ACCESS_PATH___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.HW_ACCESS_PATH___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_ACCESS_PATH___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.HW_ACCESS_PATH___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwConnectionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwConnectionImpl.java
index 864feef..d792581 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwConnectionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwConnectionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -34,6 +34,7 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.ECollections;
 import org.eclipse.emf.common.util.EList;
 
@@ -45,6 +46,8 @@
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.IterableExtensions;
 
@@ -402,13 +405,20 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
-		EObject _eContainer = this.eContainer();
-		String _name = null;
-		if (((INamed) _eContainer)!=null) {
-			_name=((INamed) _eContainer).getName();
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		INamed _namedContainer = this.getNamedContainer();
+		EList<String> _qualifiedNameSegments = null;
+		if (_namedContainer!=null) {
+			_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 		}
-		return _name;
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
 	}
 
 	/**
@@ -604,15 +614,21 @@
 	 */
 	@Override
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
 		if (baseClass == ReferableBaseObject.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
@@ -638,8 +654,8 @@
 	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX:
-				return getNamePrefix();
+			case AmaltheaPackage.HW_CONNECTION___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 			case AmaltheaPackage.HW_CONNECTION___GET_PORTS:
 				return getPorts();
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDefinitionImpl.java
index dc8f20d..d9c569b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDomainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDomainImpl.java
index eba8803..1ce97ff 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDomainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwDomainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureCategoryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureCategoryImpl.java
index 63d4d90..1e75e81 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureCategoryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureCategoryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureImpl.java
index 10512e2..d0ebb6f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwFeatureImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -19,12 +19,14 @@
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.HwFeature;
 import org.eclipse.app4mc.amalthea.model.HwFeatureCategory;
+import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
@@ -32,6 +34,8 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 import org.eclipse.xtext.xbase.lib.StringExtensions;
 
 /**
@@ -138,13 +142,20 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
 		HwFeatureCategory _containingCategory = this.getContainingCategory();
-		String _name = null;
+		EList<String> _qualifiedNameSegments = null;
 		if (_containingCategory!=null) {
-			_name=_containingCategory.getName();
+			_qualifiedNameSegments=_containingCategory.getQualifiedNameSegments();
 		}
-		return _name;
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
 	}
 
 	/**
@@ -294,15 +305,21 @@
 	 */
 	@Override
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
 		if (baseClass == ReferableBaseObject.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
@@ -317,8 +334,8 @@
 	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX:
-				return getNamePrefix();
+			case AmaltheaPackage.HW_FEATURE___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 			case AmaltheaPackage.HW_FEATURE___TO_STRING:
 				return toString();
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwModuleImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwModuleImpl.java
index 1f9fd8f..fe683dd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwModuleImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwModuleImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPathImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPathImpl.java
index 2bb6936..0694a66 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPathImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPathImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPortImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPortImpl.java
index 19e53a0..402e5ea 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPortImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwPortImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -33,6 +33,7 @@
 
 import org.eclipse.emf.common.notify.Notification;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
@@ -43,6 +44,8 @@
 
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Hw Port</b></em>'.
@@ -317,13 +320,20 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
-		EObject _eContainer = this.eContainer();
-		String _name = null;
-		if (((INamed) _eContainer)!=null) {
-			_name=((INamed) _eContainer).getName();
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		INamed _namedContainer = this.getNamedContainer();
+		EList<String> _qualifiedNameSegments = null;
+		if (_namedContainer!=null) {
+			_qualifiedNameSegments=_namedContainer.getQualifiedNameSegments();
 		}
-		return _name;
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
 	}
 
 	/**
@@ -473,15 +483,21 @@
 	 */
 	@Override
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_PORT___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.HW_PORT___GET_NAME_PREFIX;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_PORT___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
 		if (baseClass == ReferableBaseObject.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.HW_PORT___GET_NAME_PREFIX;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.HW_PORT___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
@@ -501,8 +517,8 @@
 	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.HW_PORT___GET_NAME_PREFIX:
-				return getNamePrefix();
+			case AmaltheaPackage.HW_PORT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 		}
 		return super.eInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwStructureImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwStructureImpl.java
index 8959bfc..c31ec02 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwStructureImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/HwStructureImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRAllocationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRAllocationImpl.java
index 58671cc..c509389 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRAllocationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRAllocationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRImpl.java
index 299083c..bcfdcb0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ISRImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerObjectImpl.java
index 1ed2a6c..251aa9d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/IntegerObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessStimulusImpl.java
index a2329c8..5fed9c1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessTriggerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessTriggerImpl.java
index f1fcfaf..1699bb5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessTriggerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterProcessTriggerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -41,7 +41,7 @@
  *
  * @generated
  */
-public class InterProcessTriggerImpl extends CallGraphItemImpl implements InterProcessTrigger {
+public class InterProcessTriggerImpl extends ActivityGraphItemImpl implements InterProcessTrigger {
 	/**
 	 * The cached value of the '{@link #getStimulus() <em>Stimulus</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfaceChannelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfaceChannelImpl.java
new file mode 100644
index 0000000..aa93a1c
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfaceChannelImpl.java
@@ -0,0 +1,318 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.Channel;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+
+import org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedEObjectImpl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.common.util.BasicEMap;
+import org.eclipse.emf.common.util.EMap;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Interface Channel</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl#getTypedKey <em>Key</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.InterfaceChannelImpl#getTypedValue <em>Value</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class InterfaceChannelImpl extends AmaltheaExtendedEObjectImpl implements BasicEMap.Entry<ComponentInterface,Channel> {
+	/**
+	 * The cached value of the '{@link #getTypedKey() <em>Key</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedKey()
+	 * @generated
+	 * @ordered
+	 */
+	protected ComponentInterface key;
+
+	/**
+	 * The cached value of the '{@link #getTypedValue() <em>Value</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getTypedValue()
+	 * @generated
+	 * @ordered
+	 */
+	protected Channel value;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected InterfaceChannelImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getInterfaceChannel();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentInterface getTypedKey() {
+		if (key != null && key.eIsProxy()) {
+			InternalEObject oldKey = (InternalEObject)key;
+			key = (ComponentInterface)eResolveProxy(oldKey);
+			if (key != oldKey) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.INTERFACE_CHANNEL__KEY, oldKey, key));
+			}
+		}
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentInterface basicGetTypedKey() {
+		return key;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedKey(ComponentInterface newKey) {
+		ComponentInterface oldKey = key;
+		key = newKey;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.INTERFACE_CHANNEL__KEY, oldKey, key));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Channel getTypedValue() {
+		if (value != null && value.eIsProxy()) {
+			InternalEObject oldValue = (InternalEObject)value;
+			value = (Channel)eResolveProxy(oldValue);
+			if (value != oldValue) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.INTERFACE_CHANNEL__VALUE, oldValue, value));
+			}
+		}
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Channel basicGetTypedValue() {
+		return value;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public void setTypedValue(Channel newValue) {
+		Channel oldValue = value;
+		value = newValue;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.INTERFACE_CHANNEL__VALUE, oldValue, value));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.INTERFACE_CHANNEL__KEY:
+				if (resolve) return getTypedKey();
+				return basicGetTypedKey();
+			case AmaltheaPackage.INTERFACE_CHANNEL__VALUE:
+				if (resolve) return getTypedValue();
+				return basicGetTypedValue();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.INTERFACE_CHANNEL__KEY:
+				setTypedKey((ComponentInterface)newValue);
+				return;
+			case AmaltheaPackage.INTERFACE_CHANNEL__VALUE:
+				setTypedValue((Channel)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.INTERFACE_CHANNEL__KEY:
+				setTypedKey((ComponentInterface)null);
+				return;
+			case AmaltheaPackage.INTERFACE_CHANNEL__VALUE:
+				setTypedValue((Channel)null);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.INTERFACE_CHANNEL__KEY:
+				return key != null;
+			case AmaltheaPackage.INTERFACE_CHANNEL__VALUE:
+				return value != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected int hash = -1;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int getHash() {
+		if (hash == -1) {
+			Object theKey = getKey();
+			hash = (theKey == null ? 0 : theKey.hashCode());
+		}
+		return hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setHash(int hash) {
+		this.hash = hash;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentInterface getKey() {
+		return getTypedKey();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setKey(ComponentInterface key) {
+		setTypedKey(key);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Channel getValue() {
+		return getTypedValue();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Channel setValue(Channel value) {
+		Channel oldValue = getValue();
+		setTypedValue(value);
+		return oldValue;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	public EMap<ComponentInterface, Channel> getEMap() {
+		EObject container = eContainer();
+		return container == null ? null : (EMap<ComponentInterface, Channel>)container.eGet(eContainmentFeature());
+	}
+
+} //InterfaceChannelImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfacePortImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfacePortImpl.java
deleted file mode 100644
index 27c0181..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterfacePortImpl.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model.impl;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.InterfaceKind;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Interface Port</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.InterfacePortImpl#getInterfaceName <em>Interface Name</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.InterfacePortImpl#getKind <em>Kind</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class InterfacePortImpl extends PortImpl implements InterfacePort {
-	/**
-	 * The default value of the '{@link #getInterfaceName() <em>Interface Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaceName()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final String INTERFACE_NAME_EDEFAULT = null;
-
-	/**
-	 * The cached value of the '{@link #getInterfaceName() <em>Interface Name</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getInterfaceName()
-	 * @generated
-	 * @ordered
-	 */
-	protected String interfaceName = INTERFACE_NAME_EDEFAULT;
-
-	/**
-	 * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getKind()
-	 * @generated
-	 * @ordered
-	 */
-	protected static final InterfaceKind KIND_EDEFAULT = InterfaceKind._UNDEFINED_;
-
-	/**
-	 * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getKind()
-	 * @generated
-	 * @ordered
-	 */
-	protected InterfaceKind kind = KIND_EDEFAULT;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected InterfacePortImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return AmaltheaPackage.eINSTANCE.getInterfacePort();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getInterfaceName() {
-		return interfaceName;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setInterfaceName(String newInterfaceName) {
-		String oldInterfaceName = interfaceName;
-		interfaceName = newInterfaceName;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME, oldInterfaceName, interfaceName));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public InterfaceKind getKind() {
-		return kind;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setKind(InterfaceKind newKind) {
-		InterfaceKind oldKind = kind;
-		kind = newKind == null ? KIND_EDEFAULT : newKind;
-		if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.INTERFACE_PORT__KIND, oldKind, kind));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME:
-				return getInterfaceName();
-			case AmaltheaPackage.INTERFACE_PORT__KIND:
-				return getKind();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME:
-				setInterfaceName((String)newValue);
-				return;
-			case AmaltheaPackage.INTERFACE_PORT__KIND:
-				setKind((InterfaceKind)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME:
-				setInterfaceName(INTERFACE_NAME_EDEFAULT);
-				return;
-			case AmaltheaPackage.INTERFACE_PORT__KIND:
-				setKind(KIND_EDEFAULT);
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case AmaltheaPackage.INTERFACE_PORT__INTERFACE_NAME:
-				return INTERFACE_NAME_EDEFAULT == null ? interfaceName != null : !INTERFACE_NAME_EDEFAULT.equals(interfaceName);
-			case AmaltheaPackage.INTERFACE_PORT__KIND:
-				return kind != KIND_EDEFAULT;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String toString() {
-		if (eIsProxy()) return super.toString();
-
-		StringBuilder result = new StringBuilder(super.toString());
-		result.append(" (interfaceName: ");
-		result.append(interfaceName);
-		result.append(", kind: ");
-		result.append(kind);
-		result.append(')');
-		return result.toString();
-	}
-
-} //InterfacePortImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptControllerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptControllerImpl.java
index 672ed7b..1813c61 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptControllerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptControllerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptSchedulingAlgorithmImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptSchedulingAlgorithmImpl.java
index 04441cf..fcbf2cf 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptSchedulingAlgorithmImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/InterruptSchedulingAlgorithmImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessImpl.java
index 28640d3..5a2b333 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -18,6 +18,7 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.DataDependency;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
 import org.eclipse.app4mc.amalthea.model.ITaggable;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
@@ -49,13 +50,13 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getTags <em>Tags</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getDependsOn <em>Depends On</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getData <em>Data</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getAccess <em>Access</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getStatistic <em>Statistic</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getTransmissionPolicy <em>Transmission Policy</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getDataStability <em>Data Stability</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getImplementation <em>Implementation</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelAccessImpl#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @generated
@@ -72,6 +73,16 @@
 	protected EList<Tag> tags;
 
 	/**
+	 * The cached value of the '{@link #getDependsOn() <em>Depends On</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependsOn()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataDependency dependsOn;
+
+	/**
 	 * The cached value of the '{@link #getData() <em>Data</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -162,16 +173,6 @@
 	protected LabelAccessImplementation implementation = IMPLEMENTATION_EDEFAULT;
 
 	/**
-	 * The cached value of the '{@link #getDependsOn() <em>Depends On</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDependsOn()
-	 * @generated
-	 * @ordered
-	 */
-	protected DataDependency dependsOn;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -209,6 +210,51 @@
 	 * @generated
 	 */
 	@Override
+	public DataDependency getDependsOn() {
+		return dependsOn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
+		DataDependency oldDependsOn = dependsOn;
+		dependsOn = newDependsOn;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, oldDependsOn, newDependsOn);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDependsOn(DataDependency newDependsOn) {
+		if (newDependsOn != dependsOn) {
+			NotificationChain msgs = null;
+			if (dependsOn != null)
+				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, null, msgs);
+			if (newDependsOn != null)
+				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, null, msgs);
+			msgs = basicSetDependsOn(newDependsOn, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, newDependsOn, newDependsOn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Label getData() {
 		if (data != null && data.eIsProxy()) {
 			InternalEObject oldData = (InternalEObject)data;
@@ -408,59 +454,14 @@
 	 * @generated
 	 */
 	@Override
-	public DataDependency getDependsOn() {
-		return dependsOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
-		DataDependency oldDependsOn = dependsOn;
-		dependsOn = newDependsOn;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, oldDependsOn, newDependsOn);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setDependsOn(DataDependency newDependsOn) {
-		if (newDependsOn != dependsOn) {
-			NotificationChain msgs = null;
-			if (dependsOn != null)
-				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, null, msgs);
-			if (newDependsOn != null)
-				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, null, msgs);
-			msgs = basicSetDependsOn(newDependsOn, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON, newDependsOn, newDependsOn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
+				return basicSetDependsOn(null, msgs);
 			case AmaltheaPackage.LABEL_ACCESS__STATISTIC:
 				return basicSetStatistic(null, msgs);
 			case AmaltheaPackage.LABEL_ACCESS__TRANSMISSION_POLICY:
 				return basicSetTransmissionPolicy(null, msgs);
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
-				return basicSetDependsOn(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -475,6 +476,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.LABEL_ACCESS__TAGS:
 				return getTags();
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
+				return getDependsOn();
 			case AmaltheaPackage.LABEL_ACCESS__DATA:
 				if (resolve) return getData();
 				return basicGetData();
@@ -488,8 +491,6 @@
 				return getDataStability();
 			case AmaltheaPackage.LABEL_ACCESS__IMPLEMENTATION:
 				return getImplementation();
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
-				return getDependsOn();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -507,6 +508,9 @@
 				getTags().clear();
 				getTags().addAll((Collection<? extends Tag>)newValue);
 				return;
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
+				setDependsOn((DataDependency)newValue);
+				return;
 			case AmaltheaPackage.LABEL_ACCESS__DATA:
 				setData((Label)newValue);
 				return;
@@ -525,9 +529,6 @@
 			case AmaltheaPackage.LABEL_ACCESS__IMPLEMENTATION:
 				setImplementation((LabelAccessImplementation)newValue);
 				return;
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
-				setDependsOn((DataDependency)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -543,6 +544,9 @@
 			case AmaltheaPackage.LABEL_ACCESS__TAGS:
 				getTags().clear();
 				return;
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
+				setDependsOn((DataDependency)null);
+				return;
 			case AmaltheaPackage.LABEL_ACCESS__DATA:
 				setData((Label)null);
 				return;
@@ -561,9 +565,6 @@
 			case AmaltheaPackage.LABEL_ACCESS__IMPLEMENTATION:
 				setImplementation(IMPLEMENTATION_EDEFAULT);
 				return;
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
-				setDependsOn((DataDependency)null);
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -578,6 +579,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.LABEL_ACCESS__TAGS:
 				return tags != null && !tags.isEmpty();
+			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
+				return dependsOn != null;
 			case AmaltheaPackage.LABEL_ACCESS__DATA:
 				return data != null;
 			case AmaltheaPackage.LABEL_ACCESS__ACCESS:
@@ -590,8 +593,6 @@
 				return dataStability != DATA_STABILITY_EDEFAULT;
 			case AmaltheaPackage.LABEL_ACCESS__IMPLEMENTATION:
 				return implementation != IMPLEMENTATION_EDEFAULT;
-			case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON:
-				return dependsOn != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -609,6 +610,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == IDependsOn.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON: return AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON;
+				default: return -1;
+			}
+		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -625,6 +632,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == IDependsOn.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON: return AmaltheaPackage.LABEL_ACCESS__DEPENDS_ON;
+				default: return -1;
+			}
+		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessStatisticImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessStatisticImpl.java
index 3384b7d..94ab987 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessStatisticImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelAccessStatisticImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEntityGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEntityGroupImpl.java
index ef62bf7..a161b0d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEntityGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEntityGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEventImpl.java
index ed4336d..9a710f7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelGroupImpl.java
index ec5b7b2..75aceeb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelImpl.java
index 99ee293..e99177a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LabelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,9 +20,11 @@
 import org.eclipse.app4mc.amalthea.model.DataStabilityLevel;
 import org.eclipse.app4mc.amalthea.model.DataType;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.LabelDataStability;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.Section;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -45,6 +47,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelImpl#getDisplayName <em>Display Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelImpl#getDataType <em>Data Type</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelImpl#isConstant <em>Constant</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.LabelImpl#isBVolatile <em>BVolatile</em>}</li>
@@ -79,6 +82,16 @@
 	protected String displayName = DISPLAY_NAME_EDEFAULT;
 
 	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
 	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -226,6 +239,46 @@
 	 * @generated
 	 */
 	@Override
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.LABEL__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.LABEL__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public DataType getDataType() {
 		return dataType;
 	}
@@ -445,6 +498,9 @@
 		switch (featureID) {
 			case AmaltheaPackage.LABEL__DISPLAY_NAME:
 				return getDisplayName();
+			case AmaltheaPackage.LABEL__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
 			case AmaltheaPackage.LABEL__DATA_TYPE:
 				return getDataType();
 			case AmaltheaPackage.LABEL__CONSTANT:
@@ -477,6 +533,9 @@
 			case AmaltheaPackage.LABEL__DISPLAY_NAME:
 				setDisplayName((String)newValue);
 				return;
+			case AmaltheaPackage.LABEL__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
 			case AmaltheaPackage.LABEL__DATA_TYPE:
 				setDataType((DataType)newValue);
 				return;
@@ -510,6 +569,9 @@
 			case AmaltheaPackage.LABEL__DISPLAY_NAME:
 				setDisplayName(DISPLAY_NAME_EDEFAULT);
 				return;
+			case AmaltheaPackage.LABEL__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
 			case AmaltheaPackage.LABEL__DATA_TYPE:
 				setDataType((DataType)null);
 				return;
@@ -542,6 +604,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.LABEL__DISPLAY_NAME:
 				return DISPLAY_NAME_EDEFAULT == null ? displayName != null : !DISPLAY_NAME_EDEFAULT.equals(displayName);
+			case AmaltheaPackage.LABEL__NAMESPACE:
+				return namespace != null;
 			case AmaltheaPackage.LABEL__DATA_TYPE:
 				return dataType != null;
 			case AmaltheaPackage.LABEL__CONSTANT:
@@ -575,6 +639,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.LABEL__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
 		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
 	}
 
@@ -591,6 +661,12 @@
 				default: return -1;
 			}
 		}
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.LABEL__NAMESPACE;
+				default: return -1;
+			}
+		}
 		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LeastLocalRemainingExecutionTimeFirstImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LeastLocalRemainingExecutionTimeFirstImpl.java
index 37708c1..d3f7ab3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LeastLocalRemainingExecutionTimeFirstImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LeastLocalRemainingExecutionTimeFirstImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ListObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ListObjectImpl.java
index b61a72b..33aa5f6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ListObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ListObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LongObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LongObjectImpl.java
index 6d924f5..0a66d5c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LongObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/LongObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MainInterfaceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MainInterfaceImpl.java
new file mode 100644
index 0000000..214ab35
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MainInterfaceImpl.java
@@ -0,0 +1,349 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
+import org.eclipse.app4mc.amalthea.model.Namespace;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Main Interface</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getNamespace <em>Namespace</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getStructure <em>Structure</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.MainInterfaceImpl#getVersion <em>Version</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class MainInterfaceImpl extends ComponentInterfaceImpl implements MainInterface {
+	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
+	 * The cached value of the '{@link #getStructure() <em>Structure</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getStructure()
+	 * @generated
+	 * @ordered
+	 */
+	protected ComponentStructure structure;
+
+	/**
+	 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String VERSION_EDEFAULT = "1.0";
+
+	/**
+	 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getVersion()
+	 * @generated
+	 * @ordered
+	 */
+	protected String version = VERSION_EDEFAULT;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected MainInterfaceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getMainInterface();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.MAIN_INTERFACE__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentStructure getStructure() {
+		if (structure != null && structure.eIsProxy()) {
+			InternalEObject oldStructure = (InternalEObject)structure;
+			structure = (ComponentStructure)eResolveProxy(oldStructure);
+			if (structure != oldStructure) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.MAIN_INTERFACE__STRUCTURE, oldStructure, structure));
+			}
+		}
+		return structure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentStructure basicGetStructure() {
+		return structure;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setStructure(ComponentStructure newStructure) {
+		ComponentStructure oldStructure = structure;
+		structure = newStructure;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__STRUCTURE, oldStructure, structure));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getVersion() {
+		return version;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setVersion(String newVersion) {
+		String oldVersion = version;
+		version = newVersion;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.MAIN_INTERFACE__VERSION, oldVersion, version));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
+			case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
+				if (resolve) return getStructure();
+				return basicGetStructure();
+			case AmaltheaPackage.MAIN_INTERFACE__VERSION:
+				return getVersion();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
+			case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
+				setStructure((ComponentStructure)newValue);
+				return;
+			case AmaltheaPackage.MAIN_INTERFACE__VERSION:
+				setVersion((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
+			case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
+				setStructure((ComponentStructure)null);
+				return;
+			case AmaltheaPackage.MAIN_INTERFACE__VERSION:
+				setVersion(VERSION_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE:
+				return namespace != null;
+			case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE:
+				return structure != null;
+			case AmaltheaPackage.MAIN_INTERFACE__VERSION:
+				return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version);
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.MAIN_INTERFACE__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
+		if (baseClass == IComponentStructureMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.MAIN_INTERFACE__STRUCTURE: return AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.MAIN_INTERFACE__NAMESPACE;
+				default: return -1;
+			}
+		}
+		if (baseClass == IComponentStructureMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER__STRUCTURE: return AmaltheaPackage.MAIN_INTERFACE__STRUCTURE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String toString() {
+		if (eIsProxy()) return super.toString();
+
+		StringBuilder result = new StringBuilder(super.toString());
+		result.append(" (version: ");
+		result.append(version);
+		result.append(')');
+		return result.toString();
+	}
+
+} //MainInterfaceImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MappingModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MappingModelImpl.java
index 3614867..1240c0c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MappingModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MappingModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementImpl.java
index 72c2765..399e684 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementModelImpl.java
index a42555b..2c1ed36 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MeasurementModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassificationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassificationImpl.java
index 4edda4e..2045b23 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassificationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassificationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassifierImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassifierImpl.java
index 423c0d2..971a24e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassifierImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryClassifierImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryDefinitionImpl.java
index 8754533..ea05ff3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryImpl.java
index bae272a..8286ee8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingConstraintImpl.java
index 163900e..2006a8e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingImpl.java
index a62be81..524c3d4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MemoryMappingImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MinAvgMaxStatisticImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MinAvgMaxStatisticImpl.java
index 30ca04e..9307eb8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MinAvgMaxStatisticImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/MinAvgMaxStatisticImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeAssignmentImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeAssignmentImpl.java
index 29395b6..fc3dd31 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeAssignmentImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeAssignmentImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionConjunctionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionConjunctionImpl.java
index 49021e7..ad83d8c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionConjunctionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionConjunctionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionEntryImpl.java
deleted file mode 100644
index 5261141..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionEntryImpl.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model.impl;
-
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry;
-import org.eclipse.app4mc.amalthea.model.ModeLabel;
-
-import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.common.util.EMap;
-
-import org.eclipse.emf.ecore.EClass;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Mode Condition Disjunction Entry</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public abstract class ModeConditionDisjunctionEntryImpl extends BaseObjectImpl implements ModeConditionDisjunctionEntry {
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected ModeConditionDisjunctionEntryImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return AmaltheaPackage.eINSTANCE.getModeConditionDisjunctionEntry();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean isSatisfiedBy(final EMap<ModeLabel, String> assignment) {
-		return false;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	@SuppressWarnings("unchecked")
-	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
-		switch (operationID) {
-			case AmaltheaPackage.MODE_CONDITION_DISJUNCTION_ENTRY___IS_SATISFIED_BY__EMAP:
-				return isSatisfiedBy((EMap<ModeLabel, String>)arguments.get(0));
-		}
-		return super.eInvoke(operationID, arguments);
-	}
-
-} //ModeConditionDisjunctionEntryImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionImpl.java
index e293cc8..8e4a84a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeConditionDisjunctionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeImpl.java
index 090364c..460c5a5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAccessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAccessImpl.java
index 2abddfb..13e0384 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAccessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelAccessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -50,7 +50,7 @@
  *
  * @generated
  */
-public class ModeLabelAccessImpl extends CallGraphItemImpl implements ModeLabelAccess {
+public class ModeLabelAccessImpl extends ActivityGraphItemImpl implements ModeLabelAccess {
 	/**
 	 * The cached value of the '{@link #getData() <em>Data</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
index ca6a9f9..55122d5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelConditionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelImpl.java
index a9717f1..f52972b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLabelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralImpl.java
index 3fd1937..c29bb3e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeLiteralImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -18,17 +18,21 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.EnumMode;
+import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ModeLiteral;
 import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
 
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 import org.eclipse.xtext.xbase.lib.StringExtensions;
 
 /**
@@ -91,13 +95,20 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
 		EnumMode _containingMode = this.getContainingMode();
-		String _name = null;
+		EList<String> _qualifiedNameSegments = null;
 		if (_containingMode!=null) {
-			_name=_containingMode.getName();
+			_qualifiedNameSegments=_containingMode.getQualifiedNameSegments();
 		}
-		return _name;
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
 	}
 
 	/**
@@ -198,15 +209,21 @@
 	 */
 	@Override
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
 		if (baseClass == ReferableBaseObject.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
@@ -221,8 +238,8 @@
 	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX:
-				return getNamePrefix();
+			case AmaltheaPackage.MODE_LITERAL___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 			case AmaltheaPackage.MODE_LITERAL___TO_STRING:
 				return toString();
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchDefaultImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchDefaultImpl.java
index a2e106e..f2425ac 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchDefaultImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchDefaultImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,9 +16,9 @@
 
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.ModeSwitchDefault;
 
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -53,7 +53,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<CallGraphItem> items;
+	protected EList<ActivityGraphItem> items;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -80,9 +80,9 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getItems() {
+	public EList<ActivityGraphItem> getItems() {
 		if (items == null) {
-			items = new EObjectContainmentEList<CallGraphItem>(CallGraphItem.class, this, AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS);
+			items = new EObjectContainmentEList<ActivityGraphItem>(ActivityGraphItem.class, this, AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS);
 		}
 		return items;
 	}
@@ -126,7 +126,7 @@
 		switch (featureID) {
 			case AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS:
 				getItems().clear();
-				getItems().addAll((Collection<? extends CallGraphItem>)newValue);
+				getItems().addAll((Collection<? extends ActivityGraphItem>)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -168,9 +168,9 @@
 	 */
 	@Override
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (derivedFeatureID) {
-				case AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS: return AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS;
+				case AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS: return AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS;
 				default: return -1;
 			}
 		}
@@ -184,9 +184,9 @@
 	 */
 	@Override
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (baseFeatureID) {
-				case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS;
+				case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.MODE_SWITCH_DEFAULT__ITEMS;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchEntryImpl.java
index abdc45f..df9677b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,14 +14,18 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunction;
 import org.eclipse.app4mc.amalthea.model.ModeSwitchEntry;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
@@ -29,6 +33,7 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -36,6 +41,8 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Mode Switch Entry</b></em>'.
@@ -45,6 +52,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchEntryImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchEntryImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchEntryImpl#getItems <em>Items</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ModeSwitchEntryImpl#getCondition <em>Condition</em>}</li>
  * </ul>
@@ -73,6 +81,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getItems() <em>Items</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -80,7 +98,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<CallGraphItem> items;
+	protected EList<ActivityGraphItem> items;
 
 	/**
 	 * The cached value of the '{@link #getCondition() <em>Condition</em>}' containment reference.
@@ -140,9 +158,19 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getItems() {
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<ActivityGraphItem> getItems() {
 		if (items == null) {
-			items = new EObjectContainmentEList<CallGraphItem>(CallGraphItem.class, this, AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS);
+			items = new EObjectContainmentEList<ActivityGraphItem>(ActivityGraphItem.class, this, AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS);
 		}
 		return items;
 	}
@@ -198,6 +226,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS:
@@ -218,6 +339,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__NAME:
 				return getName();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS:
 				return getItems();
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__CONDITION:
@@ -240,7 +363,7 @@
 				return;
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS:
 				getItems().clear();
-				getItems().addAll((Collection<? extends CallGraphItem>)newValue);
+				getItems().addAll((Collection<? extends ActivityGraphItem>)newValue);
 				return;
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__CONDITION:
 				setCondition((ModeConditionDisjunction)newValue);
@@ -280,6 +403,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.MODE_SWITCH_ENTRY__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS:
 				return items != null && !items.isEmpty();
 			case AmaltheaPackage.MODE_SWITCH_ENTRY__CONDITION:
@@ -298,12 +423,13 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.MODE_SWITCH_ENTRY__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.MODE_SWITCH_ENTRY__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (derivedFeatureID) {
-				case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS: return AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS;
+				case AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS: return AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS;
 				default: return -1;
 			}
 		}
@@ -320,12 +446,13 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.MODE_SWITCH_ENTRY__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.MODE_SWITCH_ENTRY__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (baseFeatureID) {
-				case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS;
+				case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.MODE_SWITCH_ENTRY__ITEMS;
 				default: return -1;
 			}
 		}
@@ -338,6 +465,56 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		if (baseClass == IActivityGraphItemContainer.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.MODE_SWITCH_ENTRY___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchImpl.java
index 9e65ef8..e131a1e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeSwitchImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -48,7 +48,7 @@
  *
  * @generated
  */
-public class ModeSwitchImpl extends CallGraphItemImpl implements ModeSwitch {
+public class ModeSwitchImpl extends ActivityGraphItemImpl implements ModeSwitch {
 	/**
 	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueConditionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueConditionImpl.java
index 57702d6..e07b3bb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueConditionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueConditionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueImpl.java
index 9e902c0..b2819ae 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueListImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueListImpl.java
index 034f524..41f2b48 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueListImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueListImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueMapEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueMapEntryImpl.java
index acab94a..d3bba6a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueMapEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ModeValueMapEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NamespaceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NamespaceImpl.java
new file mode 100644
index 0000000..ff7aeb2
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NamespaceImpl.java
@@ -0,0 +1,316 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.Namespace;
+import org.eclipse.app4mc.amalthea.model.ReferableObject;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Namespace</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.NamespaceImpl#getNextSegments <em>Next Segments</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.NamespaceImpl#getPreviousSegment <em>Previous Segment</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.NamespaceImpl#getMemberObjects <em>Member Objects</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class NamespaceImpl extends ReferableObjectImpl implements Namespace {
+	/**
+	 * The cached value of the '{@link #getNextSegments() <em>Next Segments</em>}' containment reference list.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNextSegments()
+	 * @generated
+	 * @ordered
+	 */
+	protected EList<Namespace> nextSegments;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected NamespaceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getNamespace();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<Namespace> getNextSegments() {
+		if (nextSegments == null) {
+			nextSegments = new EObjectContainmentWithInverseEList<Namespace>(Namespace.class, this, AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS, AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT);
+		}
+		return nextSegments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getPreviousSegment() {
+		if (eContainerFeatureID() != AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT) return null;
+		return (Namespace)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetPreviousSegment() {
+		if (eContainerFeatureID() != AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT) return null;
+		return (Namespace)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<INamespaceMember> getMemberObjects() {
+		EReference _iNamespaceMember_Namespace = AmaltheaPackage.eINSTANCE.getINamespaceMember_Namespace();
+		return AmaltheaIndex.<INamespaceMember>getInverseReferences(this, AmaltheaPackage.eINSTANCE.getNamespace_MemberObjects(), 
+			java.util.Collections.<EReference>unmodifiableSet(org.eclipse.xtext.xbase.lib.CollectionLiterals.<EReference>newHashSet(_iNamespaceMember_Namespace)));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		Namespace _previousSegment = this.getPreviousSegment();
+		EList<String> _qualifiedNameSegments = null;
+		if (_previousSegment!=null) {
+			_qualifiedNameSegments=_previousSegment.getQualifiedNameSegments();
+		}
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getNextSegments()).basicAdd(otherEnd, msgs);
+			case AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd, AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				return ((InternalEList<?>)getNextSegments()).basicRemove(otherEnd, msgs);
+			case AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT:
+				return eBasicSetContainer(null, AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS, Namespace.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				return getNextSegments();
+			case AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT:
+				if (resolve) return getPreviousSegment();
+				return basicGetPreviousSegment();
+			case AmaltheaPackage.NAMESPACE__MEMBER_OBJECTS:
+				return getMemberObjects();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				getNextSegments().clear();
+				getNextSegments().addAll((Collection<? extends Namespace>)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				getNextSegments().clear();
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.NAMESPACE__NEXT_SEGMENTS:
+				return nextSegments != null && !nextSegments.isEmpty();
+			case AmaltheaPackage.NAMESPACE__PREVIOUS_SEGMENT:
+				return basicGetPreviousSegment() != null;
+			case AmaltheaPackage.NAMESPACE__MEMBER_OBJECTS:
+				return !getMemberObjects().isEmpty();
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.NAMESPACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.NAMESPACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.NAMESPACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.NAMESPACE___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+} //NamespaceImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NeedEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NeedEntryImpl.java
index 22329fd..4711076 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NeedEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NeedEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NonAtomicDataCoherencyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NonAtomicDataCoherencyImpl.java
index ab1be59..eaf3fd1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NonAtomicDataCoherencyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NonAtomicDataCoherencyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NumericModeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NumericModeImpl.java
index f025b19..197113c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NumericModeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/NumericModeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSEKImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSEKImpl.java
index b8773cc..7281da0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSEKImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSEKImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSModelImpl.java
index 3603cf7..c4663e3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OSModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OperatingSystemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OperatingSystemImpl.java
index 24dd18b..18be9f0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OperatingSystemImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OperatingSystemImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,11 +14,15 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.OperatingSystem;
 import org.eclipse.app4mc.amalthea.model.OsDataConsistency;
 import org.eclipse.app4mc.amalthea.model.OsOverhead;
@@ -30,6 +34,7 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
@@ -37,6 +42,8 @@
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Operating System</b></em>'.
@@ -46,6 +53,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.OperatingSystemImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.OperatingSystemImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.OperatingSystemImpl#getOverhead <em>Overhead</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.OperatingSystemImpl#getTaskSchedulers <em>Task Schedulers</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.OperatingSystemImpl#getInterruptControllers <em>Interrupt Controllers</em>}</li>
@@ -76,6 +84,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getOverhead() <em>Overhead</em>}' reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -163,6 +181,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public OsOverhead getOverhead() {
 		if (overhead != null && overhead.eIsProxy()) {
 			InternalEObject oldOverhead = (InternalEObject)overhead;
@@ -274,6 +302,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.OPERATING_SYSTEM__TASK_SCHEDULERS:
@@ -296,6 +417,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.OPERATING_SYSTEM__NAME:
 				return getName();
+			case AmaltheaPackage.OPERATING_SYSTEM__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.OPERATING_SYSTEM__OVERHEAD:
 				if (resolve) return getOverhead();
 				return basicGetOverhead();
@@ -376,6 +499,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.OPERATING_SYSTEM__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.OPERATING_SYSTEM__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.OPERATING_SYSTEM__OVERHEAD:
 				return overhead != null;
 			case AmaltheaPackage.OPERATING_SYSTEM__TASK_SCHEDULERS:
@@ -398,6 +523,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.OPERATING_SYSTEM__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.OPERATING_SYSTEM__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -414,6 +540,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.OPERATING_SYSTEM__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.OPERATING_SYSTEM__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -426,6 +553,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.OPERATING_SYSTEM___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.OPERATING_SYSTEM___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.OPERATING_SYSTEM___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.OPERATING_SYSTEM___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.OPERATING_SYSTEM___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.OPERATING_SYSTEM___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.OPERATING_SYSTEM___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OrderPrecedenceSpecImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OrderPrecedenceSpecImpl.java
index ff9ab6c..d63921b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OrderPrecedenceSpecImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OrderPrecedenceSpecImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsAPIOverheadImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsAPIOverheadImpl.java
index 6b408cf..910b2be 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsAPIOverheadImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsAPIOverheadImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsDataConsistencyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsDataConsistencyImpl.java
index cff557b..8b70261 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsDataConsistencyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsDataConsistencyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsEventImpl.java
index ab6e451..daadfcb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsISROverheadImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsISROverheadImpl.java
index 05a6be2..3edb240 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsISROverheadImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsISROverheadImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsOverheadImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsOverheadImpl.java
index 87452e9..b699c51 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsOverheadImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/OsOverheadImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PairingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PairingConstraintImpl.java
index 08c56d0..5c8aca8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PairingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PairingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ParameterExtensionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ParameterExtensionImpl.java
index 0c52d57..934d69c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ParameterExtensionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ParameterExtensionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyEarlyReleaseFairPD2Impl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyEarlyReleaseFairPD2Impl.java
index b0d143b..80d9c05 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyEarlyReleaseFairPD2Impl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyEarlyReleaseFairPD2Impl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyPFairPD2Impl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyPFairPD2Impl.java
index e9ad72f..d68703a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyPFairPD2Impl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PartlyPFairPD2Impl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PercentageRequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PercentageRequirementLimitImpl.java
index 9002a0f..c9ea32c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PercentageRequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PercentageRequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicActivationImpl.java
index 1e1e2a7..81cfd0b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicBurstStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicBurstStimulusImpl.java
index 33005a6..9a1c1c8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicBurstStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicBurstStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicStimulusImpl.java
index 1c800f8..96d7d88 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicSyntheticStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicSyntheticStimulusImpl.java
index 7b6d483..2539885 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicSyntheticStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PeriodicSyntheticStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairImpl.java
index 410969c..1402330 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairPD2Impl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairPD2Impl.java
index 7bd5e8f..03a3e96 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairPD2Impl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PfairPD2Impl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionConstraintImpl.java
index ead0260..50fa2e4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionMappingImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionMappingImpl.java
index dc4f128..4bb533d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionMappingImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PhysicalSectionMappingImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PointerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PointerImpl.java
index 7c52048..9d1a98a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PointerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PointerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PollingPeriodicServerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PollingPeriodicServerImpl.java
index 91e59bc..15c2d40 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PollingPeriodicServerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PollingPeriodicServerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PortImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PortImpl.java
deleted file mode 100644
index b09307b..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PortImpl.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/**
- * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
- * 
- *  This program and the accompanying materials are made
- *  available under the terms of the Eclipse Public License 2.0
- *  which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- *  SPDX-License-Identifier: EPL-2.0
- * 
- *     Generated using Eclipse EMF
- * 
- * *******************************************************************************
- */
-package org.eclipse.app4mc.amalthea.model.impl;
-
-import java.lang.reflect.InvocationTargetException;
-
-import java.util.Collection;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.Component;
-import org.eclipse.app4mc.amalthea.model.IReferable;
-import org.eclipse.app4mc.amalthea.model.ITaggable;
-import org.eclipse.app4mc.amalthea.model.Port;
-import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
-import org.eclipse.app4mc.amalthea.model.Tag;
-
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Port</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.PortImpl#getTags <em>Tags</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.PortImpl#getContainingComponent <em>Containing Component</em>}</li>
- * </ul>
- *
- * @generated
- */
-public abstract class PortImpl extends ReferableBaseObjectImpl implements Port {
-	/**
-	 * The cached value of the '{@link #getTags() <em>Tags</em>}' reference list.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getTags()
-	 * @generated
-	 * @ordered
-	 */
-	protected EList<Tag> tags;
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	protected PortImpl() {
-		super();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	protected EClass eStaticClass() {
-		return AmaltheaPackage.eINSTANCE.getPort();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public EList<Tag> getTags() {
-		if (tags == null) {
-			tags = new EObjectResolvingEList<Tag>(Tag.class, this, AmaltheaPackage.PORT__TAGS);
-		}
-		return tags;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Component getContainingComponent() {
-		if (eContainerFeatureID() != AmaltheaPackage.PORT__CONTAINING_COMPONENT) return null;
-		return (Component)eContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public Component basicGetContainingComponent() {
-		if (eContainerFeatureID() != AmaltheaPackage.PORT__CONTAINING_COMPONENT) return null;
-		return (Component)eInternalContainer();
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getNamePrefix() {
-		Component _containingComponent = this.getContainingComponent();
-		String _name = null;
-		if (_containingComponent!=null) {
-			_name=_containingComponent.getName();
-		}
-		return _name;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__CONTAINING_COMPONENT:
-				if (eInternalContainer() != null)
-					msgs = eBasicRemoveFromContainer(msgs);
-				return eBasicSetContainer(otherEnd, AmaltheaPackage.PORT__CONTAINING_COMPONENT, msgs);
-		}
-		return super.eInverseAdd(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__CONTAINING_COMPONENT:
-				return eBasicSetContainer(null, AmaltheaPackage.PORT__CONTAINING_COMPONENT, msgs);
-		}
-		return super.eInverseRemove(otherEnd, featureID, msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
-		switch (eContainerFeatureID()) {
-			case AmaltheaPackage.PORT__CONTAINING_COMPONENT:
-				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.COMPONENT__PORTS, Component.class, msgs);
-		}
-		return super.eBasicRemoveFromContainerFeature(msgs);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eGet(int featureID, boolean resolve, boolean coreType) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__TAGS:
-				return getTags();
-			case AmaltheaPackage.PORT__CONTAINING_COMPONENT:
-				if (resolve) return getContainingComponent();
-				return basicGetContainingComponent();
-		}
-		return super.eGet(featureID, resolve, coreType);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@SuppressWarnings("unchecked")
-	@Override
-	public void eSet(int featureID, Object newValue) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__TAGS:
-				getTags().clear();
-				getTags().addAll((Collection<? extends Tag>)newValue);
-				return;
-		}
-		super.eSet(featureID, newValue);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void eUnset(int featureID) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__TAGS:
-				getTags().clear();
-				return;
-		}
-		super.eUnset(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public boolean eIsSet(int featureID) {
-		switch (featureID) {
-			case AmaltheaPackage.PORT__TAGS:
-				return tags != null && !tags.isEmpty();
-			case AmaltheaPackage.PORT__CONTAINING_COMPONENT:
-				return basicGetContainingComponent() != null;
-		}
-		return super.eIsSet(featureID);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == ITaggable.class) {
-			switch (derivedFeatureID) {
-				case AmaltheaPackage.PORT__TAGS: return AmaltheaPackage.ITAGGABLE__TAGS;
-				default: return -1;
-			}
-		}
-		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == ITaggable.class) {
-			switch (baseFeatureID) {
-				case AmaltheaPackage.ITAGGABLE__TAGS: return AmaltheaPackage.PORT__TAGS;
-				default: return -1;
-			}
-		}
-		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
-		if (baseClass == IReferable.class) {
-			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.PORT___GET_NAME_PREFIX;
-				default: return super.eDerivedOperationID(baseOperationID, baseClass);
-			}
-		}
-		if (baseClass == ReferableBaseObject.class) {
-			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.PORT___GET_NAME_PREFIX;
-				default: return super.eDerivedOperationID(baseOperationID, baseClass);
-			}
-		}
-		if (baseClass == ITaggable.class) {
-			switch (baseOperationID) {
-				default: return -1;
-			}
-		}
-		return super.eDerivedOperationID(baseOperationID, baseClass);
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
-		switch (operationID) {
-			case AmaltheaPackage.PORT___GET_NAME_PREFIX:
-				return getNamePrefix();
-		}
-		return super.eInvoke(operationID, arguments);
-	}
-
-} //PortImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PowerDomainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PowerDomainImpl.java
index c42ffd5..8f1741a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PowerDomainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PowerDomainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedImpl.java
index 2715c8b..7c906d7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedRoundRobinImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedRoundRobinImpl.java
index 6bda704..8ce43e1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedRoundRobinImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PriorityBasedRoundRobinImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchEntryImpl.java
index 1abf475..8e30514 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,9 +16,9 @@
 
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.ProbabilitySwitchEntry;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -57,7 +57,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected EList<CallGraphItem> items;
+	protected EList<ActivityGraphItem> items;
 
 	/**
 	 * The default value of the '{@link #getProbability() <em>Probability</em>}' attribute.
@@ -104,9 +104,9 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getItems() {
+	public EList<ActivityGraphItem> getItems() {
 		if (items == null) {
-			items = new EObjectContainmentEList<CallGraphItem>(CallGraphItem.class, this, AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS);
+			items = new EObjectContainmentEList<ActivityGraphItem>(ActivityGraphItem.class, this, AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS);
 		}
 		return items;
 	}
@@ -175,7 +175,7 @@
 		switch (featureID) {
 			case AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS:
 				getItems().clear();
-				getItems().addAll((Collection<? extends CallGraphItem>)newValue);
+				getItems().addAll((Collection<? extends ActivityGraphItem>)newValue);
 				return;
 			case AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__PROBABILITY:
 				setProbability((Double)newValue);
@@ -225,9 +225,9 @@
 	 */
 	@Override
 	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (derivedFeatureID) {
-				case AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS: return AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS;
+				case AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS: return AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS;
 				default: return -1;
 			}
 		}
@@ -241,9 +241,9 @@
 	 */
 	@Override
 	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
-		if (baseClass == ICallGraphItemContainer.class) {
+		if (baseClass == IActivityGraphItemContainer.class) {
 			switch (baseFeatureID) {
-				case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS;
+				case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER__ITEMS: return AmaltheaPackage.PROBABILITY_SWITCH_ENTRY__ITEMS;
 				default: return -1;
 			}
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchImpl.java
index 51904ec..fd48d4e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProbabilitySwitchImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -43,7 +43,7 @@
  *
  * @generated
  */
-public class ProbabilitySwitchImpl extends CallGraphItemImpl implements ProbabilitySwitch {
+public class ProbabilitySwitchImpl extends ActivityGraphItemImpl implements ProbabilitySwitch {
 	/**
 	 * The cached value of the '{@link #getEntries() <em>Entries</em>}' containment reference list.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessAllocationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessAllocationConstraintImpl.java
index a2bb53a..47df7aa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessAllocationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessAllocationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainEventImpl.java
index 4b8de3e..df1b9ae 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainImpl.java
index 6b0bf32..3edfaed 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainRequirementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainRequirementImpl.java
index 858a222..a5732f1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainRequirementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessChainRequirementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintImpl.java
index 45d3bc3..9bab5aa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintTargetImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintTargetImpl.java
index 4bbd454..fb0611d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintTargetImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessConstraintTargetImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEntityGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEntityGroupImpl.java
index 18228bf..e679755 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEntityGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEntityGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEventImpl.java
index 8dd61fe..b544e84 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessGroupImpl.java
index cb42015..3844284 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
index 2c0934a..e54f55f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,8 +16,8 @@
 
 import java.util.Collection;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.Stimulus;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -40,7 +40,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getCallGraph <em>Call Graph</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ProcessImpl#getStimuli <em>Stimuli</em>}</li>
  * </ul>
  *
@@ -48,14 +48,14 @@
  */
 public abstract class ProcessImpl extends AbstractProcessImpl implements org.eclipse.app4mc.amalthea.model.Process {
 	/**
-	 * The cached value of the '{@link #getCallGraph() <em>Call Graph</em>}' containment reference.
+	 * The cached value of the '{@link #getActivityGraph() <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getCallGraph()
+	 * @see #getActivityGraph()
 	 * @generated
 	 * @ordered
 	 */
-	protected CallGraph callGraph;
+	protected ActivityGraph activityGraph;
 
 	/**
 	 * The cached value of the '{@link #getStimuli() <em>Stimuli</em>}' reference list.
@@ -92,8 +92,8 @@
 	 * @generated
 	 */
 	@Override
-	public CallGraph getCallGraph() {
-		return callGraph;
+	public ActivityGraph getActivityGraph() {
+		return activityGraph;
 	}
 
 	/**
@@ -101,11 +101,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetCallGraph(CallGraph newCallGraph, NotificationChain msgs) {
-		CallGraph oldCallGraph = callGraph;
-		callGraph = newCallGraph;
+	public NotificationChain basicSetActivityGraph(ActivityGraph newActivityGraph, NotificationChain msgs) {
+		ActivityGraph oldActivityGraph = activityGraph;
+		activityGraph = newActivityGraph;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.PROCESS__CALL_GRAPH, oldCallGraph, newCallGraph);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.PROCESS__ACTIVITY_GRAPH, oldActivityGraph, newActivityGraph);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -117,18 +117,18 @@
 	 * @generated
 	 */
 	@Override
-	public void setCallGraph(CallGraph newCallGraph) {
-		if (newCallGraph != callGraph) {
+	public void setActivityGraph(ActivityGraph newActivityGraph) {
+		if (newActivityGraph != activityGraph) {
 			NotificationChain msgs = null;
-			if (callGraph != null)
-				msgs = ((InternalEObject)callGraph).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.PROCESS__CALL_GRAPH, null, msgs);
-			if (newCallGraph != null)
-				msgs = ((InternalEObject)newCallGraph).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.PROCESS__CALL_GRAPH, null, msgs);
-			msgs = basicSetCallGraph(newCallGraph, msgs);
+			if (activityGraph != null)
+				msgs = ((InternalEObject)activityGraph).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.PROCESS__ACTIVITY_GRAPH, null, msgs);
+			if (newActivityGraph != null)
+				msgs = ((InternalEObject)newActivityGraph).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.PROCESS__ACTIVITY_GRAPH, null, msgs);
+			msgs = basicSetActivityGraph(newActivityGraph, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.PROCESS__CALL_GRAPH, newCallGraph, newCallGraph));
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.PROCESS__ACTIVITY_GRAPH, newActivityGraph, newActivityGraph));
 	}
 
 	/**
@@ -152,8 +152,8 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
-				return basicSetCallGraph(null, msgs);
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
+				return basicSetActivityGraph(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -166,8 +166,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
-				return getCallGraph();
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
+				return getActivityGraph();
 			case AmaltheaPackage.PROCESS__STIMULI:
 				return getStimuli();
 		}
@@ -183,8 +183,8 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
-				setCallGraph((CallGraph)newValue);
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
+				setActivityGraph((ActivityGraph)newValue);
 				return;
 			case AmaltheaPackage.PROCESS__STIMULI:
 				getStimuli().clear();
@@ -202,8 +202,8 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
-				setCallGraph((CallGraph)null);
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
+				setActivityGraph((ActivityGraph)null);
 				return;
 			case AmaltheaPackage.PROCESS__STIMULI:
 				getStimuli().clear();
@@ -220,8 +220,8 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
-			case AmaltheaPackage.PROCESS__CALL_GRAPH:
-				return callGraph != null;
+			case AmaltheaPackage.PROCESS__ACTIVITY_GRAPH:
+				return activityGraph != null;
 			case AmaltheaPackage.PROCESS__STIMULI:
 				return stimuli != null && !stimuli.isEmpty();
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPairingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPairingConstraintImpl.java
index 3b1b3de..2aa5637 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPairingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPairingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeAllocationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeAllocationConstraintImpl.java
index bc54249..5b2dc2a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeAllocationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeAllocationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeImpl.java
index 9870813..60d4e20 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessPrototypeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessRequirementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessRequirementImpl.java
index 3d0a299..f3c8331 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessRequirementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessRequirementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessScopeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessScopeImpl.java
index d638384..399c154 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessScopeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessScopeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessSeparationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessSeparationConstraintImpl.java
index 6e48219..bacece2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessSeparationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessSeparationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitDefinitionImpl.java
index bab746b..f56ed39 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitImpl.java
index d39739b..41e4fd5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ProcessingUnitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PropertyConstraintsModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PropertyConstraintsModelImpl.java
index 8ff03d0..0d46faa 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PropertyConstraintsModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/PropertyConstraintsModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QualifiedPortImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QualifiedPortImpl.java
index bf34ede..c468d2b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QualifiedPortImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QualifiedPortImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,7 +16,7 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
-import org.eclipse.app4mc.amalthea.model.Port;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.QualifiedPort;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -59,7 +59,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Port port;
+	protected ComponentPort port;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -126,10 +126,10 @@
 	 * @generated
 	 */
 	@Override
-	public Port getPort() {
+	public ComponentPort getPort() {
 		if (port != null && port.eIsProxy()) {
 			InternalEObject oldPort = (InternalEObject)port;
-			port = (Port)eResolveProxy(oldPort);
+			port = (ComponentPort)eResolveProxy(oldPort);
 			if (port != oldPort) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.QUALIFIED_PORT__PORT, oldPort, port));
@@ -143,7 +143,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port basicGetPort() {
+	public ComponentPort basicGetPort() {
 		return port;
 	}
 
@@ -153,8 +153,8 @@
 	 * @generated
 	 */
 	@Override
-	public void setPort(Port newPort) {
-		Port oldPort = port;
+	public void setPort(ComponentPort newPort) {
+		ComponentPort oldPort = port;
 		port = newPort;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.QUALIFIED_PORT__PORT, oldPort, port));
@@ -190,7 +190,7 @@
 				setInstance((ComponentInstance)newValue);
 				return;
 			case AmaltheaPackage.QUALIFIED_PORT__PORT:
-				setPort((Port)newValue);
+				setPort((ComponentPort)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -208,7 +208,7 @@
 				setInstance((ComponentInstance)null);
 				return;
 			case AmaltheaPackage.QUALIFIED_PORT__PORT:
-				setPort((Port)null);
+				setPort((ComponentPort)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QuantityImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QuantityImpl.java
index 45491bd..1a741d7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QuantityImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/QuantityImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RateMonotonicImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RateMonotonicImpl.java
index f861fa6..f25a1b7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RateMonotonicImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RateMonotonicImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableBaseObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableBaseObjectImpl.java
index a3c374e..10ae815 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableBaseObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableBaseObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,16 +16,14 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import java.net.URLEncoder;
-
-import java.nio.charset.StandardCharsets;
-
 import java.util.Map;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
 import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
 import org.eclipse.app4mc.amalthea.model.Value;
 
@@ -39,6 +37,7 @@
 import org.eclipse.emf.common.util.EMap;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EStructuralFeature;
 import org.eclipse.emf.ecore.InternalEObject;
 
@@ -47,7 +46,7 @@
 import org.eclipse.emf.ecore.util.EcoreEMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
-import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
 
 /**
  * <!-- begin-user-doc -->
@@ -59,6 +58,7 @@
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableBaseObjectImpl#getCustomProperties <em>Custom Properties</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableBaseObjectImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableBaseObjectImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableBaseObjectImpl#getUniqueName <em>Unique Name</em>}</li>
  * </ul>
  *
@@ -96,6 +96,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The default value of the '{@link #getUniqueName() <em>Unique Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -166,21 +176,21 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String getUniqueName() {
-		String _xifexpression = null;
-		boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(this.getNamePrefix());
-		if (_isNullOrEmpty) {
-			_xifexpression = "";
-		}
-		else {
-			String _encode = this.encode(this.getNamePrefix());
-			_xifexpression = (_encode + "/");
-		}
-		String _encode_1 = this.encode(this.getName());
-		String _plus = (_xifexpression + _encode_1);
-		String _plus_1 = (_plus + "?type=");
+		String _encodedQualifiedName = this.getEncodedQualifiedName();
+		String _plus = (_encodedQualifiedName + "?type=");
 		String _name = this.eClass().getName();
-		return (_plus_1 + _name);
+		return (_plus + _name);
 	}
 
 	/**
@@ -189,31 +199,8 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
-		return "";
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String encode(final String str) {
-		try {
-			String _xifexpression = null;
-			boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(str);
-			if (_isNullOrEmpty) {
-				_xifexpression = "no-name";
-			}
-			else {
-				_xifexpression = URLEncoder.encode(str, StandardCharsets.UTF_8.toString());
-			}
-			return _xifexpression;
-		}
-		catch (Throwable _e) {
-			throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);
-		}
+	public String getEncodedQualifiedName() {
+		return AmaltheaExtensions.toEncodedString(this.getQualifiedNameSegments());
 	}
 
 	/**
@@ -232,6 +219,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__CUSTOM_PROPERTIES:
@@ -253,6 +333,8 @@
 				else return getCustomProperties().map();
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__NAME:
 				return getName();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__UNIQUE_NAME:
 				return getUniqueName();
 		}
@@ -307,6 +389,8 @@
 				return customProperties != null && !customProperties.isEmpty();
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT__UNIQUE_NAME:
 				return UNIQUE_NAME_EDEFAULT == null ? getUniqueName() != null : !UNIQUE_NAME_EDEFAULT.equals(getUniqueName());
 		}
@@ -323,6 +407,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.REFERABLE_BASE_OBJECT__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -345,6 +430,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.REFERABLE_BASE_OBJECT__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.REFERABLE_BASE_OBJECT__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -366,13 +452,18 @@
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
 		if (baseClass == INamed.class) {
 			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS;
 				default: return -1;
 			}
 		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX;
-				case AmaltheaPackage.IREFERABLE___ENCODE__STRING: return AmaltheaPackage.REFERABLE_BASE_OBJECT___ENCODE__STRING;
+				case AmaltheaPackage.IREFERABLE___GET_ENCODED_QUALIFIED_NAME: return AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME;
 				case AmaltheaPackage.IREFERABLE___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP: return AmaltheaPackage.REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP;
 				default: return -1;
 			}
@@ -389,12 +480,22 @@
 	@SuppressWarnings("unchecked")
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX:
-				return getNamePrefix();
-			case AmaltheaPackage.REFERABLE_BASE_OBJECT___ENCODE__STRING:
-				return encode((String)arguments.get(0));
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_ENCODED_QUALIFIED_NAME:
+				return getEncodedQualifiedName();
 			case AmaltheaPackage.REFERABLE_BASE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
 				return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 		}
 		return super.eInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableObjectImpl.java
index e5fcc28..40decd8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferableObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,14 +16,13 @@
 
 import java.lang.reflect.InvocationTargetException;
 
-import java.net.URLEncoder;
-
-import java.nio.charset.StandardCharsets;
-
 import java.util.Map;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.AmaltheaValidations;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.ReferableObject;
 
 import org.eclipse.app4mc.amalthea.sphinx.AmaltheaExtendedEObjectImpl;
@@ -34,10 +33,11 @@
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
-import org.eclipse.xtext.xbase.lib.StringExtensions;
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
 
 /**
  * <!-- begin-user-doc -->
@@ -48,6 +48,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableObjectImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableObjectImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.ReferableObjectImpl#getUniqueName <em>Unique Name</em>}</li>
  * </ul>
  *
@@ -75,6 +76,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The default value of the '{@link #getUniqueName() <em>Unique Name</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -132,21 +143,21 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String getUniqueName() {
-		String _xifexpression = null;
-		boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(this.getNamePrefix());
-		if (_isNullOrEmpty) {
-			_xifexpression = "";
-		}
-		else {
-			String _encode = this.encode(this.getNamePrefix());
-			_xifexpression = (_encode + "/");
-		}
-		String _encode_1 = this.encode(this.getName());
-		String _plus = (_xifexpression + _encode_1);
-		String _plus_1 = (_plus + "?type=");
+		String _encodedQualifiedName = this.getEncodedQualifiedName();
+		String _plus = (_encodedQualifiedName + "?type=");
 		String _name = this.eClass().getName();
-		return (_plus_1 + _name);
+		return (_plus + _name);
 	}
 
 	/**
@@ -155,31 +166,8 @@
 	 * @generated
 	 */
 	@Override
-	public String getNamePrefix() {
-		return "";
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String encode(final String str) {
-		try {
-			String _xifexpression = null;
-			boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(str);
-			if (_isNullOrEmpty) {
-				_xifexpression = "no-name";
-			}
-			else {
-				_xifexpression = URLEncoder.encode(str, StandardCharsets.UTF_8.toString());
-			}
-			return _xifexpression;
-		}
-		catch (Throwable _e) {
-			throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(_e);
-		}
+	public String getEncodedQualifiedName() {
+		return AmaltheaExtensions.toEncodedString(this.getQualifiedNameSegments());
 	}
 
 	/**
@@ -198,10 +186,105 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
 			case AmaltheaPackage.REFERABLE_OBJECT__NAME:
 				return getName();
+			case AmaltheaPackage.REFERABLE_OBJECT__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.REFERABLE_OBJECT__UNIQUE_NAME:
 				return getUniqueName();
 		}
@@ -248,6 +331,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.REFERABLE_OBJECT__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.REFERABLE_OBJECT__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.REFERABLE_OBJECT__UNIQUE_NAME:
 				return UNIQUE_NAME_EDEFAULT == null ? getUniqueName() != null : !UNIQUE_NAME_EDEFAULT.equals(getUniqueName());
 		}
@@ -263,12 +348,22 @@
 	@SuppressWarnings("unchecked")
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX:
-				return getNamePrefix();
-			case AmaltheaPackage.REFERABLE_OBJECT___ENCODE__STRING:
-				return encode((String)arguments.get(0));
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_ENCODED_QUALIFIED_NAME:
+				return getEncodedQualifiedName();
 			case AmaltheaPackage.REFERABLE_OBJECT___VALIDATE_INVARIANTS__DIAGNOSTICCHAIN_MAP:
 				return validateInvariants((DiagnosticChain)arguments.get(0), (Map<Object, Object>)arguments.get(1));
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.REFERABLE_OBJECT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 		}
 		return super.eInvoke(operationID, arguments);
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferenceObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferenceObjectImpl.java
index 4560f85..08609ec 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferenceObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReferenceObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RelativePeriodicStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RelativePeriodicStimulusImpl.java
index 4ed1444..ef9a730 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RelativePeriodicStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RelativePeriodicStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RepetitionConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RepetitionConstraintImpl.java
index 00ef410..de118de 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RepetitionConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RepetitionConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementImpl.java
index c03f446..5c4e6ee 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,8 +14,12 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.Requirement;
 import org.eclipse.app4mc.amalthea.model.RequirementLimit;
 import org.eclipse.app4mc.amalthea.model.Severity;
@@ -23,11 +27,16 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Requirement</b></em>'.
@@ -37,6 +46,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RequirementImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RequirementImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RequirementImpl#getSeverity <em>Severity</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RequirementImpl#getLimit <em>Limit</em>}</li>
  * </ul>
@@ -65,6 +75,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The default value of the '{@link #getSeverity() <em>Severity</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -142,6 +162,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Severity getSeverity() {
 		return severity;
 	}
@@ -210,6 +240,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.REQUIREMENT__LIMIT:
@@ -228,6 +351,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.REQUIREMENT__NAME:
 				return getName();
+			case AmaltheaPackage.REQUIREMENT__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.REQUIREMENT__SEVERITY:
 				return getSeverity();
 			case AmaltheaPackage.REQUIREMENT__LIMIT:
@@ -288,6 +413,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.REQUIREMENT__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.REQUIREMENT__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.REQUIREMENT__SEVERITY:
 				return severity != SEVERITY_EDEFAULT;
 			case AmaltheaPackage.REQUIREMENT__LIMIT:
@@ -306,6 +433,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.REQUIREMENT__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.REQUIREMENT__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -322,6 +450,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.REQUIREMENT__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.REQUIREMENT__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -334,6 +463,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.REQUIREMENT___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.REQUIREMENT___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.REQUIREMENT___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.REQUIREMENT___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.REQUIREMENT___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.REQUIREMENT___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.REQUIREMENT___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.REQUIREMENT___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.REQUIREMENT___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.REQUIREMENT___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementLimitImpl.java
index 50f8a95..b461994 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReservationBasedServerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReservationBasedServerImpl.java
index 35ec105..2381093 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReservationBasedServerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ReservationBasedServerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunEntityCallStatisticImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunEntityCallStatisticImpl.java
index 9cdf463..c9fef30 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunEntityCallStatisticImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunEntityCallStatisticImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationConstraintImpl.java
index 3b7ccf3..dd69f8f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationImpl.java
index 1d66590..88d892a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableAllocationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableCallImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableCallImpl.java
index df886f9..162d537 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableCallImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableCallImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -55,7 +55,7 @@
  *
  * @generated
  */
-public class RunnableCallImpl extends CallGraphItemImpl implements RunnableCall {
+public class RunnableCallImpl extends ActivityGraphItemImpl implements RunnableCall {
 	/**
 	 * The cached value of the '{@link #getTags() <em>Tags</em>}' reference list.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintImpl.java
index b311104..59065bc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintTargetImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintTargetImpl.java
index 0aca5d3..8388bf3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintTargetImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableConstraintTargetImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEntityGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEntityGroupImpl.java
index dcca142..3004116 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEntityGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEntityGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEventImpl.java
index 6769ddd..3d9a820 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableGroupImpl.java
index 28feb3b..a2d0611 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
index f3b61e3..d7ceb25 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -20,13 +20,15 @@
 
 import org.eclipse.app4mc.amalthea.model.ASILType;
 import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunction;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.RunnableCall;
 import org.eclipse.app4mc.amalthea.model.RunnableParameter;
 import org.eclipse.app4mc.amalthea.model.Section;
@@ -56,9 +58,10 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getExecutionCondition <em>Execution Condition</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getParameters <em>Parameters</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getCallGraph <em>Call Graph</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getActivityGraph <em>Activity Graph</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#getActivations <em>Activations</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#isCallback <em>Callback</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableImpl#isService <em>Service</em>}</li>
@@ -72,6 +75,16 @@
  */
 public class RunnableImpl extends AbstractMemoryElementImpl implements org.eclipse.app4mc.amalthea.model.Runnable {
 	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
 	 * The cached value of the '{@link #getExecutionCondition() <em>Execution Condition</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -92,14 +105,14 @@
 	protected EList<RunnableParameter> parameters;
 
 	/**
-	 * The cached value of the '{@link #getCallGraph() <em>Call Graph</em>}' containment reference.
+	 * The cached value of the '{@link #getActivityGraph() <em>Activity Graph</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
-	 * @see #getCallGraph()
+	 * @see #getActivityGraph()
 	 * @generated
 	 * @ordered
 	 */
-	protected CallGraph callGraph;
+	protected ActivityGraph activityGraph;
 
 	/**
 	 * The cached value of the '{@link #getActivations() <em>Activations</em>}' reference list.
@@ -206,6 +219,46 @@
 	 * @generated
 	 */
 	@Override
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.RUNNABLE__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public ModeConditionDisjunction getExecutionCondition() {
 		return executionCondition;
 	}
@@ -264,8 +317,8 @@
 	 * @generated
 	 */
 	@Override
-	public CallGraph getCallGraph() {
-		return callGraph;
+	public ActivityGraph getActivityGraph() {
+		return activityGraph;
 	}
 
 	/**
@@ -273,11 +326,11 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public NotificationChain basicSetCallGraph(CallGraph newCallGraph, NotificationChain msgs) {
-		CallGraph oldCallGraph = callGraph;
-		callGraph = newCallGraph;
+	public NotificationChain basicSetActivityGraph(ActivityGraph newActivityGraph, NotificationChain msgs) {
+		ActivityGraph oldActivityGraph = activityGraph;
+		activityGraph = newActivityGraph;
 		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE__CALL_GRAPH, oldCallGraph, newCallGraph);
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH, oldActivityGraph, newActivityGraph);
 			if (msgs == null) msgs = notification; else msgs.add(notification);
 		}
 		return msgs;
@@ -289,18 +342,18 @@
 	 * @generated
 	 */
 	@Override
-	public void setCallGraph(CallGraph newCallGraph) {
-		if (newCallGraph != callGraph) {
+	public void setActivityGraph(ActivityGraph newActivityGraph) {
+		if (newActivityGraph != activityGraph) {
 			NotificationChain msgs = null;
-			if (callGraph != null)
-				msgs = ((InternalEObject)callGraph).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE__CALL_GRAPH, null, msgs);
-			if (newCallGraph != null)
-				msgs = ((InternalEObject)newCallGraph).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE__CALL_GRAPH, null, msgs);
-			msgs = basicSetCallGraph(newCallGraph, msgs);
+			if (activityGraph != null)
+				msgs = ((InternalEObject)activityGraph).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH, null, msgs);
+			if (newActivityGraph != null)
+				msgs = ((InternalEObject)newActivityGraph).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH, null, msgs);
+			msgs = basicSetActivityGraph(newActivityGraph, msgs);
 			if (msgs != null) msgs.dispatch();
 		}
 		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE__CALL_GRAPH, newCallGraph, newCallGraph));
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH, newActivityGraph, newActivityGraph));
 	}
 
 	/**
@@ -455,15 +508,15 @@
 	 * @generated
 	 */
 	@Override
-	public EList<CallGraphItem> getRunnableItems() {
-		EList<CallGraphItem> _xblockexpression = null;
+	public EList<ActivityGraphItem> getRunnableItems() {
+		EList<ActivityGraphItem> _xblockexpression = null;
 		{
-			CallGraph _callGraph = this.getCallGraph();
-			boolean _tripleEquals = (_callGraph == null);
+			ActivityGraph _activityGraph = this.getActivityGraph();
+			boolean _tripleEquals = (_activityGraph == null);
 			if (_tripleEquals) {
-				this.setCallGraph(AmaltheaFactory.eINSTANCE.createCallGraph());
+				this.setActivityGraph(AmaltheaFactory.eINSTANCE.createActivityGraph());
 			}
-			_xblockexpression = this.getCallGraph().getItems();
+			_xblockexpression = this.getActivityGraph().getItems();
 		}
 		return _xblockexpression;
 	}
@@ -505,8 +558,8 @@
 				return basicSetExecutionCondition(null, msgs);
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return ((InternalEList<?>)getParameters()).basicRemove(otherEnd, msgs);
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
-				return basicSetCallGraph(null, msgs);
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
+				return basicSetActivityGraph(null, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -519,12 +572,15 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 				return getExecutionCondition();
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return getParameters();
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
-				return getCallGraph();
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
+				return getActivityGraph();
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				return getActivations();
 			case AmaltheaPackage.RUNNABLE__CALLBACK:
@@ -553,6 +609,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 				setExecutionCondition((ModeConditionDisjunction)newValue);
 				return;
@@ -560,8 +619,8 @@
 				getParameters().clear();
 				getParameters().addAll((Collection<? extends RunnableParameter>)newValue);
 				return;
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
-				setCallGraph((CallGraph)newValue);
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
+				setActivityGraph((ActivityGraph)newValue);
 				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				getActivations().clear();
@@ -591,14 +650,17 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 				setExecutionCondition((ModeConditionDisjunction)null);
 				return;
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				getParameters().clear();
 				return;
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
-				setCallGraph((CallGraph)null);
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
+				setActivityGraph((ActivityGraph)null);
 				return;
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				getActivations().clear();
@@ -627,12 +689,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE__NAMESPACE:
+				return namespace != null;
 			case AmaltheaPackage.RUNNABLE__EXECUTION_CONDITION:
 				return executionCondition != null;
 			case AmaltheaPackage.RUNNABLE__PARAMETERS:
 				return parameters != null && !parameters.isEmpty();
-			case AmaltheaPackage.RUNNABLE__CALL_GRAPH:
-				return callGraph != null;
+			case AmaltheaPackage.RUNNABLE__ACTIVITY_GRAPH:
+				return activityGraph != null;
 			case AmaltheaPackage.RUNNABLE__ACTIVATIONS:
 				return activations != null && !activations.isEmpty();
 			case AmaltheaPackage.RUNNABLE__CALLBACK:
@@ -657,6 +721,38 @@
 	 * @generated
 	 */
 	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.RUNNABLE__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.RUNNABLE__NAMESPACE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
 			case AmaltheaPackage.RUNNABLE___GET_RUNNABLE_ITEMS:
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableMeasurementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableMeasurementImpl.java
index ccd127e..e5a1f63 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableMeasurementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableMeasurementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnablePairingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnablePairingConstraintImpl.java
index d98ee4d..6c61168 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnablePairingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnablePairingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableParameterImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableParameterImpl.java
index 3c64145..87544b5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableParameterImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableParameterImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -19,6 +19,8 @@
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.DataDependency;
 import org.eclipse.app4mc.amalthea.model.DirectionType;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
+import org.eclipse.app4mc.amalthea.model.INamed;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
 import org.eclipse.app4mc.amalthea.model.RunnableParameter;
@@ -27,6 +29,7 @@
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.BasicEList;
 import org.eclipse.emf.common.util.EList;
 
 import org.eclipse.emf.ecore.EClass;
@@ -34,6 +37,8 @@
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 import org.eclipse.xtext.xbase.lib.StringExtensions;
 
 /**
@@ -44,16 +49,26 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableParameterImpl#getDependsOn <em>Depends On</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableParameterImpl#getContainingRunnable <em>Containing Runnable</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableParameterImpl#getDirection <em>Direction</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableParameterImpl#getDataType <em>Data Type</em>}</li>
- *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.RunnableParameterImpl#getDependsOn <em>Depends On</em>}</li>
  * </ul>
  *
  * @generated
  */
 public class RunnableParameterImpl extends ReferableBaseObjectImpl implements RunnableParameter {
 	/**
+	 * The cached value of the '{@link #getDependsOn() <em>Depends On</em>}' containment reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDependsOn()
+	 * @generated
+	 * @ordered
+	 */
+	protected DataDependency dependsOn;
+
+	/**
 	 * The default value of the '{@link #getDirection() <em>Direction</em>}' attribute.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -84,16 +99,6 @@
 	protected TypeDefinition dataType;
 
 	/**
-	 * The cached value of the '{@link #getDependsOn() <em>Depends On</em>}' containment reference.
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @see #getDependsOn()
-	 * @generated
-	 * @ordered
-	 */
-	protected DataDependency dependsOn;
-
-	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
@@ -118,6 +123,51 @@
 	 * @generated
 	 */
 	@Override
+	public DataDependency getDependsOn() {
+		return dependsOn;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
+		DataDependency oldDependsOn = dependsOn;
+		dependsOn = newDependsOn;
+		if (eNotificationRequired()) {
+			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, oldDependsOn, newDependsOn);
+			if (msgs == null) msgs = notification; else msgs.add(notification);
+		}
+		return msgs;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDependsOn(DataDependency newDependsOn) {
+		if (newDependsOn != dependsOn) {
+			NotificationChain msgs = null;
+			if (dependsOn != null)
+				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, null, msgs);
+			if (newDependsOn != null)
+				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, null, msgs);
+			msgs = basicSetDependsOn(newDependsOn, msgs);
+			if (msgs != null) msgs.dispatch();
+		}
+		else if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, newDependsOn, newDependsOn));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public org.eclipse.app4mc.amalthea.model.Runnable getContainingRunnable() {
 		if (eContainerFeatureID() != AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE) return null;
 		return (org.eclipse.app4mc.amalthea.model.Runnable)eContainer();
@@ -202,58 +252,20 @@
 	 * @generated
 	 */
 	@Override
-	public DataDependency getDependsOn() {
-		return dependsOn;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public NotificationChain basicSetDependsOn(DataDependency newDependsOn, NotificationChain msgs) {
-		DataDependency oldDependsOn = dependsOn;
-		dependsOn = newDependsOn;
-		if (eNotificationRequired()) {
-			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, oldDependsOn, newDependsOn);
-			if (msgs == null) msgs = notification; else msgs.add(notification);
-		}
-		return msgs;
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public void setDependsOn(DataDependency newDependsOn) {
-		if (newDependsOn != dependsOn) {
-			NotificationChain msgs = null;
-			if (dependsOn != null)
-				msgs = ((InternalEObject)dependsOn).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, null, msgs);
-			if (newDependsOn != null)
-				msgs = ((InternalEObject)newDependsOn).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, null, msgs);
-			msgs = basicSetDependsOn(newDependsOn, msgs);
-			if (msgs != null) msgs.dispatch();
-		}
-		else if (eNotificationRequired())
-			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON, newDependsOn, newDependsOn));
-	}
-
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	@Override
-	public String getNamePrefix() {
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
 		org.eclipse.app4mc.amalthea.model.Runnable _containingRunnable = this.getContainingRunnable();
-		String _name = null;
+		EList<String> _qualifiedNameSegments = null;
 		if (_containingRunnable!=null) {
-			_name=_containingRunnable.getName();
+			_qualifiedNameSegments=_containingRunnable.getQualifiedNameSegments();
 		}
-		return _name;
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
 	}
 
 	/**
@@ -313,10 +325,10 @@
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
-			case AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE:
-				return eBasicSetContainer(null, AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE, msgs);
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
 				return basicSetDependsOn(null, msgs);
+			case AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE:
+				return eBasicSetContainer(null, AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE, msgs);
 		}
 		return super.eInverseRemove(otherEnd, featureID, msgs);
 	}
@@ -343,6 +355,8 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
+				return getDependsOn();
 			case AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE:
 				if (resolve) return getContainingRunnable();
 				return basicGetContainingRunnable();
@@ -351,8 +365,6 @@
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DATA_TYPE:
 				if (resolve) return getDataType();
 				return basicGetDataType();
-			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
-				return getDependsOn();
 		}
 		return super.eGet(featureID, resolve, coreType);
 	}
@@ -365,15 +377,15 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
+				setDependsOn((DataDependency)newValue);
+				return;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DIRECTION:
 				setDirection((DirectionType)newValue);
 				return;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DATA_TYPE:
 				setDataType((TypeDefinition)newValue);
 				return;
-			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
-				setDependsOn((DataDependency)newValue);
-				return;
 		}
 		super.eSet(featureID, newValue);
 	}
@@ -386,15 +398,15 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
+				setDependsOn((DataDependency)null);
+				return;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DIRECTION:
 				setDirection(DIRECTION_EDEFAULT);
 				return;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DATA_TYPE:
 				setDataType((TypeDefinition)null);
 				return;
-			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
-				setDependsOn((DataDependency)null);
-				return;
 		}
 		super.eUnset(featureID);
 	}
@@ -407,14 +419,14 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
+				return dependsOn != null;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__CONTAINING_RUNNABLE:
 				return basicGetContainingRunnable() != null;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DIRECTION:
 				return direction != DIRECTION_EDEFAULT;
 			case AmaltheaPackage.RUNNABLE_PARAMETER__DATA_TYPE:
 				return dataType != null;
-			case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON:
-				return dependsOn != null;
 		}
 		return super.eIsSet(featureID);
 	}
@@ -425,19 +437,62 @@
 	 * @generated
 	 */
 	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == IDependsOn.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON: return AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == IDependsOn.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.IDEPENDS_ON__DEPENDS_ON: return AmaltheaPackage.RUNNABLE_PARAMETER__DEPENDS_ON;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
 		if (baseClass == IReferable.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX: return AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX;
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
 		if (baseClass == ReferableBaseObject.class) {
 			switch (baseOperationID) {
-				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX: return AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX;
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS;
 				default: return super.eDerivedOperationID(baseOperationID, baseClass);
 			}
 		}
+		if (baseClass == IDependsOn.class) {
+			switch (baseOperationID) {
+				default: return -1;
+			}
+		}
 		return super.eDerivedOperationID(baseOperationID, baseClass);
 	}
 
@@ -449,8 +504,8 @@
 	@Override
 	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
 		switch (operationID) {
-			case AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX:
-				return getNamePrefix();
+			case AmaltheaPackage.RUNNABLE_PARAMETER___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
 			case AmaltheaPackage.RUNNABLE_PARAMETER___TO_STRING:
 				return toString();
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableRequirementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableRequirementImpl.java
index 71f4621..73a54af 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableRequirementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableRequirementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableScopeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableScopeImpl.java
index b4ef410..60cf611 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableScopeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableScopeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSeparationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSeparationConstraintImpl.java
index 7f60f4b..7e75eada 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSeparationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSeparationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSequencingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSequencingConstraintImpl.java
index 7fdca6d..2d3fd8b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSequencingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/RunnableSequencingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SWModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SWModelImpl.java
index c85a190..ef4883e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SWModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SWModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ScenarioImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ScenarioImpl.java
index cd3e58a..de55626 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ScenarioImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ScenarioImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulePointImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulePointImpl.java
index 964064b..5942367 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulePointImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulePointImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -26,7 +26,7 @@
  *
  * @generated
  */
-public class SchedulePointImpl extends CallGraphItemImpl implements SchedulePoint {
+public class SchedulePointImpl extends ActivityGraphItemImpl implements SchedulePoint {
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAllocationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAllocationImpl.java
index 940f45e..dc0dfeb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAllocationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAllocationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAssociationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAssociationImpl.java
index ef21f32..c64f131 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAssociationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerAssociationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerImpl.java
index ece7b32..775fc91 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulingParametersImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulingParametersImpl.java
index 3ad9489..33f8569 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulingParametersImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SchedulingParametersImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SectionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SectionImpl.java
index cf1e56e..2ace2a8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SectionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SectionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreAccessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreAccessImpl.java
index 5ca9842..2dd6023 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreAccessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreAccessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -42,7 +42,7 @@
  *
  * @generated
  */
-public class SemaphoreAccessImpl extends CallGraphItemImpl implements SemaphoreAccess {
+public class SemaphoreAccessImpl extends ActivityGraphItemImpl implements SemaphoreAccess {
 	/**
 	 * The cached value of the '{@link #getSemaphore() <em>Semaphore</em>}' reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreEventImpl.java
index d7b6cb5..fb346a2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreImpl.java
index ca44b61..813f7f5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SemaphoreImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverCommunicationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverCommunicationImpl.java
index 7c403d4..1e17ec6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverCommunicationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverCommunicationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -15,8 +15,8 @@
 package org.eclipse.app4mc.amalthea.model.impl;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.Label;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.SenderReceiverCommunication;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -41,7 +41,7 @@
  *
  * @generated
  */
-public abstract class SenderReceiverCommunicationImpl extends CallGraphItemImpl implements SenderReceiverCommunication {
+public abstract class SenderReceiverCommunicationImpl extends ActivityGraphItemImpl implements SenderReceiverCommunication {
 	/**
 	 * The default value of the '{@link #isBuffered() <em>Buffered</em>}' attribute.
 	 * <!-- begin-user-doc -->
@@ -80,7 +80,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Port port;
+	protected ComponentPort port;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -170,10 +170,10 @@
 	 * @generated
 	 */
 	@Override
-	public Port getPort() {
+	public ComponentPort getPort() {
 		if (port != null && port.eIsProxy()) {
 			InternalEObject oldPort = (InternalEObject)port;
-			port = (Port)eResolveProxy(oldPort);
+			port = (ComponentPort)eResolveProxy(oldPort);
 			if (port != oldPort) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.SENDER_RECEIVER_COMMUNICATION__PORT, oldPort, port));
@@ -187,7 +187,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port basicGetPort() {
+	public ComponentPort basicGetPort() {
 		return port;
 	}
 
@@ -197,8 +197,8 @@
 	 * @generated
 	 */
 	@Override
-	public void setPort(Port newPort) {
-		Port oldPort = port;
+	public void setPort(ComponentPort newPort) {
+		ComponentPort oldPort = port;
 		port = newPort;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.SENDER_RECEIVER_COMMUNICATION__PORT, oldPort, port));
@@ -239,7 +239,7 @@
 				setLabel((Label)newValue);
 				return;
 			case AmaltheaPackage.SENDER_RECEIVER_COMMUNICATION__PORT:
-				setPort((Port)newValue);
+				setPort((ComponentPort)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -260,7 +260,7 @@
 				setLabel((Label)null);
 				return;
 			case AmaltheaPackage.SENDER_RECEIVER_COMMUNICATION__PORT:
-				setPort((Port)null);
+				setPort((ComponentPort)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverReadImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverReadImpl.java
index c6e23ea..be98f61 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverReadImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverReadImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverWriteImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverWriteImpl.java
index 114ef86..4378b74 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverWriteImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SenderReceiverWriteImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SeparationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SeparationConstraintImpl.java
index ec069c3..251a8e2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SeparationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SeparationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ServerCallImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ServerCallImpl.java
index 5f0ab7a..a45735c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ServerCallImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ServerCallImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -15,7 +15,7 @@
 package org.eclipse.app4mc.amalthea.model.impl;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.Port;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ServerCall;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -39,7 +39,7 @@
  *
  * @generated
  */
-public abstract class ServerCallImpl extends CallGraphItemImpl implements ServerCall {
+public abstract class ServerCallImpl extends ActivityGraphItemImpl implements ServerCall {
 	/**
 	 * The cached value of the '{@link #getServerRunnable() <em>Server Runnable</em>}' reference.
 	 * <!-- begin-user-doc -->
@@ -58,7 +58,7 @@
 	 * @generated
 	 * @ordered
 	 */
-	protected Port port;
+	protected ComponentPort port;
 
 	/**
 	 * <!-- begin-user-doc -->
@@ -125,10 +125,10 @@
 	 * @generated
 	 */
 	@Override
-	public Port getPort() {
+	public ComponentPort getPort() {
 		if (port != null && port.eIsProxy()) {
 			InternalEObject oldPort = (InternalEObject)port;
-			port = (Port)eResolveProxy(oldPort);
+			port = (ComponentPort)eResolveProxy(oldPort);
 			if (port != oldPort) {
 				if (eNotificationRequired())
 					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.SERVER_CALL__PORT, oldPort, port));
@@ -142,7 +142,7 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Port basicGetPort() {
+	public ComponentPort basicGetPort() {
 		return port;
 	}
 
@@ -152,8 +152,8 @@
 	 * @generated
 	 */
 	@Override
-	public void setPort(Port newPort) {
-		Port oldPort = port;
+	public void setPort(ComponentPort newPort) {
+		ComponentPort oldPort = port;
 		port = newPort;
 		if (eNotificationRequired())
 			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.SERVER_CALL__PORT, oldPort, port));
@@ -189,7 +189,7 @@
 				setServerRunnable((org.eclipse.app4mc.amalthea.model.Runnable)newValue);
 				return;
 			case AmaltheaPackage.SERVER_CALL__PORT:
-				setPort((Port)newValue);
+				setPort((ComponentPort)newValue);
 				return;
 		}
 		super.eSet(featureID, newValue);
@@ -207,7 +207,7 @@
 				setServerRunnable((org.eclipse.app4mc.amalthea.model.Runnable)null);
 				return;
 			case AmaltheaPackage.SERVER_CALL__PORT:
-				setPort((Port)null);
+				setPort((ComponentPort)null);
 				return;
 		}
 		super.eUnset(featureID);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SetEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SetEventImpl.java
index e32d2b1..483e54c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SetEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SetEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -42,7 +42,7 @@
  *
  * @generated
  */
-public class SetEventImpl extends CallGraphItemImpl implements SetEvent {
+public class SetEventImpl extends ActivityGraphItemImpl implements SetEvent {
 	/**
 	 * The cached value of the '{@link #getEventMask() <em>Event Mask</em>}' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleActivationImpl.java
index 9986cd6..7b56eb4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleStimulusImpl.java
index 79ff11f..a56f9a0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleValueStatisticImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleValueStatisticImpl.java
index 4d9ad12..e9048ea 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleValueStatisticImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SingleValueStatisticImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicActivationImpl.java
index 86af0c9..938a56d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicServerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicServerImpl.java
index 4f58797..eb710a5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicServerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SporadicServerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimuliModelImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimuliModelImpl.java
index 628c90e..739c3bd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimuliModelImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimuliModelImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusEventImpl.java
index 92d608a..5acf3bb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusImpl.java
index ca5a4c4..b5d2d55 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StringObjectImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StringObjectImpl.java
index b7f30c7..a5e8eea 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StringObjectImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StringObjectImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructEntryImpl.java
index b07a390..1c00f2f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -14,19 +14,28 @@
  */
 package org.eclipse.app4mc.amalthea.model.impl;
 
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.DataType;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.notify.NotificationChain;
 
+import org.eclipse.emf.common.util.EList;
+
 import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
 
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
 /**
  * <!-- begin-user-doc -->
  * An implementation of the model object '<em><b>Struct Entry</b></em>'.
@@ -36,6 +45,7 @@
  * </p>
  * <ul>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.StructEntryImpl#getName <em>Name</em>}</li>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.StructEntryImpl#getQualifiedName <em>Qualified Name</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.StructEntryImpl#getDataType <em>Data Type</em>}</li>
  * </ul>
  *
@@ -63,6 +73,16 @@
 	protected String name = NAME_EDEFAULT;
 
 	/**
+	 * The default value of the '{@link #getQualifiedName() <em>Qualified Name</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getQualifiedName()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String QUALIFIED_NAME_EDEFAULT = null;
+
+	/**
 	 * The cached value of the '{@link #getDataType() <em>Data Type</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -120,6 +140,16 @@
 	 * @generated
 	 */
 	@Override
+	public String getQualifiedName() {
+		return AmaltheaExtensions.toPlainString(this.getQualifiedNameSegments(), this.getDefaultNameSeparator());
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public DataType getDataType() {
 		return dataType;
 	}
@@ -165,6 +195,99 @@
 	 * @generated
 	 */
 	@Override
+	public INamed getNamedContainer() {
+		INamed _xifexpression = null;
+		EObject _eContainer = this.eContainer();
+		if ((_eContainer instanceof INamed)) {
+			EObject _eContainer_1 = this.eContainer();
+			_xifexpression = ((INamed) _eContainer_1);
+		}
+		else {
+			_xifexpression = null;
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getNamePrefix() {
+		String _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			return "";
+		}
+		else {
+			_xifexpression = AmaltheaExtensions.toPlainString(this.getNamePrefixSegments(), this.getDefaultNameSeparator());
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getQualifiedNameSegments() {
+		final EList<String> segments = this.getNamePrefixSegments();
+		String _name = this.getName();
+		boolean _tripleNotEquals = (_name != null);
+		if (_tripleNotEquals) {
+			segments.add(this.getName());
+		}
+		return segments;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDefaultNameSeparator() {
+		return ".";
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Namespace getNamespace() {
+		return null;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _xifexpression = null;
+		Namespace _namespace = this.getNamespace();
+		boolean _tripleEquals = (_namespace == null);
+		if (_tripleEquals) {
+			_xifexpression = XcoreCollectionLiterals.<String>newBasicEList();
+		}
+		else {
+			_xifexpression = this.getNamespace().getQualifiedNameSegments();
+		}
+		return _xifexpression;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
 			case AmaltheaPackage.STRUCT_ENTRY__DATA_TYPE:
@@ -183,6 +306,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.STRUCT_ENTRY__NAME:
 				return getName();
+			case AmaltheaPackage.STRUCT_ENTRY__QUALIFIED_NAME:
+				return getQualifiedName();
 			case AmaltheaPackage.STRUCT_ENTRY__DATA_TYPE:
 				return getDataType();
 		}
@@ -235,6 +360,8 @@
 		switch (featureID) {
 			case AmaltheaPackage.STRUCT_ENTRY__NAME:
 				return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+			case AmaltheaPackage.STRUCT_ENTRY__QUALIFIED_NAME:
+				return QUALIFIED_NAME_EDEFAULT == null ? getQualifiedName() != null : !QUALIFIED_NAME_EDEFAULT.equals(getQualifiedName());
 			case AmaltheaPackage.STRUCT_ENTRY__DATA_TYPE:
 				return dataType != null;
 		}
@@ -251,6 +378,7 @@
 		if (baseClass == INamed.class) {
 			switch (derivedFeatureID) {
 				case AmaltheaPackage.STRUCT_ENTRY__NAME: return AmaltheaPackage.INAMED__NAME;
+				case AmaltheaPackage.STRUCT_ENTRY__QUALIFIED_NAME: return AmaltheaPackage.INAMED__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -267,6 +395,7 @@
 		if (baseClass == INamed.class) {
 			switch (baseFeatureID) {
 				case AmaltheaPackage.INAMED__NAME: return AmaltheaPackage.STRUCT_ENTRY__NAME;
+				case AmaltheaPackage.INAMED__QUALIFIED_NAME: return AmaltheaPackage.STRUCT_ENTRY__QUALIFIED_NAME;
 				default: return -1;
 			}
 		}
@@ -279,6 +408,51 @@
 	 * @generated
 	 */
 	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAMED_CONTAINER: return AmaltheaPackage.STRUCT_ENTRY___GET_NAMED_CONTAINER;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX: return AmaltheaPackage.STRUCT_ENTRY___GET_NAME_PREFIX;
+				case AmaltheaPackage.INAMED___GET_QUALIFIED_NAME_SEGMENTS: return AmaltheaPackage.STRUCT_ENTRY___GET_QUALIFIED_NAME_SEGMENTS;
+				case AmaltheaPackage.INAMED___GET_DEFAULT_NAME_SEPARATOR: return AmaltheaPackage.STRUCT_ENTRY___GET_DEFAULT_NAME_SEPARATOR;
+				case AmaltheaPackage.INAMED___GET_NAMESPACE: return AmaltheaPackage.STRUCT_ENTRY___GET_NAMESPACE;
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.STRUCT_ENTRY___GET_NAME_PREFIX_SEGMENTS;
+				default: return -1;
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.STRUCT_ENTRY___GET_NAMED_CONTAINER:
+				return getNamedContainer();
+			case AmaltheaPackage.STRUCT_ENTRY___GET_NAME_PREFIX:
+				return getNamePrefix();
+			case AmaltheaPackage.STRUCT_ENTRY___GET_QUALIFIED_NAME_SEGMENTS:
+				return getQualifiedNameSegments();
+			case AmaltheaPackage.STRUCT_ENTRY___GET_DEFAULT_NAME_SEPARATOR:
+				return getDefaultNameSeparator();
+			case AmaltheaPackage.STRUCT_ENTRY___GET_NAMESPACE:
+				return getNamespace();
+			case AmaltheaPackage.STRUCT_ENTRY___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public String toString() {
 		if (eIsProxy()) return super.toString();
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructImpl.java
index 9e43df3..f7a0f49 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/StructImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubEventChainImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubEventChainImpl.java
index 776c969..dfad2fd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubEventChainImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubEventChainImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubInterfaceImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubInterfaceImpl.java
new file mode 100644
index 0000000..dfd228c
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SubInterfaceImpl.java
@@ -0,0 +1,227 @@
+/**
+ * *******************************************************************************
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
+ * 
+ *  This program and the accompanying materials are made
+ *  available under the terms of the Eclipse Public License 2.0
+ *  which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ *  SPDX-License-Identifier: EPL-2.0
+ * 
+ *     Generated using Eclipse EMF
+ * 
+ * *******************************************************************************
+ */
+package org.eclipse.app4mc.amalthea.model.impl;
+
+import java.lang.reflect.InvocationTargetException;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.IReferable;
+import org.eclipse.app4mc.amalthea.model.ReferableBaseObject;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.xcore.lib.XcoreCollectionLiterals;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Sub Interface</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.SubInterfaceImpl#getContainingInterface <em>Containing Interface</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class SubInterfaceImpl extends ComponentInterfaceImpl implements SubInterface {
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected SubInterfaceImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return AmaltheaPackage.eINSTANCE.getSubInterface();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public ComponentInterface getContainingInterface() {
+		if (eContainerFeatureID() != AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE) return null;
+		return (ComponentInterface)eContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public ComponentInterface basicGetContainingInterface() {
+		if (eContainerFeatureID() != AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE) return null;
+		return (ComponentInterface)eInternalContainer();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EList<String> getNamePrefixSegments() {
+		EList<String> _elvis = null;
+		ComponentInterface _containingInterface = this.getContainingInterface();
+		EList<String> _qualifiedNameSegments = null;
+		if (_containingInterface!=null) {
+			_qualifiedNameSegments=_containingInterface.getQualifiedNameSegments();
+		}
+		if (_qualifiedNameSegments != null) {
+			_elvis = _qualifiedNameSegments;
+		} else {
+			BasicEList<String> _newBasicEList = XcoreCollectionLiterals.<String>newBasicEList();
+			_elvis = _newBasicEList;
+		}
+		return _elvis;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE:
+				if (eInternalContainer() != null)
+					msgs = eBasicRemoveFromContainer(msgs);
+				return eBasicSetContainer(otherEnd, AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE:
+				return eBasicSetContainer(null, AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE, msgs);
+		}
+		return super.eInverseRemove(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+		switch (eContainerFeatureID()) {
+			case AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE:
+				return eInternalContainer().eInverseRemove(this, AmaltheaPackage.COMPONENT_INTERFACE__SUB_INTERFACES, ComponentInterface.class, msgs);
+		}
+		return super.eBasicRemoveFromContainerFeature(msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE:
+				if (resolve) return getContainingInterface();
+				return basicGetContainingInterface();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case AmaltheaPackage.SUB_INTERFACE__CONTAINING_INTERFACE:
+				return basicGetContainingInterface() != null;
+		}
+		return super.eIsSet(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedOperationID(int baseOperationID, Class<?> baseClass) {
+		if (baseClass == INamed.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.INAMED___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == IReferable.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.IREFERABLE___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		if (baseClass == ReferableBaseObject.class) {
+			switch (baseOperationID) {
+				case AmaltheaPackage.REFERABLE_BASE_OBJECT___GET_NAME_PREFIX_SEGMENTS: return AmaltheaPackage.SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS;
+				default: return super.eDerivedOperationID(baseOperationID, baseClass);
+			}
+		}
+		return super.eDerivedOperationID(baseOperationID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException {
+		switch (operationID) {
+			case AmaltheaPackage.SUB_INTERFACE___GET_NAME_PREFIX_SEGMENTS:
+				return getNamePrefixSegments();
+		}
+		return super.eInvoke(operationID, arguments);
+	}
+
+} //SubInterfaceImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronizationConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronizationConstraintImpl.java
index d1f5864..4bbe323 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronizationConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronizationConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronousServerCallImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronousServerCallImpl.java
index c055be0..b3b02cc 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronousServerCallImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SynchronousServerCallImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SystemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SystemImpl.java
index 4abae7c..266104a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SystemImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/SystemImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -33,6 +33,7 @@
 import org.eclipse.emf.ecore.InternalEObject;
 
 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
 import org.eclipse.emf.ecore.util.InternalEList;
 
@@ -134,7 +135,7 @@
 	@Override
 	public EList<ComponentInstance> getComponentInstances() {
 		if (componentInstances == null) {
-			componentInstances = new EObjectContainmentEList<ComponentInstance>(ComponentInstance.class, this, AmaltheaPackage.SYSTEM__COMPONENT_INSTANCES);
+			componentInstances = new EObjectContainmentWithInverseEList<ComponentInstance>(ComponentInstance.class, this, AmaltheaPackage.SYSTEM__COMPONENT_INSTANCES, AmaltheaPackage.COMPONENT_INSTANCE__CONTAINING_SYSTEM);
 		}
 		return componentInstances;
 	}
@@ -147,7 +148,7 @@
 	@Override
 	public EList<Connector> getConnectors() {
 		if (connectors == null) {
-			connectors = new EObjectContainmentEList<Connector>(Connector.class, this, AmaltheaPackage.SYSTEM__CONNECTORS);
+			connectors = new EObjectContainmentWithInverseEList<Connector>(Connector.class, this, AmaltheaPackage.SYSTEM__CONNECTORS, AmaltheaPackage.CONNECTOR__CONTAINING_SYSTEM);
 		}
 		return connectors;
 	}
@@ -180,6 +181,23 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	@SuppressWarnings("unchecked")
+	@Override
+	public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+		switch (featureID) {
+			case AmaltheaPackage.SYSTEM__COMPONENT_INSTANCES:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getComponentInstances()).basicAdd(otherEnd, msgs);
+			case AmaltheaPackage.SYSTEM__CONNECTORS:
+				return ((InternalEList<InternalEObject>)(InternalEList<?>)getConnectors()).basicAdd(otherEnd, msgs);
+		}
+		return super.eInverseAdd(otherEnd, featureID, msgs);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	@Override
 	public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
 		switch (featureID) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagGroupImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagGroupImpl.java
index 8be3055..3455d17 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagGroupImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagGroupImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagImpl.java
index 3df6778..926ff5d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TagImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetCoreImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetCoreImpl.java
index 673c38d..5f2999f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetCoreImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetCoreImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetMemoryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetMemoryImpl.java
index ee82248..dde95d4 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetMemoryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetMemoryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetSchedulerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetSchedulerImpl.java
index eb70088..dc2c88a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetSchedulerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TargetSchedulerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskAllocationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskAllocationImpl.java
index aa3da8f..2051a87 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskAllocationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskAllocationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskImpl.java
index c3cec10..eaea90a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskMeasurementImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskMeasurementImpl.java
index 9ff23c4..4518df9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskMeasurementImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskMeasurementImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulerImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulerImpl.java
index 1d63797..3296732 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulerImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulerImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulingAlgorithmImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulingAlgorithmImpl.java
index c240dcb..b60a504 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulingAlgorithmImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TaskSchedulingAlgorithmImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TerminateProcessImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TerminateProcessImpl.java
index b83c50b..4b7157c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TerminateProcessImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TerminateProcessImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -39,7 +39,7 @@
  *
  * @generated
  */
-public class TerminateProcessImpl extends CallGraphItemImpl implements TerminateProcess {
+public class TerminateProcessImpl extends ActivityGraphItemImpl implements TerminateProcess {
 	/**
 	 * The cached value of the '{@link #getCounter() <em>Counter</em>}' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksEntryImpl.java
index dd55cbe..538e436 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksImpl.java
index 4f0a0ac..60d5fc6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TicksImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBetaDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBetaDistributionImpl.java
index 7d7e311..7050869 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBetaDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBetaDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBoundariesImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBoundariesImpl.java
index 23c8cb5..614c563 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBoundariesImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeBoundariesImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeConstantImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeConstantImpl.java
index 50b5d46..04c5aef 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeConstantImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeConstantImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeGaussDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeGaussDistributionImpl.java
index 6c1bf2b..e9bae34 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeGaussDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeGaussDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramEntryImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramEntryImpl.java
index 033645c..af5627d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramEntryImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramEntryImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramImpl.java
index 9cd93d9..6c0a882 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeHistogramImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeImpl.java
index 41554d7..af4bc5e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeIntervalImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeIntervalImpl.java
index 603689c..d83a777 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeIntervalImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeIntervalImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeRequirementLimitImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeRequirementLimitImpl.java
index 81a8f70..2faa603 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeRequirementLimitImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeRequirementLimitImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeStatisticsImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeStatisticsImpl.java
index 5ba5048..f66ff07 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeStatisticsImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeStatisticsImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeUniformDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeUniformDistributionImpl.java
index ac275a5..91df620 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeUniformDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeUniformDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeWeibullEstimatorsDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeWeibullEstimatorsDistributionImpl.java
index 945437a..5baa3e0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeWeibullEstimatorsDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimeWeibullEstimatorsDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimingConstraintImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimingConstraintImpl.java
index ac2f186..5e55564 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimingConstraintImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TimingConstraintImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TransmissionPolicyImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TransmissionPolicyImpl.java
index 7954bdc..34a5605 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TransmissionPolicyImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TransmissionPolicyImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TriggerEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TriggerEventImpl.java
index 5c630a1..46a1775 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TriggerEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TriggerEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedContinuousValueDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedContinuousValueDistributionImpl.java
index 242ad19..9ea144c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedContinuousValueDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedContinuousValueDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedDiscreteValueDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedDiscreteValueDistributionImpl.java
index 0be0e11..b54fca3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedDiscreteValueDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedDiscreteValueDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedTimeDistributionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedTimeDistributionImpl.java
index 0dd0f53..b19c149 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedTimeDistributionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TruncatedTimeDistributionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeDefinitionImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeDefinitionImpl.java
index c9ecd77..059d33d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeDefinitionImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeDefinitionImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -16,6 +16,8 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.DataSize;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.TypeDefinition;
 
 import org.eclipse.emf.common.notify.Notification;
@@ -34,6 +36,7 @@
  * The following features are implemented:
  * </p>
  * <ul>
+ *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.TypeDefinitionImpl#getNamespace <em>Namespace</em>}</li>
  *   <li>{@link org.eclipse.app4mc.amalthea.model.impl.TypeDefinitionImpl#getSize <em>Size</em>}</li>
  * </ul>
  *
@@ -41,6 +44,16 @@
  */
 public abstract class TypeDefinitionImpl extends ReferableBaseObjectImpl implements TypeDefinition {
 	/**
+	 * The cached value of the '{@link #getNamespace() <em>Namespace</em>}' reference.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getNamespace()
+	 * @generated
+	 * @ordered
+	 */
+	protected Namespace namespace;
+
+	/**
 	 * The cached value of the '{@link #getSize() <em>Size</em>}' containment reference.
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
@@ -75,6 +88,46 @@
 	 * @generated
 	 */
 	@Override
+	public Namespace getNamespace() {
+		if (namespace != null && namespace.eIsProxy()) {
+			InternalEObject oldNamespace = (InternalEObject)namespace;
+			namespace = (Namespace)eResolveProxy(oldNamespace);
+			if (namespace != oldNamespace) {
+				if (eNotificationRequired())
+					eNotify(new ENotificationImpl(this, Notification.RESOLVE, AmaltheaPackage.TYPE_DEFINITION__NAMESPACE, oldNamespace, namespace));
+			}
+		}
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public Namespace basicGetNamespace() {
+		return namespace;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setNamespace(Namespace newNamespace) {
+		Namespace oldNamespace = namespace;
+		namespace = newNamespace;
+		if (eNotificationRequired())
+			eNotify(new ENotificationImpl(this, Notification.SET, AmaltheaPackage.TYPE_DEFINITION__NAMESPACE, oldNamespace, namespace));
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
 	public DataSize getSize() {
 		return size;
 	}
@@ -136,6 +189,9 @@
 	@Override
 	public Object eGet(int featureID, boolean resolve, boolean coreType) {
 		switch (featureID) {
+			case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE:
+				if (resolve) return getNamespace();
+				return basicGetNamespace();
 			case AmaltheaPackage.TYPE_DEFINITION__SIZE:
 				return getSize();
 		}
@@ -150,6 +206,9 @@
 	@Override
 	public void eSet(int featureID, Object newValue) {
 		switch (featureID) {
+			case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE:
+				setNamespace((Namespace)newValue);
+				return;
 			case AmaltheaPackage.TYPE_DEFINITION__SIZE:
 				setSize((DataSize)newValue);
 				return;
@@ -165,6 +224,9 @@
 	@Override
 	public void eUnset(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE:
+				setNamespace((Namespace)null);
+				return;
 			case AmaltheaPackage.TYPE_DEFINITION__SIZE:
 				setSize((DataSize)null);
 				return;
@@ -180,10 +242,44 @@
 	@Override
 	public boolean eIsSet(int featureID) {
 		switch (featureID) {
+			case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE:
+				return namespace != null;
 			case AmaltheaPackage.TYPE_DEFINITION__SIZE:
 				return size != null;
 		}
 		return super.eIsSet(featureID);
 	}
 
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (derivedFeatureID) {
+				case AmaltheaPackage.TYPE_DEFINITION__NAMESPACE: return AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE;
+				default: return -1;
+			}
+		}
+		return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+		if (baseClass == INamespaceMember.class) {
+			switch (baseFeatureID) {
+				case AmaltheaPackage.INAMESPACE_MEMBER__NAMESPACE: return AmaltheaPackage.TYPE_DEFINITION__NAMESPACE;
+				default: return -1;
+			}
+		}
+		return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+	}
+
 } //TypeDefinitionImpl
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeRefImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeRefImpl.java
index ce25800..a9ac017 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeRefImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/TypeRefImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/UserSpecificSchedulingAlgorithmImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/UserSpecificSchedulingAlgorithmImpl.java
index 9ace9d3..d3fbcb6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/UserSpecificSchedulingAlgorithmImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/UserSpecificSchedulingAlgorithmImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ValueImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ValueImpl.java
index 2b54dee..c247454 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ValueImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/ValueImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateActivationImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateActivationImpl.java
index 5a553f6..ea880d7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateActivationImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateActivationImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateStimulusImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateStimulusImpl.java
index 8f8041d..15bf07c 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateStimulusImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VariableRateStimulusImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VendorOperatingSystemImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VendorOperatingSystemImpl.java
index 845106d..7c59281 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VendorOperatingSystemImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VendorOperatingSystemImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VoltageImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VoltageImpl.java
index d9d8cc5..07d2468 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VoltageImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/VoltageImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/WaitEventImpl.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/WaitEventImpl.java
index 97bbd00..1fcc698 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/WaitEventImpl.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/impl/WaitEventImpl.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -45,7 +45,7 @@
  *
  * @generated
  */
-public class WaitEventImpl extends CallGraphItemImpl implements WaitEvent {
+public class WaitEventImpl extends ActivityGraphItemImpl implements WaitEvent {
 	/**
 	 * The cached value of the '{@link #getEventMask() <em>Event Mask</em>}' containment reference.
 	 * <!-- begin-user-doc -->
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaAdapterFactory.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaAdapterFactory.java
index 95765fd..7234148 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaAdapterFactory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaAdapterFactory.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -22,6 +22,8 @@
 import org.eclipse.app4mc.amalthea.model.AbstractProcess;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AffinityConstraint;
 import org.eclipse.app4mc.amalthea.model.Algorithm;
 import org.eclipse.app4mc.amalthea.model.Alias;
@@ -43,8 +45,6 @@
 import org.eclipse.app4mc.amalthea.model.Cache;
 import org.eclipse.app4mc.amalthea.model.CacheDefinition;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ChannelAccess;
@@ -62,7 +62,10 @@
 import org.eclipse.app4mc.amalthea.model.Component;
 import org.eclipse.app4mc.amalthea.model.ComponentEvent;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
 import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.CompoundType;
@@ -173,13 +176,18 @@
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
 import org.eclipse.app4mc.amalthea.model.HwPort;
 import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.IAnnotatable;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
 import org.eclipse.app4mc.amalthea.model.IContinuousValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
 import org.eclipse.app4mc.amalthea.model.IDescription;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ISR;
 import org.eclipse.app4mc.amalthea.model.ISRAllocation;
@@ -189,7 +197,6 @@
 import org.eclipse.app4mc.amalthea.model.IntegerObject;
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.InterruptSchedulingAlgorithm;
 import org.eclipse.app4mc.amalthea.model.Label;
@@ -201,6 +208,7 @@
 import org.eclipse.app4mc.amalthea.model.LeastLocalRemainingExecutionTimeFirst;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
 import org.eclipse.app4mc.amalthea.model.Measurement;
 import org.eclipse.app4mc.amalthea.model.MeasurementModel;
@@ -227,6 +235,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeValue;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.NumericMode;
 import org.eclipse.app4mc.amalthea.model.NumericStatistic;
@@ -253,7 +262,6 @@
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
 import org.eclipse.app4mc.amalthea.model.Pointer;
 import org.eclipse.app4mc.amalthea.model.PollingPeriodicServer;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.PowerDomain;
 import org.eclipse.app4mc.amalthea.model.PriorityBased;
 import org.eclipse.app4mc.amalthea.model.PriorityBasedRoundRobin;
@@ -333,6 +341,7 @@
 import org.eclipse.app4mc.amalthea.model.Struct;
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronizationConstraint;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
 import org.eclipse.app4mc.amalthea.model.Tag;
@@ -483,10 +492,18 @@
 				return createIDescriptionAdapter();
 			}
 			@Override
+			public Adapter caseINamespaceMember(INamespaceMember object) {
+				return createINamespaceMemberAdapter();
+			}
+			@Override
 			public Adapter caseTag(Tag object) {
 				return createTagAdapter();
 			}
 			@Override
+			public Adapter caseNamespace(Namespace object) {
+				return createNamespaceAdapter();
+			}
+			@Override
 			public Adapter caseClassifier(Classifier object) {
 				return createClassifierAdapter();
 			}
@@ -767,12 +784,40 @@
 				return createComponentsModelAdapter();
 			}
 			@Override
+			public Adapter caseIComponentContainer(IComponentContainer object) {
+				return createIComponentContainerAdapter();
+			}
+			@Override
+			public Adapter caseIInterfaceContainer(IInterfaceContainer object) {
+				return createIInterfaceContainerAdapter();
+			}
+			@Override
 			public Adapter caseISystem(ISystem object) {
 				return createISystemAdapter();
 			}
 			@Override
-			public Adapter casePort(Port object) {
-				return createPortAdapter();
+			public Adapter caseComponentInterface(ComponentInterface object) {
+				return createComponentInterfaceAdapter();
+			}
+			@Override
+			public Adapter caseMainInterface(MainInterface object) {
+				return createMainInterfaceAdapter();
+			}
+			@Override
+			public Adapter caseSubInterface(SubInterface object) {
+				return createSubInterfaceAdapter();
+			}
+			@Override
+			public Adapter caseComponentPort(ComponentPort object) {
+				return createComponentPortAdapter();
+			}
+			@Override
+			public Adapter caseComponentStructure(ComponentStructure object) {
+				return createComponentStructureAdapter();
+			}
+			@Override
+			public Adapter caseIComponentStructureMember(IComponentStructureMember object) {
+				return createIComponentStructureMemberAdapter();
 			}
 			@Override
 			public Adapter caseComponent(Component object) {
@@ -795,12 +840,12 @@
 				return createConnectorAdapter();
 			}
 			@Override
-			public Adapter caseQualifiedPort(QualifiedPort object) {
-				return createQualifiedPortAdapter();
+			public Adapter caseInterfaceChannel(Map.Entry<ComponentInterface, Channel> object) {
+				return createInterfaceChannelAdapter();
 			}
 			@Override
-			public Adapter caseInterfacePort(InterfacePort object) {
-				return createInterfacePortAdapter();
+			public Adapter caseQualifiedPort(QualifiedPort object) {
+				return createQualifiedPortAdapter();
 			}
 			@Override
 			public Adapter caseConfigModel(ConfigModel object) {
@@ -1591,16 +1636,16 @@
 				return createProcessAdapter();
 			}
 			@Override
-			public Adapter caseICallGraphItemContainer(ICallGraphItemContainer object) {
-				return createICallGraphItemContainerAdapter();
+			public Adapter caseIActivityGraphItemContainer(IActivityGraphItemContainer object) {
+				return createIActivityGraphItemContainerAdapter();
 			}
 			@Override
-			public Adapter caseCallGraph(CallGraph object) {
-				return createCallGraphAdapter();
+			public Adapter caseActivityGraph(ActivityGraph object) {
+				return createActivityGraphAdapter();
 			}
 			@Override
-			public Adapter caseCallGraphItem(CallGraphItem object) {
-				return createCallGraphItemAdapter();
+			public Adapter caseActivityGraphItem(ActivityGraphItem object) {
+				return createActivityGraphItemAdapter();
 			}
 			@Override
 			public Adapter caseModeSwitch(ModeSwitch object) {
@@ -1691,6 +1736,10 @@
 				return createOrderPrecedenceSpecAdapter();
 			}
 			@Override
+			public Adapter caseIDependsOn(IDependsOn object) {
+				return createIDependsOnAdapter();
+			}
+			@Override
 			public Adapter caseDataDependency(DataDependency object) {
 				return createDataDependencyAdapter();
 			}
@@ -2081,6 +2130,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.INamespaceMember <em>INamespace Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.INamespaceMember
+	 * @generated
+	 */
+	public Adapter createINamespaceMemberAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.Tag <em>Tag</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -2095,6 +2158,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.Namespace <em>Namespace</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.Namespace
+	 * @generated
+	 */
+	public Adapter createNamespaceAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.Classifier <em>Classifier</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -3075,6 +3152,34 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.IComponentContainer <em>IComponent Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentContainer
+	 * @generated
+	 */
+	public Adapter createIComponentContainerAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.IInterfaceContainer <em>IInterface Container</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.IInterfaceContainer
+	 * @generated
+	 */
+	public Adapter createIInterfaceContainerAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ISystem <em>ISystem</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -3089,16 +3194,86 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.Port <em>Port</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ComponentInterface <em>Component Interface</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.app4mc.amalthea.model.Port
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentInterface
 	 * @generated
 	 */
-	public Adapter createPortAdapter() {
+	public Adapter createComponentInterfaceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.MainInterface <em>Main Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.MainInterface
+	 * @generated
+	 */
+	public Adapter createMainInterfaceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.SubInterface <em>Sub Interface</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.SubInterface
+	 * @generated
+	 */
+	public Adapter createSubInterfaceAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ComponentPort <em>Component Port</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentPort
+	 * @generated
+	 */
+	public Adapter createComponentPortAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ComponentStructure <em>Component Structure</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.ComponentStructure
+	 * @generated
+	 */
+	public Adapter createComponentStructureAdapter() {
+		return null;
+	}
+
+	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.IComponentStructureMember <em>IComponent Structure Member</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.IComponentStructureMember
+	 * @generated
+	 */
+	public Adapter createIComponentStructureMemberAdapter() {
 		return null;
 	}
 
@@ -3173,6 +3348,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link java.util.Map.Entry <em>Interface Channel</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see java.util.Map.Entry
+	 * @generated
+	 */
+	public Adapter createInterfaceChannelAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.QualifiedPort <em>Qualified Port</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -3187,20 +3376,6 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.InterfacePort <em>Interface Port</em>}'.
-	 * <!-- begin-user-doc -->
-	 * This default implementation returns null so that we can easily ignore cases;
-	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
-	 * <!-- end-user-doc -->
-	 * @return the new adapter.
-	 * @see org.eclipse.app4mc.amalthea.model.InterfacePort
-	 * @generated
-	 */
-	public Adapter createInterfacePortAdapter() {
-		return null;
-	}
-
-	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ConfigModel <em>Config Model</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
@@ -5959,44 +6134,44 @@
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer <em>ICall Graph Item Container</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer <em>IActivity Graph Item Container</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer
+	 * @see org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer
 	 * @generated
 	 */
-	public Adapter createICallGraphItemContainerAdapter() {
+	public Adapter createIActivityGraphItemContainerAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.CallGraph <em>Call Graph</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ActivityGraph <em>Activity Graph</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraph
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraph
 	 * @generated
 	 */
-	public Adapter createCallGraphAdapter() {
+	public Adapter createActivityGraphAdapter() {
 		return null;
 	}
 
 	/**
-	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.CallGraphItem <em>Call Graph Item</em>}'.
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.ActivityGraphItem <em>Activity Graph Item</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
 	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
 	 * <!-- end-user-doc -->
 	 * @return the new adapter.
-	 * @see org.eclipse.app4mc.amalthea.model.CallGraphItem
+	 * @see org.eclipse.app4mc.amalthea.model.ActivityGraphItem
 	 * @generated
 	 */
-	public Adapter createCallGraphItemAdapter() {
+	public Adapter createActivityGraphItemAdapter() {
 		return null;
 	}
 
@@ -6309,6 +6484,20 @@
 	}
 
 	/**
+	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.IDependsOn <em>IDepends On</em>}'.
+	 * <!-- begin-user-doc -->
+	 * This default implementation returns null so that we can easily ignore cases;
+	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
+	 * <!-- end-user-doc -->
+	 * @return the new adapter.
+	 * @see org.eclipse.app4mc.amalthea.model.IDependsOn
+	 * @generated
+	 */
+	public Adapter createIDependsOnAdapter() {
+		return null;
+	}
+
+	/**
 	 * Creates a new adapter for an object of class '{@link org.eclipse.app4mc.amalthea.model.DataDependency <em>Data Dependency</em>}'.
 	 * <!-- begin-user-doc -->
 	 * This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaSwitch.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaSwitch.java
index 3afc62c..48b89ca 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaSwitch.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaSwitch.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -22,6 +22,8 @@
 import org.eclipse.app4mc.amalthea.model.AbstractProcess;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AffinityConstraint;
 import org.eclipse.app4mc.amalthea.model.Algorithm;
 import org.eclipse.app4mc.amalthea.model.Alias;
@@ -43,8 +45,6 @@
 import org.eclipse.app4mc.amalthea.model.Cache;
 import org.eclipse.app4mc.amalthea.model.CacheDefinition;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ChannelAccess;
@@ -62,7 +62,10 @@
 import org.eclipse.app4mc.amalthea.model.Component;
 import org.eclipse.app4mc.amalthea.model.ComponentEvent;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
 import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.CompoundType;
@@ -173,13 +176,18 @@
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
 import org.eclipse.app4mc.amalthea.model.HwPort;
 import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.IAnnotatable;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
 import org.eclipse.app4mc.amalthea.model.IContinuousValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
 import org.eclipse.app4mc.amalthea.model.IDescription;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ISR;
 import org.eclipse.app4mc.amalthea.model.ISRAllocation;
@@ -189,7 +197,6 @@
 import org.eclipse.app4mc.amalthea.model.IntegerObject;
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.InterruptSchedulingAlgorithm;
 import org.eclipse.app4mc.amalthea.model.Label;
@@ -201,6 +208,7 @@
 import org.eclipse.app4mc.amalthea.model.LeastLocalRemainingExecutionTimeFirst;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
 import org.eclipse.app4mc.amalthea.model.Measurement;
 import org.eclipse.app4mc.amalthea.model.MeasurementModel;
@@ -227,6 +235,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeValue;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.NumericMode;
 import org.eclipse.app4mc.amalthea.model.NumericStatistic;
@@ -253,7 +262,6 @@
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
 import org.eclipse.app4mc.amalthea.model.Pointer;
 import org.eclipse.app4mc.amalthea.model.PollingPeriodicServer;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.PowerDomain;
 import org.eclipse.app4mc.amalthea.model.PriorityBased;
 import org.eclipse.app4mc.amalthea.model.PriorityBasedRoundRobin;
@@ -333,6 +341,7 @@
 import org.eclipse.app4mc.amalthea.model.Struct;
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronizationConstraint;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
 import org.eclipse.app4mc.amalthea.model.Tag;
@@ -514,6 +523,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case AmaltheaPackage.INAMESPACE_MEMBER: {
+				INamespaceMember iNamespaceMember = (INamespaceMember)theEObject;
+				T result = caseINamespaceMember(iNamespaceMember);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case AmaltheaPackage.TAG: {
 				Tag tag = (Tag)theEObject;
 				T result = caseTag(tag);
@@ -525,6 +540,15 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case AmaltheaPackage.NAMESPACE: {
+				Namespace namespace = (Namespace)theEObject;
+				T result = caseNamespace(namespace);
+				if (result == null) result = caseReferableObject(namespace);
+				if (result == null) result = caseIReferable(namespace);
+				if (result == null) result = caseINamed(namespace);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case AmaltheaPackage.CLASSIFIER: {
 				Classifier classifier = (Classifier)theEObject;
 				T result = caseClassifier(classifier);
@@ -1066,24 +1090,90 @@
 				ComponentsModel componentsModel = (ComponentsModel)theEObject;
 				T result = caseComponentsModel(componentsModel);
 				if (result == null) result = caseBaseObject(componentsModel);
+				if (result == null) result = caseIComponentContainer(componentsModel);
+				if (result == null) result = caseIInterfaceContainer(componentsModel);
 				if (result == null) result = caseIAnnotatable(componentsModel);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case AmaltheaPackage.ICOMPONENT_CONTAINER: {
+				IComponentContainer iComponentContainer = (IComponentContainer)theEObject;
+				T result = caseIComponentContainer(iComponentContainer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.IINTERFACE_CONTAINER: {
+				IInterfaceContainer iInterfaceContainer = (IInterfaceContainer)theEObject;
+				T result = caseIInterfaceContainer(iInterfaceContainer);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case AmaltheaPackage.ISYSTEM: {
 				ISystem iSystem = (ISystem)theEObject;
 				T result = caseISystem(iSystem);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case AmaltheaPackage.PORT: {
-				Port port = (Port)theEObject;
-				T result = casePort(port);
-				if (result == null) result = caseReferableBaseObject(port);
-				if (result == null) result = caseITaggable(port);
-				if (result == null) result = caseIAnnotatable(port);
-				if (result == null) result = caseIReferable(port);
-				if (result == null) result = caseINamed(port);
+			case AmaltheaPackage.COMPONENT_INTERFACE: {
+				ComponentInterface componentInterface = (ComponentInterface)theEObject;
+				T result = caseComponentInterface(componentInterface);
+				if (result == null) result = caseReferableBaseObject(componentInterface);
+				if (result == null) result = caseITaggable(componentInterface);
+				if (result == null) result = caseIAnnotatable(componentInterface);
+				if (result == null) result = caseIReferable(componentInterface);
+				if (result == null) result = caseINamed(componentInterface);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.MAIN_INTERFACE: {
+				MainInterface mainInterface = (MainInterface)theEObject;
+				T result = caseMainInterface(mainInterface);
+				if (result == null) result = caseComponentInterface(mainInterface);
+				if (result == null) result = caseINamespaceMember(mainInterface);
+				if (result == null) result = caseIComponentStructureMember(mainInterface);
+				if (result == null) result = caseReferableBaseObject(mainInterface);
+				if (result == null) result = caseITaggable(mainInterface);
+				if (result == null) result = caseIAnnotatable(mainInterface);
+				if (result == null) result = caseIReferable(mainInterface);
+				if (result == null) result = caseINamed(mainInterface);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.SUB_INTERFACE: {
+				SubInterface subInterface = (SubInterface)theEObject;
+				T result = caseSubInterface(subInterface);
+				if (result == null) result = caseComponentInterface(subInterface);
+				if (result == null) result = caseReferableBaseObject(subInterface);
+				if (result == null) result = caseITaggable(subInterface);
+				if (result == null) result = caseIAnnotatable(subInterface);
+				if (result == null) result = caseIReferable(subInterface);
+				if (result == null) result = caseINamed(subInterface);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.COMPONENT_PORT: {
+				ComponentPort componentPort = (ComponentPort)theEObject;
+				T result = caseComponentPort(componentPort);
+				if (result == null) result = caseReferableBaseObject(componentPort);
+				if (result == null) result = caseITaggable(componentPort);
+				if (result == null) result = caseIAnnotatable(componentPort);
+				if (result == null) result = caseIReferable(componentPort);
+				if (result == null) result = caseINamed(componentPort);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.COMPONENT_STRUCTURE: {
+				ComponentStructure componentStructure = (ComponentStructure)theEObject;
+				T result = caseComponentStructure(componentStructure);
+				if (result == null) result = caseReferableObject(componentStructure);
+				if (result == null) result = caseIReferable(componentStructure);
+				if (result == null) result = caseINamed(componentStructure);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
+			case AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER: {
+				IComponentStructureMember iComponentStructureMember = (IComponentStructureMember)theEObject;
+				T result = caseIComponentStructureMember(iComponentStructureMember);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
@@ -1092,6 +1182,8 @@
 				T result = caseComponent(component);
 				if (result == null) result = caseReferableBaseObject(component);
 				if (result == null) result = caseITaggable(component);
+				if (result == null) result = caseINamespaceMember(component);
+				if (result == null) result = caseIComponentStructureMember(component);
 				if (result == null) result = caseIAnnotatable(component);
 				if (result == null) result = caseIReferable(component);
 				if (result == null) result = caseINamed(component);
@@ -1105,6 +1197,8 @@
 				if (result == null) result = caseISystem(composite);
 				if (result == null) result = caseReferableBaseObject(composite);
 				if (result == null) result = caseITaggable(composite);
+				if (result == null) result = caseINamespaceMember(composite);
+				if (result == null) result = caseIComponentStructureMember(composite);
 				if (result == null) result = caseIAnnotatable(composite);
 				if (result == null) result = caseIReferable(composite);
 				if (result == null) result = caseINamed(composite);
@@ -1144,6 +1238,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case AmaltheaPackage.INTERFACE_CHANNEL: {
+				@SuppressWarnings("unchecked") Map.Entry<ComponentInterface, Channel> interfaceChannel = (Map.Entry<ComponentInterface, Channel>)theEObject;
+				T result = caseInterfaceChannel(interfaceChannel);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case AmaltheaPackage.QUALIFIED_PORT: {
 				QualifiedPort qualifiedPort = (QualifiedPort)theEObject;
 				T result = caseQualifiedPort(qualifiedPort);
@@ -1152,18 +1252,6 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case AmaltheaPackage.INTERFACE_PORT: {
-				InterfacePort interfacePort = (InterfacePort)theEObject;
-				T result = caseInterfacePort(interfacePort);
-				if (result == null) result = casePort(interfacePort);
-				if (result == null) result = caseReferableBaseObject(interfacePort);
-				if (result == null) result = caseITaggable(interfacePort);
-				if (result == null) result = caseIAnnotatable(interfacePort);
-				if (result == null) result = caseIReferable(interfacePort);
-				if (result == null) result = caseINamed(interfacePort);
-				if (result == null) result = defaultCase(theEObject);
-				return result;
-			}
 			case AmaltheaPackage.CONFIG_MODEL: {
 				ConfigModel configModel = (ConfigModel)theEObject;
 				T result = caseConfigModel(configModel);
@@ -3112,33 +3200,33 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER: {
-				ICallGraphItemContainer iCallGraphItemContainer = (ICallGraphItemContainer)theEObject;
-				T result = caseICallGraphItemContainer(iCallGraphItemContainer);
+			case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER: {
+				IActivityGraphItemContainer iActivityGraphItemContainer = (IActivityGraphItemContainer)theEObject;
+				T result = caseIActivityGraphItemContainer(iActivityGraphItemContainer);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case AmaltheaPackage.CALL_GRAPH: {
-				CallGraph callGraph = (CallGraph)theEObject;
-				T result = caseCallGraph(callGraph);
-				if (result == null) result = caseBaseObject(callGraph);
-				if (result == null) result = caseICallGraphItemContainer(callGraph);
-				if (result == null) result = caseIAnnotatable(callGraph);
+			case AmaltheaPackage.ACTIVITY_GRAPH: {
+				ActivityGraph activityGraph = (ActivityGraph)theEObject;
+				T result = caseActivityGraph(activityGraph);
+				if (result == null) result = caseBaseObject(activityGraph);
+				if (result == null) result = caseIActivityGraphItemContainer(activityGraph);
+				if (result == null) result = caseIAnnotatable(activityGraph);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
-			case AmaltheaPackage.CALL_GRAPH_ITEM: {
-				CallGraphItem callGraphItem = (CallGraphItem)theEObject;
-				T result = caseCallGraphItem(callGraphItem);
-				if (result == null) result = caseBaseObject(callGraphItem);
-				if (result == null) result = caseIAnnotatable(callGraphItem);
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM: {
+				ActivityGraphItem activityGraphItem = (ActivityGraphItem)theEObject;
+				T result = caseActivityGraphItem(activityGraphItem);
+				if (result == null) result = caseBaseObject(activityGraphItem);
+				if (result == null) result = caseIAnnotatable(activityGraphItem);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
 			case AmaltheaPackage.MODE_SWITCH: {
 				ModeSwitch modeSwitch = (ModeSwitch)theEObject;
 				T result = caseModeSwitch(modeSwitch);
-				if (result == null) result = caseCallGraphItem(modeSwitch);
+				if (result == null) result = caseActivityGraphItem(modeSwitch);
 				if (result == null) result = caseBaseObject(modeSwitch);
 				if (result == null) result = caseIAnnotatable(modeSwitch);
 				if (result == null) result = defaultCase(theEObject);
@@ -3149,7 +3237,7 @@
 				T result = caseModeSwitchEntry(modeSwitchEntry);
 				if (result == null) result = caseBaseObject(modeSwitchEntry);
 				if (result == null) result = caseINamed(modeSwitchEntry);
-				if (result == null) result = caseICallGraphItemContainer(modeSwitchEntry);
+				if (result == null) result = caseIActivityGraphItemContainer(modeSwitchEntry);
 				if (result == null) result = caseIAnnotatable(modeSwitchEntry);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -3158,7 +3246,7 @@
 				ModeSwitchDefault modeSwitchDefault = (ModeSwitchDefault)theEObject;
 				T result = caseModeSwitchDefault(modeSwitchDefault);
 				if (result == null) result = caseBaseObject(modeSwitchDefault);
-				if (result == null) result = caseICallGraphItemContainer(modeSwitchDefault);
+				if (result == null) result = caseIActivityGraphItemContainer(modeSwitchDefault);
 				if (result == null) result = caseIAnnotatable(modeSwitchDefault);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -3166,7 +3254,7 @@
 			case AmaltheaPackage.PROBABILITY_SWITCH: {
 				ProbabilitySwitch probabilitySwitch = (ProbabilitySwitch)theEObject;
 				T result = caseProbabilitySwitch(probabilitySwitch);
-				if (result == null) result = caseCallGraphItem(probabilitySwitch);
+				if (result == null) result = caseActivityGraphItem(probabilitySwitch);
 				if (result == null) result = caseBaseObject(probabilitySwitch);
 				if (result == null) result = caseIAnnotatable(probabilitySwitch);
 				if (result == null) result = defaultCase(theEObject);
@@ -3176,7 +3264,7 @@
 				ProbabilitySwitchEntry probabilitySwitchEntry = (ProbabilitySwitchEntry)theEObject;
 				T result = caseProbabilitySwitchEntry(probabilitySwitchEntry);
 				if (result == null) result = caseBaseObject(probabilitySwitchEntry);
-				if (result == null) result = caseICallGraphItemContainer(probabilitySwitchEntry);
+				if (result == null) result = caseIActivityGraphItemContainer(probabilitySwitchEntry);
 				if (result == null) result = caseIAnnotatable(probabilitySwitchEntry);
 				if (result == null) result = defaultCase(theEObject);
 				return result;
@@ -3192,7 +3280,7 @@
 			case AmaltheaPackage.WAIT_EVENT: {
 				WaitEvent waitEvent = (WaitEvent)theEObject;
 				T result = caseWaitEvent(waitEvent);
-				if (result == null) result = caseCallGraphItem(waitEvent);
+				if (result == null) result = caseActivityGraphItem(waitEvent);
 				if (result == null) result = caseBaseObject(waitEvent);
 				if (result == null) result = caseIAnnotatable(waitEvent);
 				if (result == null) result = defaultCase(theEObject);
@@ -3201,7 +3289,7 @@
 			case AmaltheaPackage.SET_EVENT: {
 				SetEvent setEvent = (SetEvent)theEObject;
 				T result = caseSetEvent(setEvent);
-				if (result == null) result = caseCallGraphItem(setEvent);
+				if (result == null) result = caseActivityGraphItem(setEvent);
 				if (result == null) result = caseBaseObject(setEvent);
 				if (result == null) result = caseIAnnotatable(setEvent);
 				if (result == null) result = defaultCase(theEObject);
@@ -3210,7 +3298,7 @@
 			case AmaltheaPackage.CLEAR_EVENT: {
 				ClearEvent clearEvent = (ClearEvent)theEObject;
 				T result = caseClearEvent(clearEvent);
-				if (result == null) result = caseCallGraphItem(clearEvent);
+				if (result == null) result = caseActivityGraphItem(clearEvent);
 				if (result == null) result = caseBaseObject(clearEvent);
 				if (result == null) result = caseIAnnotatable(clearEvent);
 				if (result == null) result = defaultCase(theEObject);
@@ -3238,7 +3326,7 @@
 			case AmaltheaPackage.INTER_PROCESS_TRIGGER: {
 				InterProcessTrigger interProcessTrigger = (InterProcessTrigger)theEObject;
 				T result = caseInterProcessTrigger(interProcessTrigger);
-				if (result == null) result = caseCallGraphItem(interProcessTrigger);
+				if (result == null) result = caseActivityGraphItem(interProcessTrigger);
 				if (result == null) result = caseBaseObject(interProcessTrigger);
 				if (result == null) result = caseIAnnotatable(interProcessTrigger);
 				if (result == null) result = defaultCase(theEObject);
@@ -3247,7 +3335,7 @@
 			case AmaltheaPackage.ENFORCED_MIGRATION: {
 				EnforcedMigration enforcedMigration = (EnforcedMigration)theEObject;
 				T result = caseEnforcedMigration(enforcedMigration);
-				if (result == null) result = caseCallGraphItem(enforcedMigration);
+				if (result == null) result = caseActivityGraphItem(enforcedMigration);
 				if (result == null) result = caseBaseObject(enforcedMigration);
 				if (result == null) result = caseIAnnotatable(enforcedMigration);
 				if (result == null) result = defaultCase(theEObject);
@@ -3256,7 +3344,7 @@
 			case AmaltheaPackage.SCHEDULE_POINT: {
 				SchedulePoint schedulePoint = (SchedulePoint)theEObject;
 				T result = caseSchedulePoint(schedulePoint);
-				if (result == null) result = caseCallGraphItem(schedulePoint);
+				if (result == null) result = caseActivityGraphItem(schedulePoint);
 				if (result == null) result = caseBaseObject(schedulePoint);
 				if (result == null) result = caseIAnnotatable(schedulePoint);
 				if (result == null) result = defaultCase(theEObject);
@@ -3265,7 +3353,7 @@
 			case AmaltheaPackage.TERMINATE_PROCESS: {
 				TerminateProcess terminateProcess = (TerminateProcess)theEObject;
 				T result = caseTerminateProcess(terminateProcess);
-				if (result == null) result = caseCallGraphItem(terminateProcess);
+				if (result == null) result = caseActivityGraphItem(terminateProcess);
 				if (result == null) result = caseBaseObject(terminateProcess);
 				if (result == null) result = caseIAnnotatable(terminateProcess);
 				if (result == null) result = defaultCase(theEObject);
@@ -3346,6 +3434,12 @@
 				if (result == null) result = defaultCase(theEObject);
 				return result;
 			}
+			case AmaltheaPackage.IDEPENDS_ON: {
+				IDependsOn iDependsOn = (IDependsOn)theEObject;
+				T result = caseIDependsOn(iDependsOn);
+				if (result == null) result = defaultCase(theEObject);
+				return result;
+			}
 			case AmaltheaPackage.DATA_DEPENDENCY: {
 				DataDependency dataDependency = (DataDependency)theEObject;
 				T result = caseDataDependency(dataDependency);
@@ -3358,6 +3452,7 @@
 				RunnableParameter runnableParameter = (RunnableParameter)theEObject;
 				T result = caseRunnableParameter(runnableParameter);
 				if (result == null) result = caseReferableBaseObject(runnableParameter);
+				if (result == null) result = caseIDependsOn(runnableParameter);
 				if (result == null) result = caseIAnnotatable(runnableParameter);
 				if (result == null) result = caseIReferable(runnableParameter);
 				if (result == null) result = caseINamed(runnableParameter);
@@ -3368,6 +3463,7 @@
 				org.eclipse.app4mc.amalthea.model.Runnable runnable = (org.eclipse.app4mc.amalthea.model.Runnable)theEObject;
 				T result = caseRunnable(runnable);
 				if (result == null) result = caseAbstractMemoryElement(runnable);
+				if (result == null) result = caseINamespaceMember(runnable);
 				if (result == null) result = caseReferableBaseObject(runnable);
 				if (result == null) result = caseITaggable(runnable);
 				if (result == null) result = caseIAnnotatable(runnable);
@@ -3381,6 +3477,7 @@
 				T result = caseLabel(label);
 				if (result == null) result = caseAbstractMemoryElement(label);
 				if (result == null) result = caseIDisplayName(label);
+				if (result == null) result = caseINamespaceMember(label);
 				if (result == null) result = caseReferableBaseObject(label);
 				if (result == null) result = caseITaggable(label);
 				if (result == null) result = caseIAnnotatable(label);
@@ -3394,6 +3491,7 @@
 				T result = caseChannel(channel);
 				if (result == null) result = caseAbstractMemoryElement(channel);
 				if (result == null) result = caseIDisplayName(channel);
+				if (result == null) result = caseINamespaceMember(channel);
 				if (result == null) result = caseReferableBaseObject(channel);
 				if (result == null) result = caseITaggable(channel);
 				if (result == null) result = caseIAnnotatable(channel);
@@ -3428,7 +3526,7 @@
 			case AmaltheaPackage.COMPUTATION_ITEM: {
 				ComputationItem computationItem = (ComputationItem)theEObject;
 				T result = caseComputationItem(computationItem);
-				if (result == null) result = caseCallGraphItem(computationItem);
+				if (result == null) result = caseActivityGraphItem(computationItem);
 				if (result == null) result = caseBaseObject(computationItem);
 				if (result == null) result = caseIAnnotatable(computationItem);
 				if (result == null) result = defaultCase(theEObject);
@@ -3437,7 +3535,7 @@
 			case AmaltheaPackage.EXECUTION_NEED: {
 				ExecutionNeed executionNeed = (ExecutionNeed)theEObject;
 				T result = caseExecutionNeed(executionNeed);
-				if (result == null) result = caseCallGraphItem(executionNeed);
+				if (result == null) result = caseActivityGraphItem(executionNeed);
 				if (result == null) result = caseBaseObject(executionNeed);
 				if (result == null) result = caseIAnnotatable(executionNeed);
 				if (result == null) result = defaultCase(theEObject);
@@ -3453,7 +3551,7 @@
 				Ticks ticks = (Ticks)theEObject;
 				T result = caseTicks(ticks);
 				if (result == null) result = caseComputationItem(ticks);
-				if (result == null) result = caseCallGraphItem(ticks);
+				if (result == null) result = caseActivityGraphItem(ticks);
 				if (result == null) result = caseBaseObject(ticks);
 				if (result == null) result = caseIAnnotatable(ticks);
 				if (result == null) result = defaultCase(theEObject);
@@ -3468,7 +3566,7 @@
 			case AmaltheaPackage.MODE_LABEL_ACCESS: {
 				ModeLabelAccess modeLabelAccess = (ModeLabelAccess)theEObject;
 				T result = caseModeLabelAccess(modeLabelAccess);
-				if (result == null) result = caseCallGraphItem(modeLabelAccess);
+				if (result == null) result = caseActivityGraphItem(modeLabelAccess);
 				if (result == null) result = caseBaseObject(modeLabelAccess);
 				if (result == null) result = caseIAnnotatable(modeLabelAccess);
 				if (result == null) result = defaultCase(theEObject);
@@ -3479,7 +3577,8 @@
 				T result = caseLabelAccess(labelAccess);
 				if (result == null) result = caseComputationItem(labelAccess);
 				if (result == null) result = caseITaggable(labelAccess);
-				if (result == null) result = caseCallGraphItem(labelAccess);
+				if (result == null) result = caseIDependsOn(labelAccess);
+				if (result == null) result = caseActivityGraphItem(labelAccess);
 				if (result == null) result = caseBaseObject(labelAccess);
 				if (result == null) result = caseIAnnotatable(labelAccess);
 				if (result == null) result = defaultCase(theEObject);
@@ -3488,7 +3587,7 @@
 			case AmaltheaPackage.CHANNEL_ACCESS: {
 				ChannelAccess channelAccess = (ChannelAccess)theEObject;
 				T result = caseChannelAccess(channelAccess);
-				if (result == null) result = caseCallGraphItem(channelAccess);
+				if (result == null) result = caseActivityGraphItem(channelAccess);
 				if (result == null) result = caseBaseObject(channelAccess);
 				if (result == null) result = caseIAnnotatable(channelAccess);
 				if (result == null) result = defaultCase(theEObject);
@@ -3498,7 +3597,7 @@
 				ChannelSend channelSend = (ChannelSend)theEObject;
 				T result = caseChannelSend(channelSend);
 				if (result == null) result = caseChannelAccess(channelSend);
-				if (result == null) result = caseCallGraphItem(channelSend);
+				if (result == null) result = caseActivityGraphItem(channelSend);
 				if (result == null) result = caseBaseObject(channelSend);
 				if (result == null) result = caseIAnnotatable(channelSend);
 				if (result == null) result = defaultCase(theEObject);
@@ -3508,7 +3607,7 @@
 				ChannelReceive channelReceive = (ChannelReceive)theEObject;
 				T result = caseChannelReceive(channelReceive);
 				if (result == null) result = caseChannelAccess(channelReceive);
-				if (result == null) result = caseCallGraphItem(channelReceive);
+				if (result == null) result = caseActivityGraphItem(channelReceive);
 				if (result == null) result = caseBaseObject(channelReceive);
 				if (result == null) result = caseIAnnotatable(channelReceive);
 				if (result == null) result = defaultCase(theEObject);
@@ -3517,7 +3616,7 @@
 			case AmaltheaPackage.SEMAPHORE_ACCESS: {
 				SemaphoreAccess semaphoreAccess = (SemaphoreAccess)theEObject;
 				T result = caseSemaphoreAccess(semaphoreAccess);
-				if (result == null) result = caseCallGraphItem(semaphoreAccess);
+				if (result == null) result = caseActivityGraphItem(semaphoreAccess);
 				if (result == null) result = caseBaseObject(semaphoreAccess);
 				if (result == null) result = caseIAnnotatable(semaphoreAccess);
 				if (result == null) result = defaultCase(theEObject);
@@ -3526,7 +3625,7 @@
 			case AmaltheaPackage.SENDER_RECEIVER_COMMUNICATION: {
 				SenderReceiverCommunication senderReceiverCommunication = (SenderReceiverCommunication)theEObject;
 				T result = caseSenderReceiverCommunication(senderReceiverCommunication);
-				if (result == null) result = caseCallGraphItem(senderReceiverCommunication);
+				if (result == null) result = caseActivityGraphItem(senderReceiverCommunication);
 				if (result == null) result = caseBaseObject(senderReceiverCommunication);
 				if (result == null) result = caseIAnnotatable(senderReceiverCommunication);
 				if (result == null) result = defaultCase(theEObject);
@@ -3536,7 +3635,7 @@
 				SenderReceiverRead senderReceiverRead = (SenderReceiverRead)theEObject;
 				T result = caseSenderReceiverRead(senderReceiverRead);
 				if (result == null) result = caseSenderReceiverCommunication(senderReceiverRead);
-				if (result == null) result = caseCallGraphItem(senderReceiverRead);
+				if (result == null) result = caseActivityGraphItem(senderReceiverRead);
 				if (result == null) result = caseBaseObject(senderReceiverRead);
 				if (result == null) result = caseIAnnotatable(senderReceiverRead);
 				if (result == null) result = defaultCase(theEObject);
@@ -3546,7 +3645,7 @@
 				SenderReceiverWrite senderReceiverWrite = (SenderReceiverWrite)theEObject;
 				T result = caseSenderReceiverWrite(senderReceiverWrite);
 				if (result == null) result = caseSenderReceiverCommunication(senderReceiverWrite);
-				if (result == null) result = caseCallGraphItem(senderReceiverWrite);
+				if (result == null) result = caseActivityGraphItem(senderReceiverWrite);
 				if (result == null) result = caseBaseObject(senderReceiverWrite);
 				if (result == null) result = caseIAnnotatable(senderReceiverWrite);
 				if (result == null) result = defaultCase(theEObject);
@@ -3555,7 +3654,7 @@
 			case AmaltheaPackage.SERVER_CALL: {
 				ServerCall serverCall = (ServerCall)theEObject;
 				T result = caseServerCall(serverCall);
-				if (result == null) result = caseCallGraphItem(serverCall);
+				if (result == null) result = caseActivityGraphItem(serverCall);
 				if (result == null) result = caseBaseObject(serverCall);
 				if (result == null) result = caseIAnnotatable(serverCall);
 				if (result == null) result = defaultCase(theEObject);
@@ -3565,7 +3664,7 @@
 				SynchronousServerCall synchronousServerCall = (SynchronousServerCall)theEObject;
 				T result = caseSynchronousServerCall(synchronousServerCall);
 				if (result == null) result = caseServerCall(synchronousServerCall);
-				if (result == null) result = caseCallGraphItem(synchronousServerCall);
+				if (result == null) result = caseActivityGraphItem(synchronousServerCall);
 				if (result == null) result = caseBaseObject(synchronousServerCall);
 				if (result == null) result = caseIAnnotatable(synchronousServerCall);
 				if (result == null) result = defaultCase(theEObject);
@@ -3575,7 +3674,7 @@
 				AsynchronousServerCall asynchronousServerCall = (AsynchronousServerCall)theEObject;
 				T result = caseAsynchronousServerCall(asynchronousServerCall);
 				if (result == null) result = caseServerCall(asynchronousServerCall);
-				if (result == null) result = caseCallGraphItem(asynchronousServerCall);
+				if (result == null) result = caseActivityGraphItem(asynchronousServerCall);
 				if (result == null) result = caseBaseObject(asynchronousServerCall);
 				if (result == null) result = caseIAnnotatable(asynchronousServerCall);
 				if (result == null) result = defaultCase(theEObject);
@@ -3585,7 +3684,7 @@
 				GetResultServerCall getResultServerCall = (GetResultServerCall)theEObject;
 				T result = caseGetResultServerCall(getResultServerCall);
 				if (result == null) result = caseServerCall(getResultServerCall);
-				if (result == null) result = caseCallGraphItem(getResultServerCall);
+				if (result == null) result = caseActivityGraphItem(getResultServerCall);
 				if (result == null) result = caseBaseObject(getResultServerCall);
 				if (result == null) result = caseIAnnotatable(getResultServerCall);
 				if (result == null) result = defaultCase(theEObject);
@@ -3594,9 +3693,9 @@
 			case AmaltheaPackage.GROUP: {
 				Group group = (Group)theEObject;
 				T result = caseGroup(group);
-				if (result == null) result = caseCallGraphItem(group);
+				if (result == null) result = caseActivityGraphItem(group);
 				if (result == null) result = caseINamed(group);
-				if (result == null) result = caseICallGraphItemContainer(group);
+				if (result == null) result = caseIActivityGraphItemContainer(group);
 				if (result == null) result = caseBaseObject(group);
 				if (result == null) result = caseIAnnotatable(group);
 				if (result == null) result = defaultCase(theEObject);
@@ -3606,6 +3705,7 @@
 				CallArgument callArgument = (CallArgument)theEObject;
 				T result = caseCallArgument(callArgument);
 				if (result == null) result = caseReferableObject(callArgument);
+				if (result == null) result = caseIDependsOn(callArgument);
 				if (result == null) result = caseIReferable(callArgument);
 				if (result == null) result = caseINamed(callArgument);
 				if (result == null) result = defaultCase(theEObject);
@@ -3614,7 +3714,7 @@
 			case AmaltheaPackage.RUNNABLE_CALL: {
 				RunnableCall runnableCall = (RunnableCall)theEObject;
 				T result = caseRunnableCall(runnableCall);
-				if (result == null) result = caseCallGraphItem(runnableCall);
+				if (result == null) result = caseActivityGraphItem(runnableCall);
 				if (result == null) result = caseITaggable(runnableCall);
 				if (result == null) result = caseBaseObject(runnableCall);
 				if (result == null) result = caseIAnnotatable(runnableCall);
@@ -3624,7 +3724,7 @@
 			case AmaltheaPackage.CUSTOM_EVENT_TRIGGER: {
 				CustomEventTrigger customEventTrigger = (CustomEventTrigger)theEObject;
 				T result = caseCustomEventTrigger(customEventTrigger);
-				if (result == null) result = caseCallGraphItem(customEventTrigger);
+				if (result == null) result = caseActivityGraphItem(customEventTrigger);
 				if (result == null) result = caseBaseObject(customEventTrigger);
 				if (result == null) result = caseIAnnotatable(customEventTrigger);
 				if (result == null) result = defaultCase(theEObject);
@@ -3705,6 +3805,7 @@
 				TypeDefinition typeDefinition = (TypeDefinition)theEObject;
 				T result = caseTypeDefinition(typeDefinition);
 				if (result == null) result = caseReferableBaseObject(typeDefinition);
+				if (result == null) result = caseINamespaceMember(typeDefinition);
 				if (result == null) result = caseIAnnotatable(typeDefinition);
 				if (result == null) result = caseIReferable(typeDefinition);
 				if (result == null) result = caseINamed(typeDefinition);
@@ -3716,6 +3817,7 @@
 				T result = caseDataTypeDefinition(dataTypeDefinition);
 				if (result == null) result = caseTypeDefinition(dataTypeDefinition);
 				if (result == null) result = caseReferableBaseObject(dataTypeDefinition);
+				if (result == null) result = caseINamespaceMember(dataTypeDefinition);
 				if (result == null) result = caseIAnnotatable(dataTypeDefinition);
 				if (result == null) result = caseIReferable(dataTypeDefinition);
 				if (result == null) result = caseINamed(dataTypeDefinition);
@@ -3727,6 +3829,7 @@
 				T result = caseBaseTypeDefinition(baseTypeDefinition);
 				if (result == null) result = caseTypeDefinition(baseTypeDefinition);
 				if (result == null) result = caseReferableBaseObject(baseTypeDefinition);
+				if (result == null) result = caseINamespaceMember(baseTypeDefinition);
 				if (result == null) result = caseIAnnotatable(baseTypeDefinition);
 				if (result == null) result = caseIReferable(baseTypeDefinition);
 				if (result == null) result = caseINamed(baseTypeDefinition);
@@ -4048,6 +4151,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>INamespace Member</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>INamespace Member</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseINamespaceMember(INamespaceMember object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Tag</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -4063,6 +4181,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Namespace</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Namespace</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseNamespace(Namespace object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Classifier</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -5113,6 +5246,36 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IComponent Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>IComponent Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIComponentContainer(IComponentContainer object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IInterface Container</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>IInterface Container</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIInterfaceContainer(IInterfaceContainer object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>ISystem</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -5128,17 +5291,92 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Component Interface</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Port</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Component Interface</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T casePort(Port object) {
+	public T caseComponentInterface(ComponentInterface object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Main Interface</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Main Interface</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseMainInterface(MainInterface object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Sub Interface</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Sub Interface</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseSubInterface(SubInterface object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Component Port</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Component Port</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseComponentPort(ComponentPort object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Component Structure</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Component Structure</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseComponentStructure(ComponentStructure object) {
+		return null;
+	}
+
+	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IComponent Structure Member</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>IComponent Structure Member</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIComponentStructureMember(IComponentStructureMember object) {
 		return null;
 	}
 
@@ -5218,6 +5456,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>Interface Channel</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>Interface Channel</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseInterfaceChannel(Map.Entry<ComponentInterface, Channel> object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Qualified Port</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -5233,21 +5486,6 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Interface Port</em>'.
-	 * <!-- begin-user-doc -->
-	 * This implementation returns null;
-	 * returning a non-null result will terminate the switch.
-	 * <!-- end-user-doc -->
-	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Interface Port</em>'.
-	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-	 * @generated
-	 */
-	public T caseInterfacePort(InterfacePort object) {
-		return null;
-	}
-
-	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Config Model</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
@@ -8203,47 +8441,47 @@
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>ICall Graph Item Container</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>IActivity Graph Item Container</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>ICall Graph Item Container</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>IActivity Graph Item Container</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseICallGraphItemContainer(ICallGraphItemContainer object) {
+	public T caseIActivityGraphItemContainer(IActivityGraphItemContainer object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Call Graph</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Activity Graph</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Call Graph</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Activity Graph</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseCallGraph(CallGraph object) {
+	public T caseActivityGraph(ActivityGraph object) {
 		return null;
 	}
 
 	/**
-	 * Returns the result of interpreting the object as an instance of '<em>Call Graph Item</em>'.
+	 * Returns the result of interpreting the object as an instance of '<em>Activity Graph Item</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
 	 * returning a non-null result will terminate the switch.
 	 * <!-- end-user-doc -->
 	 * @param object the target of the switch.
-	 * @return the result of interpreting the object as an instance of '<em>Call Graph Item</em>'.
+	 * @return the result of interpreting the object as an instance of '<em>Activity Graph Item</em>'.
 	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
 	 * @generated
 	 */
-	public T caseCallGraphItem(CallGraphItem object) {
+	public T caseActivityGraphItem(ActivityGraphItem object) {
 		return null;
 	}
 
@@ -8578,6 +8816,21 @@
 	}
 
 	/**
+	 * Returns the result of interpreting the object as an instance of '<em>IDepends On</em>'.
+	 * <!-- begin-user-doc -->
+	 * This implementation returns null;
+	 * returning a non-null result will terminate the switch.
+	 * <!-- end-user-doc -->
+	 * @param object the target of the switch.
+	 * @return the result of interpreting the object as an instance of '<em>IDepends On</em>'.
+	 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+	 * @generated
+	 */
+	public T caseIDependsOn(IDependsOn object) {
+		return null;
+	}
+
+	/**
 	 * Returns the result of interpreting the object as an instance of '<em>Data Dependency</em>'.
 	 * <!-- begin-user-doc -->
 	 * This implementation returns null;
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
index 7613443..aa9a46d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src-gen/org/eclipse/app4mc/amalthea/model/util/AmaltheaValidator.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- *  Copyright (c) 2015-2019 Robert Bosch GmbH and others.
+ *  Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  *  This program and the accompanying materials are made
  *  available under the terms of the Eclipse Public License 2.0
@@ -25,6 +25,8 @@
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceSpec;
 import org.eclipse.app4mc.amalthea.model.AccessPrecedenceType;
 import org.eclipse.app4mc.amalthea.model.Activation;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.AffinityConstraint;
 import org.eclipse.app4mc.amalthea.model.Algorithm;
 import org.eclipse.app4mc.amalthea.model.Alias;
@@ -49,8 +51,6 @@
 import org.eclipse.app4mc.amalthea.model.CacheDefinition;
 import org.eclipse.app4mc.amalthea.model.CacheType;
 import org.eclipse.app4mc.amalthea.model.CallArgument;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.ChainedProcessPrototype;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ChannelAccess;
@@ -71,7 +71,10 @@
 import org.eclipse.app4mc.amalthea.model.ComponentEvent;
 import org.eclipse.app4mc.amalthea.model.ComponentEventType;
 import org.eclipse.app4mc.amalthea.model.ComponentInstance;
+import org.eclipse.app4mc.amalthea.model.ComponentInterface;
+import org.eclipse.app4mc.amalthea.model.ComponentPort;
 import org.eclipse.app4mc.amalthea.model.ComponentScope;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
 import org.eclipse.app4mc.amalthea.model.ComponentsModel;
 import org.eclipse.app4mc.amalthea.model.Composite;
 import org.eclipse.app4mc.amalthea.model.CompoundType;
@@ -195,13 +198,18 @@
 import org.eclipse.app4mc.amalthea.model.HwPathElement;
 import org.eclipse.app4mc.amalthea.model.HwPort;
 import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.IAnnotatable;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.model.IComponentStructureMember;
 import org.eclipse.app4mc.amalthea.model.IContinuousValueDeviation;
+import org.eclipse.app4mc.amalthea.model.IDependsOn;
 import org.eclipse.app4mc.amalthea.model.IDescription;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.IDisplayName;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
 import org.eclipse.app4mc.amalthea.model.INamed;
+import org.eclipse.app4mc.amalthea.model.INamespaceMember;
 import org.eclipse.app4mc.amalthea.model.IReferable;
 import org.eclipse.app4mc.amalthea.model.ISR;
 import org.eclipse.app4mc.amalthea.model.ISRAllocation;
@@ -213,7 +221,6 @@
 import org.eclipse.app4mc.amalthea.model.InterProcessStimulus;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
 import org.eclipse.app4mc.amalthea.model.InterfaceKind;
-import org.eclipse.app4mc.amalthea.model.InterfacePort;
 import org.eclipse.app4mc.amalthea.model.InterruptController;
 import org.eclipse.app4mc.amalthea.model.InterruptSchedulingAlgorithm;
 import org.eclipse.app4mc.amalthea.model.Label;
@@ -232,6 +239,7 @@
 import org.eclipse.app4mc.amalthea.model.LimitType;
 import org.eclipse.app4mc.amalthea.model.ListObject;
 import org.eclipse.app4mc.amalthea.model.LongObject;
+import org.eclipse.app4mc.amalthea.model.MainInterface;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
 import org.eclipse.app4mc.amalthea.model.MappingType;
 import org.eclipse.app4mc.amalthea.model.Measurement;
@@ -262,6 +270,7 @@
 import org.eclipse.app4mc.amalthea.model.ModeValue;
 import org.eclipse.app4mc.amalthea.model.ModeValueCondition;
 import org.eclipse.app4mc.amalthea.model.ModeValueList;
+import org.eclipse.app4mc.amalthea.model.Namespace;
 import org.eclipse.app4mc.amalthea.model.NonAtomicDataCoherency;
 import org.eclipse.app4mc.amalthea.model.NumericMode;
 import org.eclipse.app4mc.amalthea.model.NumericStatistic;
@@ -291,7 +300,6 @@
 import org.eclipse.app4mc.amalthea.model.PhysicalSectionMapping;
 import org.eclipse.app4mc.amalthea.model.Pointer;
 import org.eclipse.app4mc.amalthea.model.PollingPeriodicServer;
-import org.eclipse.app4mc.amalthea.model.Port;
 import org.eclipse.app4mc.amalthea.model.PortInterface;
 import org.eclipse.app4mc.amalthea.model.PortType;
 import org.eclipse.app4mc.amalthea.model.PowerDomain;
@@ -387,6 +395,7 @@
 import org.eclipse.app4mc.amalthea.model.StructEntry;
 import org.eclipse.app4mc.amalthea.model.StructureType;
 import org.eclipse.app4mc.amalthea.model.SubEventChain;
+import org.eclipse.app4mc.amalthea.model.SubInterface;
 import org.eclipse.app4mc.amalthea.model.SynchronizationConstraint;
 import org.eclipse.app4mc.amalthea.model.SynchronizationType;
 import org.eclipse.app4mc.amalthea.model.SynchronousServerCall;
@@ -627,8 +636,12 @@
 				return validateIDisplayName((IDisplayName)value, diagnostics, context);
 			case AmaltheaPackage.IDESCRIPTION:
 				return validateIDescription((IDescription)value, diagnostics, context);
+			case AmaltheaPackage.INAMESPACE_MEMBER:
+				return validateINamespaceMember((INamespaceMember)value, diagnostics, context);
 			case AmaltheaPackage.TAG:
 				return validateTag((Tag)value, diagnostics, context);
+			case AmaltheaPackage.NAMESPACE:
+				return validateNamespace((Namespace)value, diagnostics, context);
 			case AmaltheaPackage.CLASSIFIER:
 				return validateClassifier((Classifier)value, diagnostics, context);
 			case AmaltheaPackage.CORE_CLASSIFIER:
@@ -769,10 +782,24 @@
 				return validateModeLiteral((ModeLiteral)value, diagnostics, context);
 			case AmaltheaPackage.COMPONENTS_MODEL:
 				return validateComponentsModel((ComponentsModel)value, diagnostics, context);
+			case AmaltheaPackage.ICOMPONENT_CONTAINER:
+				return validateIComponentContainer((IComponentContainer)value, diagnostics, context);
+			case AmaltheaPackage.IINTERFACE_CONTAINER:
+				return validateIInterfaceContainer((IInterfaceContainer)value, diagnostics, context);
 			case AmaltheaPackage.ISYSTEM:
 				return validateISystem((ISystem)value, diagnostics, context);
-			case AmaltheaPackage.PORT:
-				return validatePort((Port)value, diagnostics, context);
+			case AmaltheaPackage.COMPONENT_INTERFACE:
+				return validateComponentInterface((ComponentInterface)value, diagnostics, context);
+			case AmaltheaPackage.MAIN_INTERFACE:
+				return validateMainInterface((MainInterface)value, diagnostics, context);
+			case AmaltheaPackage.SUB_INTERFACE:
+				return validateSubInterface((SubInterface)value, diagnostics, context);
+			case AmaltheaPackage.COMPONENT_PORT:
+				return validateComponentPort((ComponentPort)value, diagnostics, context);
+			case AmaltheaPackage.COMPONENT_STRUCTURE:
+				return validateComponentStructure((ComponentStructure)value, diagnostics, context);
+			case AmaltheaPackage.ICOMPONENT_STRUCTURE_MEMBER:
+				return validateIComponentStructureMember((IComponentStructureMember)value, diagnostics, context);
 			case AmaltheaPackage.COMPONENT:
 				return validateComponent((Component)value, diagnostics, context);
 			case AmaltheaPackage.COMPOSITE:
@@ -783,10 +810,10 @@
 				return validateComponentInstance((ComponentInstance)value, diagnostics, context);
 			case AmaltheaPackage.CONNECTOR:
 				return validateConnector((Connector)value, diagnostics, context);
+			case AmaltheaPackage.INTERFACE_CHANNEL:
+				return validateInterfaceChannel((Map.Entry<?, ?>)value, diagnostics, context);
 			case AmaltheaPackage.QUALIFIED_PORT:
 				return validateQualifiedPort((QualifiedPort)value, diagnostics, context);
-			case AmaltheaPackage.INTERFACE_PORT:
-				return validateInterfacePort((InterfacePort)value, diagnostics, context);
 			case AmaltheaPackage.CONFIG_MODEL:
 				return validateConfigModel((ConfigModel)value, diagnostics, context);
 			case AmaltheaPackage.EVENT_CONFIG:
@@ -1181,12 +1208,12 @@
 				return validateProcessChain((ProcessChain)value, diagnostics, context);
 			case AmaltheaPackage.PROCESS:
 				return validateProcess((org.eclipse.app4mc.amalthea.model.Process)value, diagnostics, context);
-			case AmaltheaPackage.ICALL_GRAPH_ITEM_CONTAINER:
-				return validateICallGraphItemContainer((ICallGraphItemContainer)value, diagnostics, context);
-			case AmaltheaPackage.CALL_GRAPH:
-				return validateCallGraph((CallGraph)value, diagnostics, context);
-			case AmaltheaPackage.CALL_GRAPH_ITEM:
-				return validateCallGraphItem((CallGraphItem)value, diagnostics, context);
+			case AmaltheaPackage.IACTIVITY_GRAPH_ITEM_CONTAINER:
+				return validateIActivityGraphItemContainer((IActivityGraphItemContainer)value, diagnostics, context);
+			case AmaltheaPackage.ACTIVITY_GRAPH:
+				return validateActivityGraph((ActivityGraph)value, diagnostics, context);
+			case AmaltheaPackage.ACTIVITY_GRAPH_ITEM:
+				return validateActivityGraphItem((ActivityGraphItem)value, diagnostics, context);
 			case AmaltheaPackage.MODE_SWITCH:
 				return validateModeSwitch((ModeSwitch)value, diagnostics, context);
 			case AmaltheaPackage.MODE_SWITCH_ENTRY:
@@ -1231,6 +1258,8 @@
 				return validateAccessPrecedenceSpec((AccessPrecedenceSpec)value, diagnostics, context);
 			case AmaltheaPackage.ORDER_PRECEDENCE_SPEC:
 				return validateOrderPrecedenceSpec((OrderPrecedenceSpec)value, diagnostics, context);
+			case AmaltheaPackage.IDEPENDS_ON:
+				return validateIDependsOn((IDependsOn)value, diagnostics, context);
 			case AmaltheaPackage.DATA_DEPENDENCY:
 				return validateDataDependency((DataDependency)value, diagnostics, context);
 			case AmaltheaPackage.RUNNABLE_PARAMETER:
@@ -1624,6 +1653,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean validateINamespaceMember(INamespaceMember iNamespaceMember, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iNamespaceMember, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean validateTag(Tag tag, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		if (!validate_NoCircularContainment(tag, diagnostics, context)) return false;
 		boolean result = validate_EveryMultiplicityConforms(tag, diagnostics, context);
@@ -1643,6 +1681,25 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean validateNamespace(Namespace namespace, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(namespace, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(namespace, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(namespace, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean validateClassifier(Classifier classifier, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		if (!validate_NoCircularContainment(classifier, diagnostics, context)) return false;
 		boolean result = validate_EveryMultiplicityConforms(classifier, diagnostics, context);
@@ -2723,6 +2780,24 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean validateIComponentContainer(IComponentContainer iComponentContainer, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iComponentContainer, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean validateIInterfaceContainer(IInterfaceContainer iInterfaceContainer, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iInterfaceContainer, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean validateISystem(ISystem iSystem, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(iSystem, diagnostics, context);
 	}
@@ -2732,17 +2807,17 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validatePort(Port port, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(port, diagnostics, context)) return false;
-		boolean result = validate_EveryMultiplicityConforms(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(port, diagnostics, context);
-		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(port, diagnostics, context);
+	public boolean validateComponentInterface(ComponentInterface componentInterface, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(componentInterface, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(componentInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(componentInterface, diagnostics, context);
 		return result;
 	}
 
@@ -2751,6 +2826,91 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean validateMainInterface(MainInterface mainInterface, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(mainInterface, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(mainInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(mainInterface, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean validateSubInterface(SubInterface subInterface, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(subInterface, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(subInterface, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(subInterface, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean validateComponentPort(ComponentPort componentPort, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(componentPort, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(componentPort, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(componentPort, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean validateComponentStructure(ComponentStructure componentStructure, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		if (!validate_NoCircularContainment(componentStructure, diagnostics, context)) return false;
+		boolean result = validate_EveryMultiplicityConforms(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryProxyResolves(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_UniqueID(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryKeyUnique(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(componentStructure, diagnostics, context);
+		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(componentStructure, diagnostics, context);
+		return result;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public boolean validateIComponentStructureMember(IComponentStructureMember iComponentStructureMember, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iComponentStructureMember, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean validateComponent(Component component, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		if (!validate_NoCircularContainment(component, diagnostics, context)) return false;
 		boolean result = validate_EveryMultiplicityConforms(component, diagnostics, context);
@@ -2836,8 +2996,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateQualifiedPort(QualifiedPort qualifiedPort, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(qualifiedPort, diagnostics, context);
+	public boolean validateInterfaceChannel(Map.Entry<?, ?> interfaceChannel, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint((EObject)interfaceChannel, diagnostics, context);
 	}
 
 	/**
@@ -2845,18 +3005,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateInterfacePort(InterfacePort interfacePort, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		if (!validate_NoCircularContainment(interfacePort, diagnostics, context)) return false;
-		boolean result = validate_EveryMultiplicityConforms(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryProxyResolves(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_UniqueID(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryKeyUnique(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(interfacePort, diagnostics, context);
-		if (result || diagnostics != null) result &= validateIReferable_validateInvariants(interfacePort, diagnostics, context);
-		return result;
+	public boolean validateQualifiedPort(QualifiedPort qualifiedPort, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(qualifiedPort, diagnostics, context);
 	}
 
 	/**
@@ -5477,8 +5627,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateICallGraphItemContainer(ICallGraphItemContainer iCallGraphItemContainer, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(iCallGraphItemContainer, diagnostics, context);
+	public boolean validateIActivityGraphItemContainer(IActivityGraphItemContainer iActivityGraphItemContainer, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iActivityGraphItemContainer, diagnostics, context);
 	}
 
 	/**
@@ -5486,8 +5636,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateCallGraph(CallGraph callGraph, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(callGraph, diagnostics, context);
+	public boolean validateActivityGraph(ActivityGraph activityGraph, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(activityGraph, diagnostics, context);
 	}
 
 	/**
@@ -5495,8 +5645,8 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public boolean validateCallGraphItem(CallGraphItem callGraphItem, DiagnosticChain diagnostics, Map<Object, Object> context) {
-		return validate_EveryDefaultConstraint(callGraphItem, diagnostics, context);
+	public boolean validateActivityGraphItem(ActivityGraphItem activityGraphItem, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(activityGraphItem, diagnostics, context);
 	}
 
 	/**
@@ -5742,6 +5892,15 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
+	public boolean validateIDependsOn(IDependsOn iDependsOn, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		return validate_EveryDefaultConstraint(iDependsOn, diagnostics, context);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
 	public boolean validateDataDependency(DataDependency dataDependency, DiagnosticChain diagnostics, Map<Object, Object> context) {
 		return validate_EveryDefaultConstraint(dataDependency, diagnostics, context);
 	}
@@ -7203,4 +7362,14 @@
 		return super.getResourceLocator();
 	}
 
+	/**
+	 * This check is done efficiently by using the AmaltheaIndex.
+	 * Therefore the standard implementation is disabled.
+	 */
+	@Override
+	public boolean validate_UniqueID(EObject eObject, DiagnosticChain diagnostics, Map<Object, Object> context) {
+		// do nothing
+		return true;
+	}
+
 } //AmaltheaValidator
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaExtensions.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaExtensions.java
new file mode 100644
index 0000000..5f0421a
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaExtensions.java
@@ -0,0 +1,74 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.model;
+
+import static com.google.common.base.Preconditions.checkArgument;
+
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ * This class provides static helper methods (extension methods).
+ * <p>
+ * The methods are called from several generated model objects.
+ */
+public class AmaltheaExtensions {
+	private static final String ARG_STRING_MESSAGE = "Argument is null, expected: String";
+	private static final String ARG_LIST_MESSAGE = "Argument is null, expected: EList";
+	private static final String ARG_LIST_ITEM_MESSAGE = "List argument contains null";
+
+	public static String toPlainString(final @NonNull EList<@NonNull String> segments, final @NonNull String delimiter) {
+		checkArgument(segments != null, ARG_LIST_MESSAGE);
+		checkArgument(!segments.contains(null), ARG_LIST_ITEM_MESSAGE);
+		checkArgument(delimiter != null, ARG_STRING_MESSAGE);
+
+		if (segments.isEmpty()) return "";
+
+		@SuppressWarnings("null")
+		String result = segments.get(0);
+		for (int i = 1; i < segments.size(); i++) {
+			result = result + delimiter + segments.get(i);
+		}
+		return result;
+	}
+
+	public static String toEncodedString(final @NonNull EList<@NonNull String> segments) {
+		checkArgument(segments != null, ARG_LIST_MESSAGE);
+		checkArgument(!segments.contains(null), ARG_LIST_ITEM_MESSAGE);
+
+		if (segments.isEmpty()) return "";
+
+		String result = encode(segments.get(0));
+		for (int i = 1; i < segments.size(); i++) {
+			result = result + "/" + encode(segments.get(i));
+		}
+		return result;
+	}
+
+	public static String encode(final @Nullable String str) {
+		if (str == null || str.isEmpty()) return "no-name";
+
+		try {
+			return URLEncoder.encode(str, StandardCharsets.UTF_8.toString());
+		} catch (Throwable e) {
+			throw org.eclipse.xtext.xbase.lib.Exceptions.sneakyThrow(e);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaServices.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaServices.java
index e5f8714..c8b1873 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaServices.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/AmaltheaServices.java
@@ -17,11 +17,8 @@
 
 import static com.google.common.base.Preconditions.checkArgument;
 
-import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import java.net.URLEncoder;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -91,37 +88,6 @@
 
 	public static final List<TimeUnit> TIME_UNIT_LIST = Collections
 			.unmodifiableList(Arrays.asList(TimeUnit.PS, TimeUnit.NS, TimeUnit.US, TimeUnit.MS, TimeUnit.S));
-
-	public static String getLongName(final @NonNull IReferable object) {
-		checkArgument(object != null, ARG_NULL_MESSAGE, I_REFERABLE);
-		
-		final String name = object.getName();
-		final String prefix = object.getNamePrefix();
-		if (prefix == null || prefix.isEmpty()) return name;
-
-		return prefix + "/" + name;
-	}
-	
-	public static String getUniqueName(final @NonNull IReferable object) {
-		checkArgument(object != null, ARG_NULL_MESSAGE, I_REFERABLE);
-		
-		final String name = object.getName();
-		final String prefix = object.getNamePrefix();
-		String s1 = (prefix == null || prefix.isEmpty()) ? "" : encodeName(prefix) + "/";
-		String s2 = encodeName(name) + "?type=" + object.eClass().getName();
-		
-		return s1 + s2;
-	}
-	
-	private static String encodeName(final @Nullable String name) {
-		if (name == null || name.isEmpty()) return "no-name";
-		
-		try {
-			return URLEncoder.encode(name, StandardCharsets.UTF_8.toString());
-		} catch (UnsupportedEncodingException e) {
-			return null;
-		}
-	}
 	
 	public static <T extends EObject> T getContainerOfType(final @NonNull EObject object, final @NonNull Class<T> type) {
 		checkArgument(object != null, ARG_OBJECT_MESSAGE);
@@ -582,7 +548,7 @@
 		List<QualifiedPort> qualifiedPorts = new ArrayList<QualifiedPort>();
 		for (ComponentInstance inst : system.getComponentInstances()) {
 			if (inst.getType() != null) {
-				for (Port port : inst.getType().getPorts()) {
+				for (ComponentPort port : inst.getType().getPorts()) {
 					QualifiedPort qp = AmaltheaFactory.eINSTANCE.createQualifiedPort();
 					qp.setInstance(inst);
 					qp.setPort(port);
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/Examples.xtend b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/Examples.xtend
index ce4f0d6..152ce58 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/Examples.xtend
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/Examples.xtend
@@ -119,25 +119,25 @@
 				
 				runnable [
 					name = "r1"
-					callGraph [
+					activityGraph [
 						ticks [ defaultConstant(500) ]
 					]
 				]
 				runnable [
 					name = "r2"
-					callGraph [
+					activityGraph [
 						ticks [ defaultConstant(2000) ]
 					]
 				]
 				task [
 					name = "t1"
-					callGraph [
+					activityGraph [
 						runnableCall [runnable = _find(Runnable, "r1")]
 					]
 				]
 				task [
 					name = "t2"
-					callGraph [
+					activityGraph [
 						runnableCall [runnable = _find(Runnable, "r2")]
 					]
 				]
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/SoftwareBuilder.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/SoftwareBuilder.java
index d20676d..e5cbcf5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/SoftwareBuilder.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/builder/SoftwareBuilder.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AsynchronousServerCall;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Channel;
 import org.eclipse.app4mc.amalthea.model.ClearEvent;
 import org.eclipse.app4mc.amalthea.model.CustomActivation;
@@ -26,7 +26,7 @@
 import org.eclipse.app4mc.amalthea.model.EventMask;
 import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
 import org.eclipse.app4mc.amalthea.model.Group;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.IDiscreteValueDeviation;
 import org.eclipse.app4mc.amalthea.model.ISR;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
@@ -180,23 +180,23 @@
 		initializer.apply(obj);
 	}
 
-	// ********** Call Graph **********
+	// ********** Activity Graph **********
 	
-	public void callGraph(final Task container, final Procedure1<CallGraph> initializer) {
-		final CallGraph obj = AmaltheaFactory.eINSTANCE.createCallGraph();
-		container.setCallGraph(obj);
+	public void activityGraph(final Task container, final Procedure1<ActivityGraph> initializer) {
+		final ActivityGraph obj = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		container.setActivityGraph(obj);
 		initializer.apply(obj);
 	}
 	
-	public void callGraph(final Runnable container, final Procedure1<CallGraph> initializer) {
-		final CallGraph obj = AmaltheaFactory.eINSTANCE.createCallGraph();
-		container.setCallGraph(obj);
+	public void activityGraph(final Runnable container, final Procedure1<ActivityGraph> initializer) {
+		final ActivityGraph obj = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		container.setActivityGraph(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - ModeSwitch **********
+	// ********** IActivityGraphItemContainer - Items - ModeSwitch **********
 
-	public void modeSwitch(final ICallGraphItemContainer container, final Procedure1<ModeSwitch> initializer) {
+	public void modeSwitch(final IActivityGraphItemContainer container, final Procedure1<ModeSwitch> initializer) {
 		final ModeSwitch obj = AmaltheaFactory.eINSTANCE.createModeSwitch();
 		container.getItems().add(obj);
 		initializer.apply(obj);
@@ -214,9 +214,9 @@
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - ProbabilitySwitch **********
+	// ********** IActivityGraphItemContainer - Items - ProbabilitySwitch **********
 
-	public void probabilitySwitch(final ICallGraphItemContainer container, final Procedure1<ProbabilitySwitch> initializer) {
+	public void probabilitySwitch(final IActivityGraphItemContainer container, final Procedure1<ProbabilitySwitch> initializer) {
 		final ProbabilitySwitch obj = AmaltheaFactory.eINSTANCE.createProbabilitySwitch();
 		container.getItems().add(obj);
 		initializer.apply(obj);
@@ -228,53 +228,53 @@
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - SchedulePoint **********
+	// ********** IActivityGraphItemContainer - Items - SchedulePoint **********
 
-	public void schedulePoint(final ICallGraphItemContainer container, final Procedure1<SchedulePoint> initializer) {
+	public void schedulePoint(final IActivityGraphItemContainer container, final Procedure1<SchedulePoint> initializer) {
 		final SchedulePoint obj = AmaltheaFactory.eINSTANCE.createSchedulePoint();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - InterProcessTrigger **********
+	// ********** IActivityGraphItemContainer - Items - InterProcessTrigger **********
 
-	public void interProcessTrigger(final ICallGraphItemContainer container, final Procedure1<InterProcessTrigger> initializer) {
+	public void interProcessTrigger(final IActivityGraphItemContainer container, final Procedure1<InterProcessTrigger> initializer) {
 		final InterProcessTrigger obj = AmaltheaFactory.eINSTANCE.createInterProcessTrigger();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - EnforcedMigration **********
+	// ********** IActivityGraphItemContainer - Items - EnforcedMigration **********
 
-	public void enforcedMigration(final ICallGraphItemContainer container, final Procedure1<EnforcedMigration> initializer) {
+	public void enforcedMigration(final IActivityGraphItemContainer container, final Procedure1<EnforcedMigration> initializer) {
 		final EnforcedMigration obj = AmaltheaFactory.eINSTANCE.createEnforcedMigration();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - TerminateProcess **********
+	// ********** IActivityGraphItemContainer - Items - TerminateProcess **********
 
-	public void terminateProcess(final ICallGraphItemContainer container, final Procedure1<TerminateProcess> initializer) {
+	public void terminateProcess(final IActivityGraphItemContainer container, final Procedure1<TerminateProcess> initializer) {
 		final TerminateProcess obj = AmaltheaFactory.eINSTANCE.createTerminateProcess();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - OS events **********
+	// ********** IActivityGraphItemContainer - Items - OS events **********
 
-	public void clearEvent(final ICallGraphItemContainer container, final Procedure1<ClearEvent> initializer) {
+	public void clearEvent(final IActivityGraphItemContainer container, final Procedure1<ClearEvent> initializer) {
 		final ClearEvent obj = AmaltheaFactory.eINSTANCE.createClearEvent();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	public void waitEvent(final ICallGraphItemContainer container, final Procedure1<WaitEvent> initializer) {
+	public void waitEvent(final IActivityGraphItemContainer container, final Procedure1<WaitEvent> initializer) {
 		final WaitEvent obj = AmaltheaFactory.eINSTANCE.createWaitEvent();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	public void setEvent(final ICallGraphItemContainer container, final Procedure1<SetEvent> initializer) {
+	public void setEvent(final IActivityGraphItemContainer container, final Procedure1<SetEvent> initializer) {
 		final SetEvent obj = AmaltheaFactory.eINSTANCE.createSetEvent();
 		container.getItems().add(obj);
 		initializer.apply(obj);
@@ -318,47 +318,47 @@
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - Group **********
+	// ********** IActivityGraphItemContainer - Items - Group **********
 
-	public void group(final ICallGraphItemContainer container, final Procedure1<Group> initializer) {
+	public void group(final IActivityGraphItemContainer container, final Procedure1<Group> initializer) {
 		final Group obj = AmaltheaFactory.eINSTANCE.createGroup();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - LabelAccess **********
+	// ********** IActivityGraphItemContainer - Items - LabelAccess **********
 
-	public void labelAccess(final ICallGraphItemContainer container, final Procedure1<LabelAccess> initializer) {
+	public void labelAccess(final IActivityGraphItemContainer container, final Procedure1<LabelAccess> initializer) {
 		final LabelAccess obj = AmaltheaFactory.eINSTANCE.createLabelAccess();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 	
-	public void modeLabelAccess(final ICallGraphItemContainer container, final Procedure1<ModeLabelAccess> initializer) {
+	public void modeLabelAccess(final IActivityGraphItemContainer container, final Procedure1<ModeLabelAccess> initializer) {
 		final ModeLabelAccess obj = AmaltheaFactory.eINSTANCE.createModeLabelAccess();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - RunnableCall **********
+	// ********** IActivityGraphItemContainer - Items - RunnableCall **********
 
-	public void runnableCall(final ICallGraphItemContainer container, final Procedure1<RunnableCall> initializer) {
+	public void runnableCall(final IActivityGraphItemContainer container, final Procedure1<RunnableCall> initializer) {
 		final RunnableCall obj = AmaltheaFactory.eINSTANCE.createRunnableCall();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 	
-	// ********** ICallGraphItemContainer - Items - ServerCall **********
+	// ********** IActivityGraphItemContainer - Items - ServerCall **********
 	
-	public void asynchronousServerCall(final ICallGraphItemContainer container, final Procedure1<AsynchronousServerCall> initializer) {
+	public void asynchronousServerCall(final IActivityGraphItemContainer container, final Procedure1<AsynchronousServerCall> initializer) {
 		final AsynchronousServerCall obj = AmaltheaFactory.eINSTANCE.createAsynchronousServerCall();
 		container.getItems().add(obj);
 		initializer.apply(obj);
 	}
 
-	// ********** ICallGraphItemContainer - Items - ExecutionNeed **********
+	// ********** IActivityGraphItemContainer - Items - ExecutionNeed **********
 
-	public void execNeed(final ICallGraphItemContainer container, final Procedure1<ExecutionNeed> initializer) {
+	public void execNeed(final IActivityGraphItemContainer container, final Procedure1<ExecutionNeed> initializer) {
 		final ExecutionNeed obj = AmaltheaFactory.eINSTANCE.createExecutionNeed();
 		container.getItems().add(obj);
 		initializer.apply(obj);
@@ -368,9 +368,9 @@
 		container.getNeeds().put(key, need);
 	}
 	
-	// ********** ICallGraphItemContainer - Items - Ticks **********
+	// ********** IActivityGraphItemContainer - Items - Ticks **********
 
-	public void ticks(final ICallGraphItemContainer container, final Procedure1<Ticks> initializer) {
+	public void ticks(final IActivityGraphItemContainer container, final Procedure1<Ticks> initializer) {
 		final Ticks obj = AmaltheaFactory.eINSTANCE.createTicks();
 		container.getItems().add(obj);
 		initializer.apply(obj);
@@ -390,6 +390,6 @@
 		container.getExtended().put(puDef, ticks);
 	}
 	
-	// ********** ICallGraphItemContainer - Items - to be extended **********
+	// ********** IActivityGraphItemContainer - Items - to be extended **********
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
index 8e4102b..03107ac 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaLoader.java
@@ -31,8 +31,7 @@
 public class AmaltheaLoader {
 
 	/**
-	 * Static method to load an AMALTHEA model from a file with a given pathname
-	 * string.
+	 * Static method to load an AMALTHEA model from a file with a given pathname string.
 	 * <p>
 	 * Possible path names:
 	 * <ul>
@@ -45,11 +44,10 @@
 	 * 		AMALTHEA model - null if load failed
 	 */
 	public static Amalthea loadFromFileNamed(String pathname) {
-		if (pathname != null) {
-			final File file = new File(pathname);
-			return loadFromFile(file);
-		}
-		return null;
+		if (pathname == null) return null;
+
+		final File file = new File(pathname);
+		return loadFromFile(file);
 	}
 
 	/**
@@ -60,11 +58,10 @@
 	 * 		AMALTHEA model - null if load failed
 	 */
 	public static Amalthea loadFromFile(File file) {
-		if (file != null) {
-			final URI uri = URI.createFileURI(file.getAbsolutePath());
-			return loadFromURI(uri);
-		}
-		return null;
+		if (file == null) return null;
+
+		final URI uri = URI.createFileURI(file.getAbsolutePath());
+		return loadFromURI(uri);
 	}
 
 	/**
@@ -75,25 +72,22 @@
 	 * 		AMALTHEA model - null if load failed
 	 */
 	public static Amalthea loadFromURI(URI uri) {
-		if (uri != null) {
-			final ResourceSet resSet = initializeResourceSet();
+		if (uri == null) return null;
 
-			java.lang.System.out.println("Reading file: " + uri.toString());
+		java.lang.System.out.println("Reading file: " + uri.toString());
+		
+		final ResourceSet resSet = initializeResourceSet();
+		final Resource res = resSet.createResource(uri);
+		if (res == null) return null;
 
-			final Resource res = resSet.createResource(uri);
-
-			if (res != null) {
-
-				try {
-					res.load(null);
-				} catch (IOException e) {
-					// ignore
-				}
-				for (final EObject content : res.getContents()) {
-					if (content instanceof Amalthea) {
-						return (Amalthea) content;
-					}
-				}
+		try {
+			res.load(null);
+		} catch (IOException e) {
+			// ignore
+		}
+		for (final EObject content : res.getContents()) {
+			if (content instanceof Amalthea) {
+				return (Amalthea) content;
 			}
 		}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
index 97e54be..f293da5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/io/AmaltheaWriter.java
@@ -45,11 +45,10 @@
 	 * 		boolean - true if file is written successfully
 	 */
 	public static boolean writeToFileNamed(Amalthea model, String pathname) {
-		if(model!=null && pathname!=null) {
-			final File file = new File(pathname);
-			return writeToFile(model, file);
-		}
-		return false;
+		if (model == null || pathname == null || pathname.isEmpty()) return false;
+
+		final File file = new File(pathname);
+		return writeToFile(model, file);
 	}
 
 	/**
@@ -61,11 +60,10 @@
 	 * 		boolean - true if file is written successfully
 	 */
 	public static boolean writeToFile(Amalthea model, File file) {
-		if(model!=null && file!=null) {
-			final URI uri = URI.createFileURI(file.getAbsolutePath());
-			return writeToURI(model, uri);
-		}
-		return false;
+		if (model == null || file == null) return false;
+
+		final URI uri = URI.createFileURI(file.getAbsolutePath());
+		return writeToURI(model, uri);
 	}
 
 	/**
@@ -77,22 +75,21 @@
 	 * 		boolean - true if file is written successfully
 	 */
 	public static boolean writeToURI(Amalthea model, URI uri) {
-		if(model !=null && uri!=null) {
-			final ResourceSet resSet = initializeResourceSet();
-			
-			java.lang.System.out.println("Writing file: " + uri.toString());
-			
-			final Resource res = resSet.createResource(uri);
-			res.getContents().add(EcoreUtil.copy(model));
-			try {
-				res.save(null);
-			} catch (IOException e) {
-				return false;
-			}
-			
-			return true;
+		if (model == null || uri == null) return false;
+
+		java.lang.System.out.println("Writing file: " + uri.toString());
+
+		final ResourceSet resSet = initializeResourceSet();
+		final Resource res = resSet.createResource(uri);
+		res.getContents().add(EcoreUtil.copy(model));
+
+		try {
+			res.save(null);
+		} catch (IOException e) {
+			return false;
 		}
-		return false;
+
+		return true;
 	}
 
 	private static ResourceSet initializeResourceSet() {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/DeploymentUtil.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/DeploymentUtil.java
index d691b88..ddee3d2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/DeploymentUtil.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/DeploymentUtil.java
@@ -191,7 +191,7 @@
 
 			for (SchedulerAllocation schedAlloc : mappingModel.getSchedulerAllocation()) {
 				for (TaskAllocation taskAlloc : taskAllocations) {
-					if (schedAlloc.getScheduler().equals(taskAlloc.getScheduler()))
+					if (schedAlloc.getScheduler()!= null && schedAlloc.getScheduler().equals(taskAlloc.getScheduler()))
 						// check core affinity -- retain the core affinity with the scheduler
 						// responsibility
 						if (!taskAlloc.getAffinity().isEmpty()) {
@@ -211,7 +211,7 @@
 			for (ISRAllocation isrAlloc : mappingModel.getIsrAllocation()) {
 				if (isrAlloc.getIsr().equals(process)) {
 					for (SchedulerAllocation coreAlloc : mappingModel.getSchedulerAllocation()) {
-						if (coreAlloc.getScheduler().equals(isrAlloc.getController())) {
+						if (coreAlloc.getScheduler() != null && coreAlloc.getScheduler().equals(isrAlloc.getController())) {
 							processingUnits.addAll(coreAlloc.getResponsibility());
 						}
 					}
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.java
index 2f16248..2e0586e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/RuntimeUtil.java
@@ -369,9 +369,9 @@
 		call.setRunnable(run);
 
 		if (positon.equals(PositionType.FIRST)) {
-			process.getCallGraph().getItems().add(0, call);
+			process.getActivityGraph().getItems().add(0, call);
 		} else {
-			process.getCallGraph().getItems().add(call);
+			process.getActivityGraph().getItems().add(call);
 		}
 
 		return run;
@@ -395,9 +395,9 @@
 		call.setRunnable(run);
 
 		if (positon.equals(PositionType.FIRST)) {
-			process.getCallGraph().getItems().add(0, call);
+			process.getActivityGraph().getItems().add(0, call);
 		} else {
-			process.getCallGraph().getItems().add(call);
+			process.getActivityGraph().getItems().add(call);
 		}
 
 		return run;
@@ -716,7 +716,7 @@
 	public static HashMap<Stimulus, Long> getTriggeredStimuli(Process process, EMap<ModeLabel, String> modes) {
 		HashMap<Stimulus, Long> stimuliMap = new HashMap<Stimulus, Long>();
 		List<InterProcessTrigger> interProcessTriggers = SoftwareUtil
-				.collectCallGraphItems(process.getCallGraph(), modes, InterProcessTrigger.class);
+				.collectActivityGraphItems(process.getActivityGraph(), modes, InterProcessTrigger.class);
 
 		interProcessTriggers.forEach(ipa -> {
 			if (ipa.getCounter() != null) {
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/SoftwareUtil.java b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/SoftwareUtil.java
index 3e75279..772bbe2 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/SoftwareUtil.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/src/org/eclipse/app4mc/amalthea/model/util/SoftwareUtil.java
@@ -29,11 +29,11 @@
 import java.util.stream.Collectors;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaServices;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.ClearEvent;
 import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
 import org.eclipse.app4mc.amalthea.model.Group;
-import org.eclipse.app4mc.amalthea.model.ICallGraphItemContainer;
+import org.eclipse.app4mc.amalthea.model.IActivityGraphItemContainer;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
@@ -65,10 +65,10 @@
 	 * 
 	 * @param container	call graph, group, ...
 	 * @return
-	 * 		List of CallGraphItems
+	 * 		List of ActivityGraphItems
 	 */
-	public static EList<CallGraphItem> collectCallGraphItems(final ICallGraphItemContainer container) {
-		return collectCallGraphItems(container, null, CallGraphItem.class, null);
+	public static EList<ActivityGraphItem> collectActivityGraphItems(final IActivityGraphItemContainer container) {
+		return collectActivityGraphItems(container, null, ActivityGraphItem.class, null);
 	}
 
 	/**
@@ -78,10 +78,10 @@
 	 * @param container	call graph, group, ...
 	 * @param modes		(optional) - null works
 	 * @return
-	 * 		List of CallGraphItems
+	 * 		List of ActivityGraphItems
 	 */
-	public static EList<CallGraphItem> collectCallGraphItems(final ICallGraphItemContainer container, final EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(container, modes, CallGraphItem.class, null);
+	public static EList<ActivityGraphItem> collectActivityGraphItems(final IActivityGraphItemContainer container, final EMap<ModeLabel, String> modes) {
+		return collectActivityGraphItems(container, modes, ActivityGraphItem.class, null);
 	}
 
 	/**
@@ -92,11 +92,11 @@
 	 * @param modes		(optional) - null works
 	 * @param filter	lambda expression (e.g. "a -&gt; a instanceof LabelAccess")
 	 * @return
-	 * 		List of CallGraphItems
+	 * 		List of ActivityGraphItems
 	 */
-	public static EList<CallGraphItem> collectCallGraphItems(final ICallGraphItemContainer container, final EMap<ModeLabel, String> modes,
-			final Function<CallGraphItem, Boolean> filter) {
-		return collectCallGraphItems(container, modes, CallGraphItem.class, filter);
+	public static EList<ActivityGraphItem> collectActivityGraphItems(final IActivityGraphItemContainer container, final EMap<ModeLabel, String> modes,
+			final Function<ActivityGraphItem, Boolean> filter) {
+		return collectActivityGraphItems(container, modes, ActivityGraphItem.class, filter);
 	}
 	
 	/**
@@ -105,13 +105,13 @@
 	 * 
 	 * @param container		call graph, group, ...
 	 * @param modes			(optional) - null works
-	 * @param targetClass	subclass of CallGraphItem that restricts the result
+	 * @param targetClass	subclass of ActivityGraphItem that restricts the result
 	 * @return
-	 * 		List of T extends CallGraphItems
+	 * 		List of T extends ActivityGraphItems
 	 */
-	public static <T extends CallGraphItem> EList<T> collectCallGraphItems(final ICallGraphItemContainer container, final EMap<ModeLabel, String> modes,
+	public static <T extends ActivityGraphItem> EList<T> collectActivityGraphItems(final IActivityGraphItemContainer container, final EMap<ModeLabel, String> modes,
 			final Class<T> targetClass) {
-		return collectCallGraphItems(container, modes, targetClass, null);
+		return collectActivityGraphItems(container, modes, targetClass, null);
 	}
 	
 	/**
@@ -120,42 +120,42 @@
 	 * 
 	 * @param container		call graph, group, ...
 	 * @param modes			(optional) - null works
-	 * @param targetClass	subclass of CallGraphItem that restricts the result
+	 * @param targetClass	subclass of ActivityGraphItem that restricts the result
 	 * @param filter		lambda expression (e.g. "a -&gt; a instanceof LabelAccess")
 	 * @return
-	 * 		List of T extends CallGraphItems
+	 * 		List of T extends ActivityGraphItems
 	 */
-	public static <T extends CallGraphItem> EList<T> collectCallGraphItems(final ICallGraphItemContainer container, final EMap<ModeLabel, String> modes,
+	public static <T extends ActivityGraphItem> EList<T> collectActivityGraphItems(final IActivityGraphItemContainer container, final EMap<ModeLabel, String> modes,
 			final Class<T> targetClass, final Function<T, Boolean> filter) {
 		EList<T> itemList = new BasicEList<T>();
-		collectCallGraphItems(container.getItems(), modes, targetClass, filter, itemList);
+		collectActivityGraphItems(container.getItems(), modes, targetClass, filter, itemList);
 		return itemList;
 	}
 
 
-	private static <T extends CallGraphItem> void collectCallGraphItems(final EList<CallGraphItem> input, final EMap<ModeLabel, String> modes,
+	private static <T extends ActivityGraphItem> void collectActivityGraphItems(final EList<ActivityGraphItem> input, final EMap<ModeLabel, String> modes,
 			final Class<T> targetClass, final Function<T, Boolean> filter, final List<T> itemList) {
-		for (CallGraphItem item : input) {
+		for (ActivityGraphItem item : input) {
 			if (item instanceof Group) {
-				collectCallGraphItems(((Group) item).getItems(), modes, targetClass, filter, itemList);
+				collectActivityGraphItems(((Group) item).getItems(), modes, targetClass, filter, itemList);
 			} else if (item instanceof ProbabilitySwitch) {
 				ProbabilitySwitch propSwitch = (ProbabilitySwitch) item;
 				for (ProbabilitySwitchEntry pse : propSwitch.getEntries()) {
-					collectCallGraphItems(pse.getItems(), modes, targetClass, filter, itemList);
+					collectActivityGraphItems(pse.getItems(), modes, targetClass, filter, itemList);
 				}
 			} else if (item instanceof ModeSwitch) {
 				ModeSwitch modeSwitch = (ModeSwitch) item;
 				boolean includeDefault = true;
 				for (ModeSwitchEntry mse : modeSwitch.getEntries()) {
 					if (modes == null) {
-						collectCallGraphItems(mse.getItems(), modes, targetClass, filter, itemList);
+						collectActivityGraphItems(mse.getItems(), modes, targetClass, filter, itemList);
 					} else if (mse.getCondition().isSatisfiedBy(modes)) {
-						collectCallGraphItems(mse.getItems(), modes, targetClass, filter, itemList);
+						collectActivityGraphItems(mse.getItems(), modes, targetClass, filter, itemList);
 						includeDefault = false;
 					}
 				}
 				if (includeDefault && modeSwitch.getDefaultEntry() != null) {
-					collectCallGraphItems(modeSwitch.getDefaultEntry().getItems(), modes, targetClass, filter, itemList);
+					collectActivityGraphItems(modeSwitch.getDefaultEntry().getItems(), modes, targetClass, filter, itemList);
 				}
 			} else if (targetClass.isInstance(item)) {
 				T castedItem = targetClass.cast(item);
@@ -175,7 +175,7 @@
 	 * 		Set of Labels
 	 */
 	public static Set<Label> getAccessedLabelSet(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class)
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class)
 			.stream().map(la -> la.getData()).filter(Objects::nonNull).collect(Collectors.toSet());
 	}
 
@@ -187,7 +187,7 @@
 	 * 		Set of Labels
 	 */
 	public static Set<Label> getReadLabelSet(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class, (la -> la.getAccess() == READ))
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class, (la -> la.getAccess() == READ))
 				.stream().map(la -> la.getData()).filter(Objects::nonNull).collect(Collectors.toSet());
 	}
 
@@ -199,7 +199,7 @@
 	 * 		Set of Labels
 	 */
 	public static Set<Label> getWriteLabelSet(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class, (la -> la.getAccess() == WRITE))
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class, (la -> la.getAccess() == WRITE))
 			.stream().map(la -> la.getData()).filter(Objects::nonNull).collect(Collectors.toSet());
 	}
 
@@ -211,7 +211,7 @@
 	 * 		List of LabelAccesses
 	 */
 	public static List<LabelAccess> getLabelAccessList(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class);	
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class);	
 	}
 
 	/**
@@ -222,7 +222,7 @@
 	 * 		List of LabelAccesses
 	 */
 	public static List<LabelAccess> getReadLabelAccessList(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class, (la -> la.getAccess() == READ));	
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class, (la -> la.getAccess() == READ));	
 	}
 
 	/**
@@ -233,7 +233,7 @@
 	 * 		List of LabelAccesses
 	 */
 	public static List<LabelAccess> getWriteLabelAccessList(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class, (la -> la.getAccess() == WRITE));	
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class, (la -> la.getAccess() == WRITE));	
 	}
 
 	/**
@@ -244,7 +244,7 @@
 	 * 		Map: Label -&gt; List of LabelAccesses
 	 */
 	public static Map<Label, List<LabelAccess>> getLabelToLabelAccessMap(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class, (la -> la.getData() != null))
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class, (la -> la.getData() != null))
 			.stream().collect(Collectors.groupingBy(LabelAccess::getData));
 	}
 
@@ -256,7 +256,7 @@
 	 * 		Label -&gt; List of LabelAccessStatistics
 	 */
 	public static Map<Label, List<LabelAccessStatistic>> getLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class,
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class,
 					(la -> la.getData() != null && la.getStatistic() != null))
 				.stream().collect(Collectors.groupingBy(
 						LabelAccess::getData,
@@ -271,7 +271,7 @@
 	 * 		Map: Label -&gt; List of LabelAccessStatistics
 	 */
 	public static Map<Label, List<LabelAccessStatistic>> getReadLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class,
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class,
 				(la -> la.getData() != null && la.getStatistic() != null && la.getAccess() == READ))
 			.stream().collect(Collectors.groupingBy(
 					LabelAccess::getData,
@@ -286,7 +286,7 @@
 	 * 		Map: Label -&gt; List of LabelAccessStatistics
 	 */
 	public static Map<Label, List<LabelAccessStatistic>> getWriteLabelAccessStatisticsMap(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, LabelAccess.class,
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, LabelAccess.class,
 				(la -> la.getData() != null && la.getStatistic() != null && la.getAccess() == WRITE))
 			.stream().collect(Collectors.groupingBy(
 					LabelAccess::getData,
@@ -511,7 +511,7 @@
 	 * 		List of Runnables
 	 */
 	public static List<Runnable> getRunnableList(Process process, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(process.getCallGraph(), modes, RunnableCall.class)
+		return collectActivityGraphItems(process.getActivityGraph(), modes, RunnableCall.class)
 			.stream().map(call -> call.getRunnable()).filter(Objects::nonNull).collect(Collectors.toList());
 	}
 
@@ -566,7 +566,7 @@
 		for (LabelAccess la : label.getLabelAccesses()) {
 			if (la.getAccess() == LabelAccessEnum.READ) {
 				Runnable run = AmaltheaServices.getContainerOfType(la, Runnable.class);
-				if (modes == null || modes.isEmpty() || (collectCallGraphItems(run.getCallGraph(), modes)).contains(la)) {
+				if (modes == null || modes.isEmpty() || (collectActivityGraphItems(run.getActivityGraph(), modes)).contains(la)) {
 					result.add((Runnable) AmaltheaServices.getContainerOfType(la, Runnable.class));
 				}
 			}
@@ -597,7 +597,7 @@
 		for (LabelAccess la : label.getLabelAccesses()) {
 			if (la.getAccess().equals(LabelAccessEnum.WRITE)) {
 				Runnable run = AmaltheaServices.getContainerOfType(la, Runnable.class);
-				if (modes == null || modes.isEmpty() || (collectCallGraphItems(run.getCallGraph(), modes)).contains(la)) {
+				if (modes == null || modes.isEmpty() || (collectActivityGraphItems(run.getActivityGraph(), modes)).contains(la)) {
 					result.add((Runnable) AmaltheaServices.getContainerOfType(la, Runnable.class));
 				}
 			}
@@ -624,7 +624,7 @@
 	 * 		List of SetEvents
 	 */
 	public static List<SetEvent> collectSetEvents(Process process, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(process.getCallGraph(), modes, SetEvent.class);
+		return collectActivityGraphItems(process.getActivityGraph(), modes, SetEvent.class);
 	}
 
 	/**
@@ -635,7 +635,7 @@
 	 * 		List of ClearEvents
 	 */
 	public static List<ClearEvent> collectClearEvents(Process process, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(process.getCallGraph(), modes, ClearEvent.class);
+		return collectActivityGraphItems(process.getActivityGraph(), modes, ClearEvent.class);
 	}
 
 	/**
@@ -646,7 +646,7 @@
 	 * 		List of WaitEvents
 	 */
 	public static List<WaitEvent> collectWaitEvents(Process process, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(process.getCallGraph(), modes, WaitEvent.class);
+		return collectActivityGraphItems(process.getActivityGraph(), modes, WaitEvent.class);
 	}
 
 	/**
@@ -656,8 +656,8 @@
 	 * @return
 	 * 		List of CallSequenceItems
 	 */
-	public static List<CallGraphItem> collectEventsOfProcess(Process process, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(process.getCallGraph(), modes,
+	public static List<ActivityGraphItem> collectEventsOfProcess(Process process, EMap<ModeLabel, String> modes) {
+		return collectActivityGraphItems(process.getActivityGraph(), modes,
 				(call -> call instanceof ClearEvent || call instanceof SetEvent || call instanceof WaitEvent));
 	}
 
@@ -690,7 +690,7 @@
 			if (caller == null) continue;
 			
 			if (modes != null && !modes.isEmpty()) {
-				for (RunnableCall rc : collectCallGraphItems(caller.getCallGraph(), modes, RunnableCall.class)) {
+				for (RunnableCall rc : collectActivityGraphItems(caller.getActivityGraph(), modes, RunnableCall.class)) {
 					if (rc.getRunnable() == runnable) {
 						result.add(caller);
 						break;
@@ -717,7 +717,7 @@
 			if (caller == null) continue;
 			
 			if (modes != null && !modes.isEmpty()) {
-				for (RunnableCall rc : collectCallGraphItems(caller.getCallGraph(), modes, RunnableCall.class)) {
+				for (RunnableCall rc : collectActivityGraphItems(caller.getActivityGraph(), modes, RunnableCall.class)) {
 					if (rc.getRunnable() == runnable) {
 						result.add(caller);
 						break;
@@ -738,7 +738,7 @@
 	 * 		List of Runnables
 	 */
 	public static List<Runnable> getCalledRunnables(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, RunnableCall.class)
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, RunnableCall.class)
 			.stream().map(rc -> rc.getRunnable()).filter(Objects::nonNull).collect(Collectors.toList());
 	}
 
@@ -750,7 +750,7 @@
 	 * 		List of ExecutionNeeds
 	 */
 	public static List<ExecutionNeed> getExecutionNeeds(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, ExecutionNeed.class);
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, ExecutionNeed.class);
 		
 		//TODO Should nested runnable calls also be included ? (potential cycles)
 	}
@@ -765,7 +765,7 @@
 	public static List<ExecutionNeed> getExecutionNeeds(Process process, EMap<ModeLabel, String> modes) {
 		List<ExecutionNeed> result = new ArrayList<>();
 		// add needs on process level
-		result.addAll(collectCallGraphItems(process.getCallGraph(), modes, ExecutionNeed.class));
+		result.addAll(collectActivityGraphItems(process.getActivityGraph(), modes, ExecutionNeed.class));
 		// add needs of called runnables
 		for (Runnable run : getRunnableList(process, modes)) {
 			result.addAll(getExecutionNeeds(run, modes));
@@ -781,7 +781,7 @@
 	 * 		List of Ticks
 	 */
 	public static List<Ticks> getTicks(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, Ticks.class);
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, Ticks.class);
 		
 		//TODO Should nested runnable calls also be included ? (potential cycles)
 	}
@@ -796,7 +796,7 @@
 	public static List<Ticks> getTicks(Process process, EMap<ModeLabel, String> modes) {
 		List<Ticks> result = new ArrayList<>();
 		// add needs on process level
-		result.addAll(collectCallGraphItems(process.getCallGraph(), modes, Ticks.class));
+		result.addAll(collectActivityGraphItems(process.getActivityGraph(), modes, Ticks.class));
 		// add needs of called runnables
 		for(Runnable run : getRunnableList(process, modes)) {
 			result.addAll(getTicks(run, modes));
@@ -812,7 +812,7 @@
 	 * 		Set of ServerCall
 	 */
 	public static Set<ServerCall> getServerCallSet(Runnable runnable, EMap<ModeLabel, String> modes) {
-		return collectCallGraphItems(runnable.getCallGraph(), modes, ServerCall.class).stream().collect(Collectors.toSet());
+		return collectActivityGraphItems(runnable.getActivityGraph(), modes, ServerCall.class).stream().collect(Collectors.toSet());
 	}
 
 	/**
diff --git a/plugins/org.eclipse.app4mc.amalthea.model/xtend-gen/org/eclipse/app4mc/amalthea/model/builder/Examples.java b/plugins/org.eclipse.app4mc.amalthea.model/xtend-gen/org/eclipse/app4mc/amalthea/model/builder/Examples.java
index 3d620a2..0657308 100644
--- a/plugins/org.eclipse.app4mc.amalthea.model/xtend-gen/org/eclipse/app4mc/amalthea/model/builder/Examples.java
+++ b/plugins/org.eclipse.app4mc.amalthea.model/xtend-gen/org/eclipse/app4mc/amalthea/model/builder/Examples.java
@@ -12,10 +12,10 @@
  */
 package org.eclipse.app4mc.amalthea.model.builder;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Alias;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.BaseTypeDefinition;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.CommonElements;
 import org.eclipse.app4mc.amalthea.model.ConstraintsModel;
 import org.eclipse.app4mc.amalthea.model.CoreClassifier;
@@ -210,46 +210,46 @@
         this.b4.typeDefinition_BaseType(it_1, _function_4);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r1");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_7 = (Ticks it_4) -> {
               this.b3.defaultConstant(it_4, 500);
             };
             this.b3.ticks(it_3, _function_7);
           };
-          this.b3.callGraph(it_2, _function_6);
+          this.b3.activityGraph(it_2, _function_6);
         };
         this.b3.runnable(it_1, _function_5);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_6 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r2");
-          final Procedure1<CallGraph> _function_7 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_7 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_8 = (Ticks it_4) -> {
               this.b3.defaultConstant(it_4, 2000);
             };
             this.b3.ticks(it_3, _function_8);
           };
-          this.b3.callGraph(it_2, _function_7);
+          this.b3.activityGraph(it_2, _function_7);
         };
         this.b3.runnable(it_1, _function_6);
         final Procedure1<Task> _function_7 = (Task it_2) -> {
           it_2.setName("t1");
-          final Procedure1<CallGraph> _function_8 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_8 = (ActivityGraph it_3) -> {
             final Procedure1<RunnableCall> _function_9 = (RunnableCall it_4) -> {
               it_4.setRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "r1"));
             };
             this.b3.runnableCall(it_3, _function_9);
           };
-          this.b3.callGraph(it_2, _function_8);
+          this.b3.activityGraph(it_2, _function_8);
         };
         this.b3.task(it_1, _function_7);
         final Procedure1<Task> _function_8 = (Task it_2) -> {
           it_2.setName("t2");
-          final Procedure1<CallGraph> _function_9 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_9 = (ActivityGraph it_3) -> {
             final Procedure1<RunnableCall> _function_10 = (RunnableCall it_4) -> {
               it_4.setRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "r2"));
             };
             this.b3.runnableCall(it_3, _function_10);
           };
-          this.b3.callGraph(it_2, _function_9);
+          this.b3.activityGraph(it_2, _function_9);
         };
         this.b3.task(it_1, _function_8);
       };
diff --git a/plugins/org.eclipse.app4mc.amalthea.nature/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.nature/META-INF/MANIFEST.MF
index 6751d25..08e5411 100644
--- a/plugins/org.eclipse.app4mc.amalthea.nature/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.nature/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Nature
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.nature;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Automatic-Module-Name: org.eclipse.app4mc.amalthea.nature
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.ui,
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/META-INF/MANIFEST.MF
index dddfe5e..446fb10 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Sphinx Editors Support
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.sphinx.ui.editors;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: com.ibm.icu,
  org.apache.commons.lang,
@@ -35,3 +35,4 @@
 Bundle-Activator: org.eclipse.app4mc.amalthea.sphinx.ui.editors.SphinxSupportPlugin
 Bundle-ActivationPolicy: lazy
 Automatic-Module-Name: org.eclipse.app4mc.amalthea.sphinx.ui.editors
+Import-Package: org.eclipse.e4.core.services.events
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/actions/ValidateAction.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/actions/ValidateAction.java
index 3b6aa46..769886d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/actions/ValidateAction.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/actions/ValidateAction.java
@@ -39,8 +39,10 @@
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.StructuredViewer;
 import org.eclipse.jface.window.Window;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.ui.IWorkbenchWindow;
 import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.plugin.AbstractUIPlugin;
@@ -119,7 +121,7 @@
 			job.addJobChangeListener(new JobChangeAdapter() {
 				public void done(IJobChangeEvent event) {
 					if (event.getResult().isOK()) {
-						// Update problems view
+						// *** Update problems view ***
 						
 						if (EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
 							// debugging
@@ -145,6 +147,46 @@
 					}
 				}
 			});
+			job.addJobChangeListener(new JobChangeAdapter() {
+				public void done(IJobChangeEvent event) {
+					if (event.getResult().isOK()) {
+						// *** Show message dialog ***
+						
+						if (EMFPlugin.IS_RESOURCES_BUNDLE_AVAILABLE) {
+							
+							// count results
+							int errors = 0;
+							int warnings = 0;
+							for (ValidationDiagnostic diag : executor.getResults()) {
+								switch (diag.getSeverityLevel()) {
+								case ERROR: errors++; break;
+								case WARNING: warnings++; break;
+								default: break;
+								}
+							}
+							
+							String message;
+							if (errors == 0 && warnings == 0) {
+								message = "No errors or warnings.";
+							} else {
+								message = "Found " + errors + " errors and " + warnings + " warnings."
+										+ "\r\r See problems view for further details.";
+							}
+							final String displayString = "Validation finished !" + "\r\r" + message;
+							
+							PlatformUI.getWorkbench().getDisplay().asyncExec( new Runnable() {
+								@Override
+								public void run() {
+								MessageDialog.openInformation(
+									PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
+									"AMALTHEA Model Validation",
+									displayString);
+								  }
+							} );
+						}
+					}
+				}
+			});
 			job.schedule(); // start as soon as possible
 
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
index d2de023..a8824c0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui.editors/src/org/eclipse/app4mc/amalthea/sphinx/ui/editors/editor/ExtendedBasicTransactionalFormEditor.java
@@ -1,13 +1,13 @@
 /**
  ********************************************************************************
  * Copyright (c) 2015-2019 itemis AG and others.
- * 
+ *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
  * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
+ *
  * SPDX-License-Identifier: EPL-2.0
- * 
+ *
  *  Contributors:
  *     itemis AG - initial API and implementation
  *     Robert Bosch GmbH
@@ -35,8 +35,8 @@
 import org.eclipse.core.resources.IResourceChangeListener;
 import org.eclipse.core.resources.ResourcesPlugin;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.Platform;
 import org.eclipse.e4.core.contexts.IEclipseContext;
+import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.e4.ui.css.swt.theme.IThemeEngine;
 import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.emf.common.notify.AdapterFactory;
@@ -159,11 +159,11 @@
 
 	/*
 	 * Workaround for empty viewer after click on already selected item
-	 * 
+	 *
 	 * On Windows some SWT bug avoids repainting of non selected elements. Since the related SWT issue
 	 * has been discussed for years and no real fix was found, we try to limit the negative effects.
 	 * See Bugzilla entries: 491737, 458015, 433858.
-	 * 
+	 *
 	 * If (1) OS is Windows and (2) theming is enabled then an additional redraw is called explicitly.
 	 * Users may notice a minor flickering on selection. However, that is surely preferable to not seeing
 	 * unselected elements at all.
@@ -210,7 +210,7 @@
 	 * <br>
 	 * In case if the version of model (associated to the input file) and Meta-Model
 	 * are different -> Message is shown and Editor is not opened
-	 * 
+	 *
 	 */
 	private boolean isFileContainingValidModelNameSpace() {
 
@@ -318,38 +318,46 @@
 		String versionMismatchMessage = NLS.bind(
 				"Unsupported File ! \r\rEditor could not be opened because of a version mismatch. \r\rFound AMALTHEA model version : {0}\rCurrent editor supports only AMALTHEA model version :  {1}",
 				new Object[] { versionFromModel, versionFromMetaModel });
-		
-		if (Platform.getBundle("org.eclipse.app4mc.amalthea.converters.ui") == null) {
-			// migration plugins are not loaded -> show warning
-			MessageDialog.openWarning(
-					getSite().getShell(), "AMALTHEA Model Editor",
-					versionMismatchMessage + "\r\r** AMALTHEA Model Migration utility is not available");
-		} else {
-			// other APP4MC version detected -> do not open and show migration hint
-			MessageDialog dialog = new MessageDialog(
-					getSite().getShell(), "AMALTHEA Model Editor", null,
-					versionMismatchMessage + "\r\r** Start AMALTHEA Model Migration utility to convert the model",
-					MessageDialog.QUESTION_WITH_CANCEL, 0,
-					"Migrate to " + versionFromMetaModel, "Show Migration Dialog", "Cancel");
-			int open = dialog.open();
-			// If user chose Migrate option then the Model Migration command is executed to show the migration dialog
-			// IF Start Simple Migration is selected then return value is 0 & for Show Migration Dialog it is 1
-			if (open == MessageDialog.OK || open == MessageDialog.CANCEL) {
-				ICommandService cmdService = getSite().getService(ICommandService.class);
-				Command sampleCommand = cmdService.getCommand("org.eclipse.app4mc.amalthea.modelmigration.dialog.cmd");
 
-				Map<String, String> params = new HashMap<>();
-				if (open == MessageDialog.OK)
-					params.put("executioncontext", "simplemigration");
-				try {
-					sampleCommand.executeWithChecks(new ExecutionEvent(sampleCommand, params, null, null));
-				} catch (ExecutionException | NotDefinedException | NotEnabledException | NotHandledException e) {
-					e.printStackTrace();
+		// *** Check if migration to current version is available ***
+
+		MApplication application = PlatformUI.getWorkbench().getService(MApplication.class);
+		if (application != null) {
+			IEclipseContext context = application.getContext();
+			if (context != null) {
+				Object latestSupportedMigrationVersion = context.get("APP4MC_MODEL_MIGRATION_VERSION");
+				if (latestSupportedMigrationVersion != null) {
+					// the migration component is available in the runtime
+					// other APP4MC version detected -> do not open and show migration hint
+					MessageDialog dialog = new MessageDialog(
+							getSite().getShell(), "AMALTHEA Model Editor", null,
+							versionMismatchMessage + "\r\r** Start AMALTHEA Model Migration utility to convert the model",
+							MessageDialog.QUESTION_WITH_CANCEL, 0,
+							"Migrate to " + versionFromMetaModel, "Show Migration Dialog", "Cancel");
+					int result = dialog.open();
+					// If user choose "Migrate to" option the simple migration is executed (return value == 0)
+					// If user choose "Show Migration Dialog" the migration dialog is opened (return value == 1)
+					if (result == 0 || result == 1) {
+						// send an event to trigger the migration
+						// the migration component has an event handler that will then trigger the
+						IEventBroker broker = getSite().getService(IEventBroker.class);
+						if (broker != null) {
+							String executionContext = (result == 0) ? "simplemigration" : "dialogmigration";
+							HashMap<String, String> args = new HashMap<>();
+							args.put("type", executionContext);
+							args.put("version", versionFromMetaModel);
+							broker.send("org/eclipse/app4mc/amalthea/converter/CONVERT", args);
+						}
+					}
+				} else {
+					// migration plugins are not loaded -> show warning
+					MessageDialog.openWarning(
+							getSite().getShell(), "AMALTHEA Model Editor",
+							versionMismatchMessage + "\r\r** AMALTHEA Model Migration utility is not available");
 				}
 			}
-
 		}
-		
+
 		close(false);
 		return false;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/META-INF/MANIFEST.MF
index e412270..1217b52 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Sphinx UI Support
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.sphinx.ui;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.common,
  org.eclipse.emf.edit,
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedAmaltheaItemProviderAdapterFactory.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedAmaltheaItemProviderAdapterFactory.java
index dc9794b..03647c3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedAmaltheaItemProviderAdapterFactory.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedAmaltheaItemProviderAdapterFactory.java
@@ -18,7 +18,15 @@
 import org.eclipse.app4mc.amalthea.model.provider.AmaltheaItemProviderAdapterFactory;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.extended.ExtendedCoreClassifierIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.extended.ExtendedMemoryClassifierIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.common.extended.ExtendedNamespaceIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.extended.ExtendedTagIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedComponentIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedComponentInstanceIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedComponentStructureIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedCompositeIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedConnectorIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedMainInterfaceIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended.ExtendedSystemIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.hw.extended.ExtendedCacheDefinitionIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.hw.extended.ExtendedCacheIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.hw.extended.ExtendedConnectionHandlerDefinitionIP;
@@ -58,6 +66,19 @@
 
 public class ExtendedAmaltheaItemProviderAdapterFactory extends AmaltheaItemProviderAdapterFactory {
 
+
+// *************** Hardware Model ***************
+
+	@Override
+	public Adapter createHWModelAdapter() {
+		return new ExtendedHWModelIP(this);
+	}
+
+	@Override
+	public Adapter createHwStructureAdapter() {
+		return new ExtendedHwStructureIP(this);
+	}
+
 // HWModel Definitions
 
 	@Override
@@ -128,15 +149,24 @@
 		return new ExtendedHwConnectionIP(this);
 	}
 
-// CommonElements
+// *************** Common Elements ***************
 
-	// @Override
+	@Override
+	public Adapter createCommonElementsAdapter() {
+		return new ExtendedCommonElementsIP(this);
+	}
+
 	@Override
 	public Adapter createTagAdapter() {
 		return new ExtendedTagIP(this);
 	}
 
 	@Override
+	public Adapter createNamespaceAdapter() {
+		return new ExtendedNamespaceIP(this);
+	}
+
+	@Override
 	public Adapter createCoreClassifierAdapter() {
 		return new ExtendedCoreClassifierIP(this);
 	}
@@ -146,6 +176,13 @@
 		return new ExtendedMemoryClassifierIP(this);
 	}
 
+// *************** Software Model ***************
+
+	@Override
+	public Adapter createSWModelAdapter() {
+		return new ExtendedSWModelIP(this);
+	}
+
 // SWModel Type Definitions
 
 	@Override
@@ -262,27 +299,54 @@
 		return new ExtendedRunnableParameterIP(this);
 	}
 
-
-// Other nodes with virtual sub folders
+// *************** Components Model ***************
 
 	@Override
-	public Adapter createCommonElementsAdapter() {
-		return new ExtendedCommonElementsItemProvider(this);
+	public Adapter createComponentsModelAdapter() {
+		return new ExtendedComponentsModelIP(this);
+	}
+	
+// ComponentsModel Definitions
+
+	@Override
+	public Adapter createComponentAdapter() {
+		return new ExtendedComponentIP(this);
 	}
 
 	@Override
-	public Adapter createSWModelAdapter() {
-		return new ExtendedSWModelItemProvider(this);
+	public Adapter createCompositeAdapter() {
+		return new ExtendedCompositeIP(this);
+	}
+
+// ComponentsModel (simple containers with only one type)
+
+	@Override
+	public Adapter createMainInterfaceAdapter() {
+		return new ExtendedMainInterfaceIP(this);
 	}
 
 	@Override
-	public Adapter createHWModelAdapter() {
-		return new ExtendedHWModelItemProvider(this);
+	public Adapter createComponentStructureAdapter() {
+		return new ExtendedComponentStructureIP(this);
+	}
+
+// ComponentsModel Systems
+
+	@Override
+	public Adapter createSystemAdapter() {
+		return new ExtendedSystemIP(this);
+	}
+
+// ComponentsModel ISystem (System and Composite)
+
+	@Override
+	public Adapter createComponentInstanceAdapter() {
+		return new ExtendedComponentInstanceIP(this);
 	}
 
 	@Override
-	public Adapter createHwStructureAdapter() {
-		return new ExtendedHwStructureIP(this);
+	public Adapter createConnectorAdapter() {
+		return new ExtendedConnectorIP(this);
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsIP.java
similarity index 82%
rename from plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsIP.java
index d56a8d4..543b01f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedCommonElementsIP.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -22,10 +22,10 @@
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
 import org.eclipse.app4mc.amalthea.model.CommonElements;
-import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.CommonElementsItemProvider;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.container.CoreClassifiersContainerIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.container.MemoryClassifiersContainerIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.common.container.NamespacesContainerIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.common.container.TagsContainerIP;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.command.CommandWrapper;
@@ -36,13 +36,14 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
-public class ExtendedCommonElementsItemProvider extends CommonElementsItemProvider {
+public class ExtendedCommonElementsIP extends CommonElementsItemProvider {
 
 	protected CoreClassifiersContainerIP coreClassifiersCIP;
 	protected MemoryClassifiersContainerIP memoryClassifiersCIP;
 	protected TagsContainerIP tagsCIP;
+	protected NamespacesContainerIP namespacesCIP;
 	
-	public ExtendedCommonElementsItemProvider(final AdapterFactory adapterFactory) {
+	public ExtendedCommonElementsIP(final AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
@@ -67,12 +68,20 @@
 		return this.tagsCIP;
 	}
 
+	public NamespacesContainerIP getNamespacesContainerIP(final CommonElements owner) {
+		if (this.namespacesCIP == null) {
+			this.namespacesCIP = new NamespacesContainerIP(this.adapterFactory, owner);
+		}
+		return this.namespacesCIP;
+	}
+
 	@Override
 	public Collection<? extends EStructuralFeature> getChildrenFeatures(final Object object) {
 		super.getChildrenFeatures(object);
 		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getCommonElements_CoreClassifiers());
 		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getCommonElements_MemoryClassifiers());
 		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getCommonElements_Tags());
+		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getCommonElements_Namespaces());
 		return this.childrenFeatures;
 	}
 
@@ -88,6 +97,8 @@
 			children.add(getMemoryClassifiersContainerIP(commonElements));
 		if (!commonElements.getTags().isEmpty())
 			children.add(getTagsContainerIP(commonElements));
+		if (!commonElements.getNamespaces().isEmpty())
+			children.add(getNamespacesContainerIP(commonElements));
 		return children;
 	}
 
@@ -107,7 +118,8 @@
 			final EStructuralFeature feature) {
 		if (feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS
 				|| feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS
-				|| feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__TAGS) {
+				|| feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__TAGS
+				|| feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES) {
 			return new CommandWrapper(command) {
 				@Override
 				public Collection<?> getAffectedObjects() {
@@ -122,6 +134,9 @@
 						else if (feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__TAGS) {
 							affected = Collections.singleton(getTagsContainerIP((CommonElements) owner));
 						}
+						else if (feature.getFeatureID() == AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES) {
+							affected = Collections.singleton(getNamespacesContainerIP((CommonElements) owner));
+						}
 					}
 					return affected;
 				}
@@ -141,6 +156,9 @@
 		if (this.tagsCIP != null) {
 			this.tagsCIP.dispose();
 		}
+		if (this.namespacesCIP != null) {
+			this.namespacesCIP.dispose();
+		}
 		super.dispose();
 	}
 
@@ -149,10 +167,11 @@
 	public void notifyChanged(final Notification notification) {
 		updateChildren(notification);
 
-		switch (notification.getFeatureID(SWModel.class)) {
+		switch (notification.getFeatureID(CommonElements.class)) {
+		case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
+		case AmaltheaPackage.COMMON_ELEMENTS__NAMESPACES:
 		case AmaltheaPackage.COMMON_ELEMENTS__CORE_CLASSIFIERS:
 		case AmaltheaPackage.COMMON_ELEMENTS__MEMORY_CLASSIFIERS:
-		case AmaltheaPackage.COMMON_ELEMENTS__TAGS:
 			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
 			return;
 		}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedComponentsModelIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedComponentsModelIP.java
new file mode 100644
index 0000000..fe5aa62
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedComponentsModelIP.java
@@ -0,0 +1,155 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.provider.ComponentsModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompDefinitionContainerIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompInterfaceContainerIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompStructureContainerIP;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandWrapper;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+public class ExtendedComponentsModelIP extends ComponentsModelItemProvider {
+
+	protected CompDefinitionContainerIP compDefinitionCIP;
+	protected CompInterfaceContainerIP compInterfaceCIP;
+	protected CompStructureContainerIP compStructureCIP;
+
+	public ExtendedComponentsModelIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	public CompDefinitionContainerIP getCompDefinitionContainerIP(final ComponentsModel compModel) {
+		if (this.compDefinitionCIP == null) {
+			this.compDefinitionCIP = new CompDefinitionContainerIP(this.adapterFactory, compModel);
+		}
+		return this.compDefinitionCIP;
+	}
+
+	public CompInterfaceContainerIP getCompInterfaceContainerIP(final ComponentsModel compModel) {
+		if (this.compInterfaceCIP == null) {
+			this.compInterfaceCIP = new CompInterfaceContainerIP(this.adapterFactory, compModel);
+		}
+		return this.compInterfaceCIP;
+	}
+
+	public CompStructureContainerIP getCompStructureContainerIP(final ComponentsModel compModel) {
+		if (this.compStructureCIP == null) {
+			this.compStructureCIP = new CompStructureContainerIP(this.adapterFactory, compModel);
+		}
+		return this.compStructureCIP;
+	}
+
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(final Object object) {
+		super.getChildrenFeatures(object);
+		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getIComponentContainer_Components());
+		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getIInterfaceContainer_Interfaces());
+		this.childrenFeatures.remove(AmaltheaPackage.eINSTANCE.getComponentsModel_Structures());
+		return this.childrenFeatures;
+	}
+
+	@Override
+	public Collection<?> getChildren(final Object object) {
+		final List<Object> children = new ArrayList<Object>(super.getChildren(object));
+		final ComponentsModel compModel = (ComponentsModel) object;
+		
+		// only display virtual folders if not empty (on top of the list)
+		if (!compModel.getStructures().isEmpty())
+			children.add(0, getCompStructureContainerIP(compModel));
+		if (!compModel.getInterfaces().isEmpty())
+			children.add(0, getCompInterfaceContainerIP(compModel));
+		if (!compModel.getComponents().isEmpty())
+			children.add(0, getCompDefinitionContainerIP(compModel));
+		return children;
+	}
+
+	@Override
+	protected Command createAddCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection, final int index) {
+		return createWrappedCommand(super.createAddCommand(domain, owner, feature, collection, index), owner, feature);
+	}
+
+	@Override
+	protected Command createRemoveCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection) {
+		return createWrappedCommand(super.createRemoveCommand(domain, owner, feature, collection), owner, feature);
+	}
+
+	protected Command createWrappedCommand(final Command command, final EObject owner,
+			final EStructuralFeature feature) {
+		if (feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS
+				|| feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__INTERFACES
+				|| feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES) {
+			return new CommandWrapper(command) {
+				@Override
+				public Collection<?> getAffectedObjects() {
+					Collection<?> affected = super.getAffectedObjects();
+					if (affected.contains(owner)) {
+						if (feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS) {
+							affected = Collections.singleton(getCompDefinitionContainerIP((ComponentsModel) owner));
+						} else if (feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__INTERFACES) {
+							affected = Collections.singleton(getCompInterfaceContainerIP((ComponentsModel) owner));
+						} else if (feature.getFeatureID() == AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES) {
+							affected = Collections.singleton(getCompStructureContainerIP((ComponentsModel) owner));
+						}
+					}
+					return affected;
+				}
+			};
+		}
+		return command;
+	}
+
+	@Override
+	public void dispose() {
+		if (this.compDefinitionCIP != null) {
+			this.compDefinitionCIP.dispose();
+		}
+		if (this.compInterfaceCIP != null) {
+			this.compInterfaceCIP.dispose();
+		}
+		if (this.compStructureCIP != null) {
+			this.compStructureCIP.dispose();
+		}
+
+		super.dispose();
+	}
+
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ComponentsModel.class)) {
+		case AmaltheaPackage.COMPONENTS_MODEL__COMPONENTS:
+		case AmaltheaPackage.COMPONENTS_MODEL__INTERFACES:
+		case AmaltheaPackage.COMPONENTS_MODEL__STRUCTURES:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelIP.java
similarity index 96%
rename from plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelIP.java
index ea8494b..24d54cf 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedHWModelIP.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -32,13 +32,13 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
-public class ExtendedHWModelItemProvider extends HWModelItemProvider {
+public class ExtendedHWModelIP extends HWModelItemProvider {
 
 	protected HwFeatureContainerIP hwFeatureCIP;
 	protected HwDefinitionContainerIP hwDefinitionCIP;
 	protected HwDomainContainerIP hwDomainCIP;
 
-	public ExtendedHWModelItemProvider(final AdapterFactory adapterFactory) {
+	public ExtendedHWModelIP(final AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelItemProvider.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelIP.java
similarity index 98%
rename from plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelItemProvider.java
rename to plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelIP.java
index 06f2c89..9645a62 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelItemProvider.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/ExtendedSWModelIP.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2018 itemis AG and others.
+ * Copyright (c) 2015-2020 itemis AG and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -46,7 +46,7 @@
 import org.eclipse.emf.edit.domain.EditingDomain;
 import org.eclipse.emf.edit.provider.ViewerNotification;
 
-public class ExtendedSWModelItemProvider extends SWModelItemProvider {
+public class ExtendedSWModelIP extends SWModelItemProvider {
 
 	protected RunnablesContainerIP runnablesCIP;
 	protected LabelsContainerIP labelsCIP;
@@ -63,7 +63,7 @@
 	protected ChannelsContainerIP channelsCIP;
 	protected CustomEntitiesContainerIP entitiesCIP;
 
-	public ExtendedSWModelItemProvider(final AdapterFactory adapterFactory) {
+	public ExtendedSWModelIP(final AdapterFactory adapterFactory) {
 		super(adapterFactory);
 	}
 
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/container/NamespacesContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/container/NamespacesContainerIP.java
new file mode 100644
index 0000000..b25130d
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/container/NamespacesContainerIP.java
@@ -0,0 +1,52 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.common.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.CommonElements;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class NamespacesContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public NamespacesContainerIP(final AdapterFactory adapterFactory, final CommonElements parent) {
+		super(adapterFactory);
+		parent.eAdapters().add(this);
+	}
+
+	protected EStructuralFeature myFeature() {
+		return AmaltheaPackage.eINSTANCE.getCommonElements_Namespaces();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(final Object object) {
+		return "Namespaces"; //$NON-NLS-1$
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+	 *      java.lang.Object)
+	 */
+	@Override
+	protected void collectNewChildDescriptors(final Collection<Object> newChildDescriptors, final Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+		newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createNamespace()));
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedCoreClassifierIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedCoreClassifierIP.java
index 0977877..13377f3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedCoreClassifierIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedCoreClassifierIP.java
@@ -12,14 +12,12 @@
 
 package org.eclipse.app4mc.amalthea.sphinx.ui.common.extended;
 
-
 import org.eclipse.app4mc.amalthea.model.CommonElements;
 import org.eclipse.app4mc.amalthea.model.provider.CoreClassifierItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
-
 public class ExtendedCoreClassifierIP extends CoreClassifierItemProvider {
 
 	public ExtendedCoreClassifierIP(final AdapterFactory adapterFactory) {
@@ -32,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object commonElements = super.getParent(object);
-		final ExtendedCommonElementsItemProvider commonElementsItemProvider = (ExtendedCommonElementsItemProvider) this.adapterFactory
+		final ExtendedCommonElementsIP commonElementsItemProvider = (ExtendedCommonElementsIP) this.adapterFactory
 				.adapt(commonElements, ITreeItemContentProvider.class);
 		return commonElementsItemProvider != null ? commonElementsItemProvider.getCoreClassifiersContainerIP((CommonElements) commonElements) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedMemoryClassifierIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedMemoryClassifierIP.java
index add63a2..0b340dd 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedMemoryClassifierIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedMemoryClassifierIP.java
@@ -12,14 +12,12 @@
 
 package org.eclipse.app4mc.amalthea.sphinx.ui.common.extended;
 
-
 import org.eclipse.app4mc.amalthea.model.CommonElements;
 import org.eclipse.app4mc.amalthea.model.provider.MemoryClassifierItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
-
 public class ExtendedMemoryClassifierIP extends MemoryClassifierItemProvider {
 
 	public ExtendedMemoryClassifierIP(final AdapterFactory adapterFactory) {
@@ -32,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object commonElements = super.getParent(object);
-		final ExtendedCommonElementsItemProvider commonElementsItemProvider = (ExtendedCommonElementsItemProvider) this.adapterFactory
+		final ExtendedCommonElementsIP commonElementsItemProvider = (ExtendedCommonElementsIP) this.adapterFactory
 				.adapt(commonElements, ITreeItemContentProvider.class);
 		return commonElementsItemProvider != null ? commonElementsItemProvider.getMemoryClassifiersContainerIP((CommonElements) commonElements) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedNamespaceIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedNamespaceIP.java
new file mode 100644
index 0000000..f361d33
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedNamespaceIP.java
@@ -0,0 +1,43 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.common.extended;
+
+import org.eclipse.app4mc.amalthea.model.CommonElements;
+import org.eclipse.app4mc.amalthea.model.provider.NamespaceItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsIP;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedNamespaceIP extends NamespaceItemProvider {
+
+	public ExtendedNamespaceIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object parent = super.getParent(object);
+		
+		if (parent instanceof CommonElements) {
+			final ExtendedCommonElementsIP parentItemProvider = (ExtendedCommonElementsIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return parentItemProvider != null ? parentItemProvider.getNamespacesContainerIP((CommonElements) parent) : null;
+		}
+		
+		return parent;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedTagIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedTagIP.java
index e26d585..29b098b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedTagIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/common/extended/ExtendedTagIP.java
@@ -15,7 +15,7 @@
 
 import org.eclipse.app4mc.amalthea.model.CommonElements;
 import org.eclipse.app4mc.amalthea.model.provider.TagItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedCommonElementsIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -32,7 +32,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object commonElements = super.getParent(object);
-		final ExtendedCommonElementsItemProvider commonElementsItemProvider = (ExtendedCommonElementsItemProvider) this.adapterFactory
+		final ExtendedCommonElementsIP commonElementsItemProvider = (ExtendedCommonElementsIP) this.adapterFactory
 				.adapt(commonElements, ITreeItemContentProvider.class);
 		return commonElementsItemProvider != null ? commonElementsItemProvider.getTagsContainerIP((CommonElements) commonElements) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompConnectorContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompConnectorContainerIP.java
new file mode 100644
index 0000000..a2d957b
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompConnectorContainerIP.java
@@ -0,0 +1,57 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class CompConnectorContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public CompConnectorContainerIP(final AdapterFactory adapterFactory, final ISystem parent) {
+		super(adapterFactory);
+		parent.eAdapters().add(this);
+	}
+
+	protected EStructuralFeature myFeature() {
+		return AmaltheaPackage.eINSTANCE.getISystem_Connectors();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(final Object object) {
+		final StringBuffer buffer = new StringBuffer();
+		buffer.append("Connectors ("); //$NON-NLS-1$
+		buffer.append(((ISystem) getTarget()).getConnectors().size());
+		buffer.append(")"); //$NON-NLS-1$
+
+		return buffer.toString();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+	 *      java.lang.Object)
+	 */
+	@Override
+	protected void collectNewChildDescriptors(final Collection<Object> newChildDescriptors, final Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+		newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createConnector()));
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompDefinitionContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompDefinitionContainerIP.java
new file mode 100644
index 0000000..24631ac
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompDefinitionContainerIP.java
@@ -0,0 +1,58 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.IComponentContainer;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class CompDefinitionContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public CompDefinitionContainerIP(final AdapterFactory adapterFactory, final IComponentContainer parent) {
+		super(adapterFactory);
+		parent.eAdapters().add(this);
+	}
+
+	protected EStructuralFeature myFeature() {
+		return AmaltheaPackage.eINSTANCE.getIComponentContainer_Components();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(final Object object) {
+		final StringBuffer buffer = new StringBuffer();
+		buffer.append("Definitions ("); //$NON-NLS-1$
+		buffer.append(((IComponentContainer) getTarget()).getComponents().size());
+		buffer.append(")"); //$NON-NLS-1$
+
+		return buffer.toString();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+	 *      java.lang.Object)
+	 */
+	@Override
+	protected void collectNewChildDescriptors(final Collection<Object> newChildDescriptors, final Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+		newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createComponent()));
+		newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createComposite()));
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInstanceContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInstanceContainerIP.java
new file mode 100644
index 0000000..8bc021c
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInstanceContainerIP.java
@@ -0,0 +1,57 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class CompInstanceContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public CompInstanceContainerIP(final AdapterFactory adapterFactory, final ISystem parent) {
+		super(adapterFactory);
+		parent.eAdapters().add(this);
+	}
+
+	protected EStructuralFeature myFeature() {
+		return AmaltheaPackage.eINSTANCE.getISystem_ComponentInstances();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+	 */
+	@Override
+	public String getText(final Object object) {
+		final StringBuffer buffer = new StringBuffer();
+		buffer.append("Component Instances ("); //$NON-NLS-1$
+		buffer.append(((ISystem) getTarget()).getComponentInstances().size());
+		buffer.append(")"); //$NON-NLS-1$
+
+		return buffer.toString();
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+	 *      java.lang.Object)
+	 */
+	@Override
+	protected void collectNewChildDescriptors(final Collection<Object> newChildDescriptors, final Object object) {
+		super.collectNewChildDescriptors(newChildDescriptors, object);
+		newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createComponentInstance()));
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInterfaceContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInterfaceContainerIP.java
new file mode 100644
index 0000000..52d3751
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompInterfaceContainerIP.java
@@ -0,0 +1,59 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.IInterfaceContainer;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+public class CompInterfaceContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public CompInterfaceContainerIP(final AdapterFactory adapterFactory, final IInterfaceContainer parent) {
+        super(adapterFactory);
+        parent.eAdapters().add(this);
+    }
+
+    protected EStructuralFeature myFeature() {
+        return AmaltheaPackage.eINSTANCE.getIInterfaceContainer_Interfaces();
+    }
+
+    /**
+     * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+     */
+    @Override
+    public String getText(final Object object) {
+        final StringBuffer buffer = new StringBuffer();
+        buffer.append("Interfaces ("); //$NON-NLS-1$
+        buffer.append(((IInterfaceContainer) getTarget()).getInterfaces().size());
+        buffer.append(")"); //$NON-NLS-1$
+
+        return buffer.toString();
+    }
+
+    /**
+     * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+     *      java.lang.Object)
+     */
+    @Override
+    protected void collectNewChildDescriptors(
+        final Collection<Object> newChildDescriptors, final Object object) {
+        super.collectNewChildDescriptors(newChildDescriptors, object);
+        newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createMainInterface()));
+    }
+
+}
+
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompStructureContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompStructureContainerIP.java
new file mode 100644
index 0000000..2c5f816
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/container/CompStructureContainerIP.java
@@ -0,0 +1,55 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.container;
+
+import java.util.Collection;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSphinxTransientItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+
+public class CompStructureContainerIP extends ExtendedSphinxTransientItemProvider {
+
+	public CompStructureContainerIP(final AdapterFactory adapterFactory, final ComponentsModel parent) {
+        super(adapterFactory);
+        parent.eAdapters().add(this);
+    }
+
+    protected EStructuralFeature myFeature() {
+        return AmaltheaPackage.eINSTANCE.getComponentsModel_Structures();
+    }
+
+    /**
+     * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getText(java.lang.Object)
+     */
+    @Override
+    public String getText(final Object object) {
+        return "Structures"; //$NON-NLS-1$
+    }
+
+    /**
+     * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#collectNewChildDescriptors(java.util.Collection,
+     *      java.lang.Object)
+     */
+    @Override
+    protected void collectNewChildDescriptors(
+        final Collection<Object> newChildDescriptors, final Object object) {
+        super.collectNewChildDescriptors(newChildDescriptors, object);
+        newChildDescriptors.add(createChildParameter(myFeature(), myFactory().createComponentStructure()));
+    }
+
+}
+
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentIP.java
new file mode 100644
index 0000000..feb23fd
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentIP.java
@@ -0,0 +1,38 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.provider.ComponentItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedComponentsModelIP;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedComponentIP extends ComponentItemProvider {
+
+	public ExtendedComponentIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object compModel = super.getParent(object);
+		final ExtendedComponentsModelIP compModelItemProvider = (ExtendedComponentsModelIP) this.adapterFactory
+				.adapt(compModel, ITreeItemContentProvider.class);
+		return compModelItemProvider != null ? compModelItemProvider.getCompDefinitionContainerIP((ComponentsModel) compModel) : null;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentInstanceIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentInstanceIP.java
new file mode 100644
index 0000000..db851d9
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentInstanceIP.java
@@ -0,0 +1,50 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import org.eclipse.app4mc.amalthea.model.Composite;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.model.System;
+import org.eclipse.app4mc.amalthea.model.provider.ComponentInstanceItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedComponentInstanceIP extends ComponentInstanceItemProvider {
+
+	public ExtendedComponentInstanceIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object parent = super.getParent(object);
+
+		if (parent instanceof System) {
+			final ExtendedSystemIP systemItemProvider = (ExtendedSystemIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return systemItemProvider != null ? systemItemProvider.getCompInstanceContainerIP((ISystem) parent) : null;
+		}
+
+		if (parent instanceof Composite) {
+			final ExtendedCompositeIP compositeItemProvider = (ExtendedCompositeIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return compositeItemProvider != null ? compositeItemProvider.getCompInstanceContainerIP((ISystem) parent) : null;
+		}
+
+		return parent;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentStructureIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentStructureIP.java
new file mode 100644
index 0000000..4b09cd8
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedComponentStructureIP.java
@@ -0,0 +1,43 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.provider.ComponentStructureItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedComponentsModelIP;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedComponentStructureIP extends ComponentStructureItemProvider {
+
+	public ExtendedComponentStructureIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object parent = super.getParent(object);
+
+		if (parent instanceof ComponentsModel) {
+			final ExtendedComponentsModelIP parentItemProvider = (ExtendedComponentsModelIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return parentItemProvider != null ? parentItemProvider.getCompStructureContainerIP((ComponentsModel) parent) : null;
+		}
+
+		return parent;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedCompositeIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedCompositeIP.java
new file mode 100644
index 0000000..972bb51
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedCompositeIP.java
@@ -0,0 +1,158 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.Composite;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.model.provider.CompositeItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedComponentsModelIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompConnectorContainerIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompInstanceContainerIP;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandWrapper;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+public class ExtendedCompositeIP extends CompositeItemProvider {
+
+	protected CompConnectorContainerIP compConnectorCIP;
+	protected CompInstanceContainerIP compInstanceCIP;
+
+	private final EStructuralFeature feature_CONNECTORS = AmaltheaPackage.eINSTANCE.getISystem_Connectors();
+	private final EStructuralFeature feature_INSTANCES = AmaltheaPackage.eINSTANCE.getISystem_ComponentInstances();
+
+	public ExtendedCompositeIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	public CompConnectorContainerIP getCompConnectorContainerIP(final ISystem compSystem) {
+		if (this.compConnectorCIP == null) {
+			this.compConnectorCIP = new CompConnectorContainerIP(this.adapterFactory, compSystem);
+		}
+		return this.compConnectorCIP;
+	}
+
+	public CompInstanceContainerIP getCompInstanceContainerIP(final ISystem compSystem) {
+		if (this.compInstanceCIP == null) {
+			this.compInstanceCIP = new CompInstanceContainerIP(this.adapterFactory, compSystem);
+		}
+		return this.compInstanceCIP;
+	}
+
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(final Object object) {
+		super.getChildrenFeatures(object);
+		this.childrenFeatures.remove(this.feature_CONNECTORS);
+		this.childrenFeatures.remove(this.feature_INSTANCES);
+		return this.childrenFeatures;
+	}
+
+	@Override
+	public Collection<?> getChildren(final Object object) {
+		final List<Object> children = new ArrayList<Object>(super.getChildren(object));
+		Composite composite = (Composite) object;
+		
+		// only display virtual folders if not empty (on top of the list)
+		if (composite.getComponentInstances().size() > 0)
+			children.add(0, getCompInstanceContainerIP(composite));
+		if (composite.getConnectors().size() > 0)
+			children.add(0, getCompConnectorContainerIP(composite));
+
+		// move ports to top of the list
+		children.removeAll(composite.getPorts());
+		children.addAll(0, composite.getPorts());
+
+		return children;
+	}
+
+	@Override
+	protected Command createAddCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection, final int index) {
+		return createWrappedCommand(super.createAddCommand(domain, owner, feature, collection, index), owner, feature);
+	}
+
+	@Override
+	protected Command createRemoveCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection) {
+		return createWrappedCommand(super.createRemoveCommand(domain, owner, feature, collection), owner, feature);
+	}
+
+	protected Command createWrappedCommand(final Command command, final EObject owner,
+			final EStructuralFeature feature) {
+		if (feature == feature_CONNECTORS || feature == feature_INSTANCES) {
+			return new CommandWrapper(command) {
+				@Override
+				public Collection<?> getAffectedObjects() {
+					Collection<?> affected = super.getAffectedObjects();
+					if (affected.contains(owner)) {
+						if (feature == feature_CONNECTORS) {
+							affected = Collections.singleton(getCompConnectorContainerIP(((ISystem) owner)));
+						} else if (feature == feature_INSTANCES) {
+							affected = Collections.singleton(getCompInstanceContainerIP(((ISystem) owner)));
+						}
+					}
+					return affected;
+				}
+			};
+		}
+		return command;
+	}
+
+	@Override
+	public void dispose() {
+		if (this.compConnectorCIP != null) {
+			this.compConnectorCIP.dispose();
+		}
+		if (this.compInstanceCIP != null) {
+			this.compInstanceCIP.dispose();
+		}
+		super.dispose();
+	}
+
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ISystem.class)) {
+		case AmaltheaPackage.ISYSTEM__CONNECTORS:
+		case AmaltheaPackage.ISYSTEM__COMPONENT_INSTANCES:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object compModel = super.getParent(object);
+		final ExtendedComponentsModelIP compModelItemProvider = (ExtendedComponentsModelIP) this.adapterFactory
+				.adapt(compModel, ITreeItemContentProvider.class);
+		return compModelItemProvider != null ? compModelItemProvider.getCompDefinitionContainerIP((ComponentsModel) compModel) : null;
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedConnectorIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedConnectorIP.java
new file mode 100644
index 0000000..1042840
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedConnectorIP.java
@@ -0,0 +1,49 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import org.eclipse.app4mc.amalthea.model.Composite;
+import org.eclipse.app4mc.amalthea.model.System;
+import org.eclipse.app4mc.amalthea.model.provider.ConnectorItemProvider;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedConnectorIP extends ConnectorItemProvider {
+
+	public ExtendedConnectorIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object parent = super.getParent(object);
+
+		if (parent instanceof System) {
+			final ExtendedSystemIP systemItemProvider = (ExtendedSystemIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return systemItemProvider != null ? systemItemProvider.getCompConnectorContainerIP((System) parent) : null;
+		}
+
+		if (parent instanceof Composite) {
+			final ExtendedCompositeIP compositeItemProvider = (ExtendedCompositeIP) this.adapterFactory
+					.adapt(parent, ITreeItemContentProvider.class);
+			return compositeItemProvider != null ? compositeItemProvider.getCompConnectorContainerIP((Composite) parent) : null;
+		}
+
+		return parent;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedMainInterfaceIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedMainInterfaceIP.java
new file mode 100644
index 0000000..c5cc0d1
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedMainInterfaceIP.java
@@ -0,0 +1,38 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.provider.MainInterfaceItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedComponentsModelIP;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
+
+public class ExtendedMainInterfaceIP extends MainInterfaceItemProvider {
+
+	public ExtendedMainInterfaceIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	/**
+	 * @see org.eclipse.emf.edit.provider.ItemProviderAdapter#getParent(java.lang.Object)
+	 */
+	@Override
+	public Object getParent(final Object object) {
+		final Object compModel = super.getParent(object);
+		final ExtendedComponentsModelIP compModelItemProvider = (ExtendedComponentsModelIP) this.adapterFactory
+				.adapt(compModel, ITreeItemContentProvider.class);
+		return compModelItemProvider != null ? compModelItemProvider.getCompInterfaceContainerIP((ComponentsModel) compModel) : null;
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedSystemIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedSystemIP.java
new file mode 100644
index 0000000..259eb6c
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/comp/extended/ExtendedSystemIP.java
@@ -0,0 +1,139 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx.ui.comp.extended;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
+import org.eclipse.app4mc.amalthea.model.ISystem;
+import org.eclipse.app4mc.amalthea.model.provider.SystemItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompConnectorContainerIP;
+import org.eclipse.app4mc.amalthea.sphinx.ui.comp.container.CompInstanceContainerIP;
+import org.eclipse.emf.common.command.Command;
+import org.eclipse.emf.common.command.CommandWrapper;
+import org.eclipse.emf.common.notify.AdapterFactory;
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.edit.domain.EditingDomain;
+import org.eclipse.emf.edit.provider.ViewerNotification;
+
+public class ExtendedSystemIP extends SystemItemProvider {
+
+	protected CompConnectorContainerIP compConnectorCIP;
+	protected CompInstanceContainerIP compInstanceCIP;
+
+	private final EStructuralFeature feature_CONNECTORS = AmaltheaPackage.eINSTANCE.getISystem_Connectors();
+	private final EStructuralFeature feature_INSTANCES = AmaltheaPackage.eINSTANCE.getISystem_ComponentInstances();
+
+	public ExtendedSystemIP(final AdapterFactory adapterFactory) {
+		super(adapterFactory);
+	}
+
+	public CompConnectorContainerIP getCompConnectorContainerIP(final ISystem compSystem) {
+		if (this.compConnectorCIP == null) {
+			this.compConnectorCIP = new CompConnectorContainerIP(this.adapterFactory, compSystem);
+		}
+		return this.compConnectorCIP;
+	}
+
+	public CompInstanceContainerIP getCompInstanceContainerIP(final ISystem compSystem) {
+		if (this.compInstanceCIP == null) {
+			this.compInstanceCIP = new CompInstanceContainerIP(this.adapterFactory, compSystem);
+		}
+		return this.compInstanceCIP;
+	}
+
+	@Override
+	public Collection<? extends EStructuralFeature> getChildrenFeatures(final Object object) {
+		super.getChildrenFeatures(object);
+		this.childrenFeatures.remove(this.feature_CONNECTORS);
+		this.childrenFeatures.remove(this.feature_INSTANCES);
+		return this.childrenFeatures;
+	}
+
+	@Override
+	public Collection<?> getChildren(final Object object) {
+		final List<Object> children = new ArrayList<Object>(super.getChildren(object));
+		ISystem composite = (ISystem) object;
+		
+		// only display virtual folders if not empty (on top of the list)
+		if (composite.getComponentInstances().size() > 0)
+			children.add(0, getCompInstanceContainerIP(composite));
+		if (composite.getConnectors().size() > 0)
+			children.add(0, getCompConnectorContainerIP(composite));
+
+		return children;
+	}
+
+	@Override
+	protected Command createAddCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection, final int index) {
+		return createWrappedCommand(super.createAddCommand(domain, owner, feature, collection, index), owner, feature);
+	}
+
+	@Override
+	protected Command createRemoveCommand(final EditingDomain domain, final EObject owner,
+			final EStructuralFeature feature, final Collection<?> collection) {
+		return createWrappedCommand(super.createRemoveCommand(domain, owner, feature, collection), owner, feature);
+	}
+
+	protected Command createWrappedCommand(final Command command, final EObject owner,
+			final EStructuralFeature feature) {
+		if (feature == feature_CONNECTORS || feature == feature_INSTANCES) {
+			return new CommandWrapper(command) {
+				@Override
+				public Collection<?> getAffectedObjects() {
+					Collection<?> affected = super.getAffectedObjects();
+					if (affected.contains(owner)) {
+						if (feature == feature_CONNECTORS) {
+							affected = Collections.singleton(getCompConnectorContainerIP(((ISystem) owner)));
+						} else if (feature == feature_INSTANCES) {
+							affected = Collections.singleton(getCompInstanceContainerIP(((ISystem) owner)));
+						}
+					}
+					return affected;
+				}
+			};
+		}
+		return command;
+	}
+
+	@Override
+	public void dispose() {
+		if (this.compConnectorCIP != null) {
+			this.compConnectorCIP.dispose();
+		}
+		if (this.compInstanceCIP != null) {
+			this.compInstanceCIP.dispose();
+		}
+		super.dispose();
+	}
+
+	@Override
+	public void notifyChanged(final Notification notification) {
+		updateChildren(notification);
+
+		switch (notification.getFeatureID(ISystem.class)) {
+		case AmaltheaPackage.ISYSTEM__CONNECTORS:
+		case AmaltheaPackage.ISYSTEM__COMPONENT_INSTANCES:
+			fireNotifyChanged(new ViewerNotification(notification, notification.getNotifier(), true, true));
+			return;
+		}
+		super.notifyChanged(notification);
+	}
+
+}
\ No newline at end of file
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/container/HwFeatureContainerIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/container/HwFeatureContainerIP.java
index bd0c539..9f8593a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/container/HwFeatureContainerIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/container/HwFeatureContainerIP.java
@@ -20,8 +20,8 @@
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.ecore.EStructuralFeature;
 
-
 public class HwFeatureContainerIP extends ExtendedSphinxTransientItemProvider {
+
 	public HwFeatureContainerIP(final AdapterFactory adapterFactory, final HWModel parent) {
         super(adapterFactory);
         parent.eAdapters().add(this);
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedCacheDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedCacheDefinitionIP.java
index a838d9e..c5b1a27 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedCacheDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedCacheDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.CacheDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDefinitionsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedConnectionHandlerDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedConnectionHandlerDefinitionIP.java
index dd42b89..6116a39 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedConnectionHandlerDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedConnectionHandlerDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ConnectionHandlerDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDefinitionsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedFrequencyDomainIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedFrequencyDomainIP.java
index 9fec204..1e49e5d 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedFrequencyDomainIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedFrequencyDomainIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.FrequencyDomainItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDomainsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedHwFeatureCategoryIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedHwFeatureCategoryIP.java
index bdd3349..d67dbe1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedHwFeatureCategoryIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedHwFeatureCategoryIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.HwFeatureCategoryItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwFeaturesContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedMemoryDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedMemoryDefinitionIP.java
index 3b6a159..af1e63b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedMemoryDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedMemoryDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.MemoryDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDefinitionsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedPowerDomainIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedPowerDomainIP.java
index 6ffc272..e80021b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedPowerDomainIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedPowerDomainIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.PowerDomainItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDomainsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedProcessingUnitDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedProcessingUnitDefinitionIP.java
index c802998..736493a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedProcessingUnitDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/hw/extended/ExtendedProcessingUnitDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ProcessingUnitDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedHWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object hwModel = super.getParent(object);
-		final ExtendedHWModelItemProvider hwModelItemProvider = (ExtendedHWModelItemProvider) this.adapterFactory
+		final ExtendedHWModelIP hwModelItemProvider = (ExtendedHWModelIP) this.adapterFactory
 				.adapt(hwModel, ITreeItemContentProvider.class);
 		return hwModelItemProvider != null ? hwModelItemProvider.getHwDefinitionsContainerIP((HWModel) hwModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedBaseTypeDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedBaseTypeDefinitionIP.java
index 34af7c8..14a0841 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedBaseTypeDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedBaseTypeDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.BaseTypeDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getTypeDefinitionsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedChannelIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedChannelIP.java
index b17b714..2ed05ad 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedChannelIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedChannelIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ChannelItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getChannelsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomActivationIP.java
index 9d96e69..a80f1b6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.CustomActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomEntityIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomEntityIP.java
index 83220bf..e874c09 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomEntityIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedCustomEntityIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.CustomEntityItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getEntitiesContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedDataTypeDefinitionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedDataTypeDefinitionIP.java
index 6d7f3c7..9f10af7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedDataTypeDefinitionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedDataTypeDefinitionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.DataTypeDefinitionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getTypeDefinitionsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEnumModeIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEnumModeIP.java
index bf5e08e..5821dd9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEnumModeIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEnumModeIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.EnumModeItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getModesContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEventActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEventActivationIP.java
index 2687c1c..4024f32 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEventActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedEventActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.EventActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedISRIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedISRIP.java
index 42f00de..455f5c7 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedISRIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedISRIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ISRItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getISRsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedLabelIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedLabelIP.java
index 1f825e4..39dca3a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedLabelIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedLabelIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.LabelItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getLabelsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedModeLabelIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedModeLabelIP.java
index b50e60b..11c3d27 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedModeLabelIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedModeLabelIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ModeLabelItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getModeLabelsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedNumericModeIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedNumericModeIP.java
index e574fe6..06c92c8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedNumericModeIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedNumericModeIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.NumericModeItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getModesContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedOsEventIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedOsEventIP.java
index 776b6c9..a866073 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedOsEventIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedOsEventIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.OsEventItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getEventsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedPeriodicActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedPeriodicActivationIP.java
index 797a797..1ab2cd5 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedPeriodicActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedPeriodicActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.PeriodicActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessChainIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessChainIP.java
index 6dd8f90..c3fe3e9 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessChainIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessChainIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ProcessChainItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getProcessChainsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessPrototypeIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessPrototypeIP.java
index 3850557..de55abb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessPrototypeIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedProcessPrototypeIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.ProcessPrototypeItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getPrototypesContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedRunnableIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedRunnableIP.java
index 3ede695..d861bb8 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedRunnableIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedRunnableIP.java
@@ -21,7 +21,7 @@
 import org.eclipse.app4mc.amalthea.model.Runnable;
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.RunnableItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.app4mc.amalthea.sphinx.ui.sw.container.RunnableParametersContainerIP;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.command.CommandWrapper;
@@ -44,7 +44,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getRunnablesContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSectionIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSectionIP.java
index 3be1fac..b769e10 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSectionIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSectionIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.SectionItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getSectionsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSingleActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSingleActivationIP.java
index 550765f..8564d6b 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSingleActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSingleActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.SingleActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSporadicActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSporadicActivationIP.java
index 3365fe5..d5b8009 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSporadicActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedSporadicActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.SporadicActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedTaskIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedTaskIP.java
index 056f89c..2844c77 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedTaskIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedTaskIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.TaskItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getTasksContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedVariableRateActivationIP.java b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedVariableRateActivationIP.java
index 36abb1a..71565a0 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedVariableRateActivationIP.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx.ui/src/org/eclipse/app4mc/amalthea/sphinx/ui/sw/extended/ExtendedVariableRateActivationIP.java
@@ -14,7 +14,7 @@
 
 import org.eclipse.app4mc.amalthea.model.SWModel;
 import org.eclipse.app4mc.amalthea.model.provider.VariableRateActivationItemProvider;
-import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelItemProvider;
+import org.eclipse.app4mc.amalthea.sphinx.ui.ExtendedSWModelIP;
 import org.eclipse.emf.common.notify.AdapterFactory;
 import org.eclipse.emf.edit.provider.ITreeItemContentProvider;
 
@@ -30,7 +30,7 @@
 	@Override
 	public Object getParent(final Object object) {
 		final Object swModel = super.getParent(object);
-		final ExtendedSWModelItemProvider swModelItemProvider = (ExtendedSWModelItemProvider) this.adapterFactory
+		final ExtendedSWModelIP swModelItemProvider = (ExtendedSWModelIP) this.adapterFactory
 				.adapt(swModel, ITreeItemContentProvider.class);
 		return swModelItemProvider != null ? swModelItemProvider.getActivationsContainerIP((SWModel) swModel) : null;
 	}
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.sphinx/META-INF/MANIFEST.MF
index 1be7d2f..72b1fc1 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx/META-INF/MANIFEST.MF
@@ -2,10 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Model Sphinx Extensions
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.sphinx;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea.sphinx.Activator
 Require-Bundle: org.eclipse.core.runtime,
  org.eclipse.emf.ecore,
+ org.eclipse.emf.ecore.xmi,
  org.eclipse.emf.edit,
  org.eclipse.sphinx.emf,
  org.eclipse.sphinx.emf.workspace
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaMetaModelDescriptor.java b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaMetaModelDescriptor.java
index ca5066b..6786d1a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaMetaModelDescriptor.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaMetaModelDescriptor.java
@@ -25,7 +25,7 @@
 
 	private static final String NAME = "AMALTHEA Model";//$NON-NLS-1$
 
-	private static final String BASE_NAMESPACE = "http://app4mc.eclipse.org/amalthea/0.9.6";
+	private static final String BASE_NAMESPACE = "http://app4mc.eclipse.org/amalthea/0.9.7";
 
 	// Old definition with subpackages -> no longer required
 	// private static final String POSTFIX_PATTERN =
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResource.java b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResource.java
index 29a7de3..b0a6f97 100644
--- a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResource.java
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResource.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2015-2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2015-2020 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -21,7 +21,6 @@
 import java.util.zip.ZipFile;
 
 import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.xmi.XMLHelper;
 import org.eclipse.emf.ecore.xmi.XMLLoad;
@@ -61,12 +60,14 @@
 		getDefaultLoadOptions().put(XMLResource.OPTION_KEEP_DEFAULT_CONTENT, Boolean.TRUE);
 		getDefaultSaveOptions().put(XMLResource.OPTION_KEEP_DEFAULT_CONTENT, Boolean.TRUE);
 
+		// Use AmaltheaResourceHandler
+		getDefaultLoadOptions().put(XMLResource.OPTION_RESOURCE_HANDLER, new AmaltheaResourceHandler());
+		getDefaultSaveOptions().put(XMLResource.OPTION_RESOURCE_HANDLER, new AmaltheaResourceHandler());
+		
 		// set zip option
 		boolean isZipFile = isZipFile(getURI());
 		getDefaultLoadOptions().put(OPTION_ZIP, isZipFile);
 		getDefaultSaveOptions().put(OPTION_ZIP, isZipFile);
-		
-		setIntrinsicIDToEObjectMap(new HashMap<String, EObject>());
 	}
 
 	private boolean isZipFile(final URI uri) {
@@ -98,6 +99,18 @@
 		return false;
 	}
 
+	@Override
+	protected boolean useIDs() {
+		return true;
+	}
+
+	protected void resetIDMaps() {
+		synchronized(this) {
+			idToEObjectMap = null;
+			eObjectToIDMap = null;
+		}
+	}
+
 	/*
 	 * @see org.eclipse.emf.ecore.resource.impl.ResourceImpl#unloaded(org.eclipse.emf.ecore.InternalEObject)
 	 */
diff --git a/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceHandler.java b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceHandler.java
new file mode 100644
index 0000000..a9ad5e0
--- /dev/null
+++ b/plugins/org.eclipse.app4mc.amalthea.sphinx/src/org/eclipse/app4mc/amalthea/sphinx/AmaltheaResourceHandler.java
@@ -0,0 +1,89 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.sphinx;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.emf.common.util.TreeIterator;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.xmi.XMLResource;
+import org.eclipse.emf.ecore.xmi.impl.BasicResourceHandler;
+
+public class AmaltheaResourceHandler extends BasicResourceHandler {
+
+	@Override
+	public void preLoad(XMLResource resource, InputStream inputStream, Map<?, ?> options) {
+		// enable cache for intrinsic IDs
+		if (resource instanceof AmaltheaResource) {
+			((AmaltheaResource) resource).setIntrinsicIDToEObjectMap(new HashMap<String, EObject>());
+		}
+	}
+
+	@Override
+	public void postLoad(XMLResource resource, InputStream inputStream, Map<?, ?> options) {
+		// disable cache for intrinsic IDs
+		if (resource instanceof AmaltheaResource) {
+			((AmaltheaResource) resource).setIntrinsicIDToEObjectMap(null);
+		}
+		
+		resetExtrinsicIDs(resource);
+	}
+
+	@Override
+	public void preSave(XMLResource resource, OutputStream outputStream, Map<?, ?> options) {
+		setExtrinsicIDs(resource);
+	}
+
+	@Override
+	public void postSave(XMLResource resource, OutputStream outputStream, Map<?, ?> options) {
+		resetExtrinsicIDs(resource);
+	}
+
+	private void setExtrinsicIDs(XMLResource resource) {
+		if (resource == null) return;
+		
+		// set xmi:id for all objects with a valid ID attribute
+		TreeIterator<EObject> allProperContents = EcoreUtil.getAllProperContents(resource, false);
+		while (allProperContents.hasNext()) {
+			EObject eObject = allProperContents.next();
+			String id = EcoreUtil.getID(eObject);
+			if (id != null)
+				resource.setID(eObject, id);
+		}
+	}
+
+	private void resetExtrinsicIDs(XMLResource resource) {
+		if (resource == null) return;
+		
+		if (resource instanceof AmaltheaResource) {
+			// reset the ID <-> EObject maps
+			((AmaltheaResource) resource).resetIDMaps();
+		} else {
+			// reset xmi:id for all objects with ID attribute
+			TreeIterator<EObject> allProperContents = EcoreUtil.getAllProperContents(resource, false);
+			while (allProperContents.hasNext()) {
+				EObject eObject = allProperContents.next();
+				if (eObject.eClass().getEIDAttribute() != null)
+					resource.setID(eObject, null);
+			}
+		}
+	}
+
+}
diff --git a/plugins/org.eclipse.app4mc.amalthea.validations.ta/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.validations.ta/META-INF/MANIFEST.MF
index 0703122..863cf07 100644
--- a/plugins/org.eclipse.app4mc.amalthea.validations.ta/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.validations.ta/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Validations - Timing Architects Simulation
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.validations.ta;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Automatic-Module-Name: org.eclipse.app4mc.amalthea.validations.ta
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.app4mc.amalthea.validations/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.validations/META-INF/MANIFEST.MF
index 21b404b..5309fd6 100644
--- a/plugins/org.eclipse.app4mc.amalthea.validations/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.validations/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Validations
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.validations;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Automatic-Module-Name: org.eclipse.app4mc.validations.amalthea
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validation/core/AmaltheaValidation.java b/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validation/core/AmaltheaValidation.java
index 53be762..19f8105 100644
--- a/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validation/core/AmaltheaValidation.java
+++ b/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validation/core/AmaltheaValidation.java
@@ -59,7 +59,7 @@
 		if (prefix == null || prefix.isEmpty()) {
 			return name(object);
 		} else {
-			return "\"" + prefix + "/" + object.getName() + "\"";			
+			return "\"" + prefix + "." + object.getName() + "\"";			
 		}
 	}
 	
diff --git a/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validations/software/AmSwDataDependency.java b/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validations/software/AmSwDataDependency.java
index 637724c..5c5d50f 100644
--- a/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validations/software/AmSwDataDependency.java
+++ b/plugins/org.eclipse.app4mc.amalthea.validations/src/org/eclipse/app4mc/amalthea/validations/software/AmSwDataDependency.java
@@ -75,7 +75,7 @@
 				LabelAccess labelAccess = (LabelAccess) container;
 				LabelAccessEnum accessType = labelAccess.getAccess();
 				if (accessType != LabelAccessEnum.WRITE) {
-					addIssue(results, labelAccess, ePackage.getLabelAccess_DependsOn(),
+					addIssue(results, labelAccess, ePackage.getIDependsOn_DependsOn(),
 							"Data dependency: A data dependency can only be defined for WRITE label accesses");
 				}
 			}
@@ -84,7 +84,7 @@
 				RunnableParameter runParam = (RunnableParameter) container;
 				DirectionType direction = runParam.getDirection();
 				if (direction != DirectionType.OUT && direction != DirectionType.INOUT) {
-					addIssue(results, runParam, ePackage.getRunnableParameter_DependsOn(),
+					addIssue(results, runParam, ePackage.getIDependsOn_DependsOn(),
 							"Data dependency: A data dependency can only be defined for OUT/INOUT parameters");
 				}
 			}
@@ -95,7 +95,7 @@
 				if (parameter != null) {
 					DirectionType direction = parameter.getDirection();
 					if (direction != DirectionType.IN && direction != DirectionType.INOUT) {
-						addIssue(results, callArg, ePackage.getCallArgument_DependsOn(),
+						addIssue(results, callArg, ePackage.getIDependsOn_DependsOn(),
 								"Data dependency: A data dependency can only be defined for IN/INOUT call arguments");
 					}
 				}
@@ -133,7 +133,7 @@
 		// CallArguments (out, inout) of contained calls
 		List<DirectionType> possibleDirections = Arrays.asList(DirectionType.OUT, DirectionType.INOUT);
 		
-		return SoftwareUtil.collectCallGraphItems(runnable.getCallGraph(), null, RunnableCall.class).stream()
+		return SoftwareUtil.collectActivityGraphItems(runnable.getActivityGraph(), null, RunnableCall.class).stream()
 				.flatMap(e -> e.getArguments().stream())
 				.filter(e -> e.getParameter() != null)
 				.filter(e -> possibleDirections.contains(e.getParameter().getDirection()))
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/META-INF/MANIFEST.MF
index df58c09..5e07e93 100644
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Hardware Visualization
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.visualization.hw;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.amalthea.visualization.hw.Activator
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/ModelToTextResult.java b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/ModelToTextResult.java
index 9f77de1..e17d674 100644
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/ModelToTextResult.java
+++ b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/ModelToTextResult.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH.
+ * Copyright (c) 2018-2019 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -13,10 +13,10 @@
 
 public class ModelToTextResult {
 
-	ModelToTextResult(){
+	public ModelToTextResult() {
 		errorFlag = false;
 	}
-	
+
 	private Boolean errorFlag;
 
 	public Boolean getErrorFlag() {
@@ -26,5 +26,12 @@
 	public void setErrorFlag(Boolean errorFlag) {
 		this.errorFlag = errorFlag;
 	}
-	
+
+	public boolean error() {
+		return errorFlag;
+	}
+
+	public boolean success() {
+		return !errorFlag;
+	}
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/OutputToFile.java b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/OutputToFile.java
deleted file mode 100644
index a695cd8..0000000
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/OutputToFile.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.amalthea.visualization.hw;
-
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-
-public class OutputToFile {
-
-	void createfile(CharSequence content, String path, String fileName) {
-		try {
-			System.out.println(path);
-
-			FileWriter fileWriter = new FileWriter(path + "/" + fileName);
-
-			BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
-			bufferedWriter.write(content.toString());
-			bufferedWriter.close();
-
-			fileWriter.close();
-
-		} catch (IOException ioe) {
-			ioe.printStackTrace();
-			// System.out.println("Error: Folder not found, refreshing the workspace may
-			// help");
-		}
-	}
-}
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/VisualizationHandler.java b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/VisualizationHandler.java
index 637aa92..9675085 100644
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/VisualizationHandler.java
+++ b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/VisualizationHandler.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH.
+ * Copyright (c) 2018-2019 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -14,8 +14,13 @@
 
 package org.eclipse.app4mc.amalthea.visualization.hw;
 
+import java.io.BufferedWriter;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
 import java.io.FileOutputStream;
-import java.io.OutputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.nio.charset.Charset;
 
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.amalthea.visualization.hw.templates.HWBlockDiagramCreator;
@@ -28,9 +33,11 @@
 import org.eclipse.core.resources.IFolder;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Path;
+import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.preference.IPreferenceStore;
@@ -41,117 +48,150 @@
 import net.sourceforge.plantuml.FileFormat;
 import net.sourceforge.plantuml.FileFormatOption;
 import net.sourceforge.plantuml.SourceStringReader;
+import net.sourceforge.plantuml.core.DiagramDescription;
 
 public class VisualizationHandler extends AbstractHandler {
 
 	@Override
 	public Object execute(ExecutionEvent event) throws ExecutionException {
+		  String diagramFileName = "Diagram.svg";
+		  String plantumlFileName = "Diagram_Description.plantuml";
 
+		// **** Check dot path and set GRAPHVIZ_DOT property
+		
+		final String dotPath = getValueFromPreferenceStore(PreferenceConstants.P_DOT_PATH);
+		
+		if (dotPath == null || dotPath.equals("")) {
+			showErrorDialog("Missing Graphviz dot.exe location."
+						+ "\nPlease specify location - preference page 'Amalthea Hw Visualization'.");
+			return null;
+		}
+		
+		final File dotFile = new File(dotPath);
+		if (!dotFile.canExecute()) {
+			showErrorDialog("Invalid Graphviz dot.exe location: " + dotFile.getAbsolutePath()
+						+ "\nPlease set location - preference page 'Amalthea Hw Visualization'.");
+			return null;
+		}
+		
+		System.setProperty("GRAPHVIZ_DOT", dotFile.getAbsolutePath());
+
+		System.out.println("GRAPHVIZ_DOT: " + System.getProperty("GRAPHVIZ_DOT"));
+		
+		// **** Check selection and set HW model
+		
 		Object selection = getSelection(event);
+		if (!(selection instanceof HWModel)) return null;
+		
+		
 
-		if (selection instanceof HWModel) {
+		HWModel hwModel = ((HWModel) selection);
+			
+		// **** Determine parent folder
 
-			HWBlockDiagramCreator umlDiagramCreator = new HWBlockDiagramCreator();
-			OutputToFile createDiagramFile = new OutputToFile();
+		Resource eResource = hwModel.eResource();
+		if (eResource == null) return null;
+		
+		URI uri = eResource.getURI();
+		IPath path = new Path(uri.toPlatformString(true));
+		IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
+		
+		String amaltheaModelName=file.getName();
+		if(amaltheaModelName!=null) {
+			amaltheaModelName=amaltheaModelName.replaceFirst("[.][^.]+$", "");
+			diagramFileName=amaltheaModelName+".svg";
+			plantumlFileName=amaltheaModelName+".plantuml";
+		}
+		IContainer parentFolder = file.getParent();
+		
+		if (parentFolder == null) return null;
 
-			HWModel hwModel = ((HWModel) selection);
+		// **** Find visualization folder (create if necessary)
 
-			String diagramFileName = "Diagram.svg";
-			String plantumlFileName = "Diagram_Description.plantuml";
+		IFolder folder = parentFolder.getFolder(new Path("hwModelVisualization"));
+		
+		if (!folder.exists()) {
+			try {
+				folder.create(IResource.NONE, true, null);
+			} catch (CoreException e) {
+				return null;
+			}
+		}
+		
+		String absPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString()
+				+ folder.getFullPath().toString();
+		
+		// **** Generate Plant-UML file
+		
+		CharSequence umlOutput = HWBlockDiagramCreator.generatePlantUML(hwModel);
+		if (umlOutput == null) {
+			showErrorDialog("Due to errors unable to generate HW Visualization for selected AMALTHEA model file");
+			return null;
+		}
 
-			final String dot_exe_location = getValueFromPreferenceStore(PreferenceConstants.P_DOT_PATH);
+		// **** Write to UML to file
 
-			if (dot_exe_location == null || dot_exe_location.equals("")) {
-				MessageDialog.openError(Display.getDefault().getActiveShell(), "AMALTHEA HW Visualization",
-						"Not able to find Graphviz dot.exe location, please set it in the Amalthea Hw Visualization preference page");
+		boolean success = writeToFile(umlOutput, absPath, plantumlFileName);
+		if (!success) return null;
+		
+		refreshFolder(folder);
+		
+		System.out.println("diagram.plantuml created");
+		System.out.println(umlOutput);
+
+		// **** Render SVG output
+
+		try (	ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+				FileOutputStream fileStream = new FileOutputStream(absPath + "/" + diagramFileName))
+		{
+			SourceStringReader reader = new SourceStringReader(umlOutput.toString());
+			DiagramDescription description = reader.outputImage(outputStream, new FileFormatOption(FileFormat.SVG));
+			
+			byte[] svgBytes = outputStream.toByteArray();
+			String svgString = new String(svgBytes, Charset.forName("UTF-8"));
+			
+			fileStream.write(svgBytes);
+			fileStream.flush();
+			
+			refreshFolder(folder);
+			
+			if (description == null || svgString.contains("An error has occured")) {
+				showErrorDialog("SVG rendering failed."
+						+ "\nCheck Graphviz dot.exe location - preference page 'Amalthea Hw Visualization'.");
 				return null;
 			}
 
-			System.setProperty("GRAPHVIZ_DOT", dot_exe_location);
-
-			if (hwModel != null) {
-
-				Resource eResource = hwModel.eResource();
-
-				if (eResource != null) {
-
-					org.eclipse.emf.common.util.URI uri = eResource.getURI();
-					IPath path = new Path(uri.toPlatformString(true));
-					IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
-					IContainer parentFolder = file.getParent();
-
-					try {
-						if (parentFolder != null) {
-
-							IFolder folder = parentFolder.getFolder(new Path("hwModelVisualization"));
-
-							if (!folder.exists()) {
-								folder.create(IResource.NONE, true, null);
-							}
-
-							String absPath = ResourcesPlugin.getWorkspace().getRoot().getLocation().toString()
-									+ folder.getFullPath().toString();
-							
-							final ModelToTextResult errorCheck = new ModelToTextResult();
-
-							CharSequence umlOutput = umlDiagramCreator.generatePlantUmlContent(hwModel, errorCheck);
-							
-							if(errorCheck.getErrorFlag() == false)
-							{
-
-								createDiagramFile.createfile(umlOutput, absPath, plantumlFileName);
-	
-								System.out.println("diagram.plantuml created");
-								System.out.println(umlOutput);
-	
-								try {
-									OutputStream diagramFile = new FileOutputStream(absPath + "/" + diagramFileName);
-									SourceStringReader reader = new SourceStringReader(umlOutput.toString());
-									reader.outputImage(diagramFile, new FileFormatOption(FileFormat.SVG));
-									diagramFile.close();
-	
-									folder.refreshLocal(1, new NullProgressMonitor());
-	
-									MessageDialog.openInformation(Display.getDefault().getActiveShell(),
-											"AMALTHEA HW Visualization",
-											"Successfully generated HW Visualization for amalthea model file");
-	
-								} catch (Exception e) {
-									MessageDialog.openError(Display.getDefault().getActiveShell(),
-											"AMALTHEA HW Visualization",
-											"Unable to generate HW Visualization for selected AMALTHEA model file");
-									e.printStackTrace();
-								}
-	
-							}
-							else {
-								MessageDialog.openError(Display.getDefault().getActiveShell(),
-										"AMALTHEA HW Visualization",
-										"Due to errors unable to generate HW Visualization for selected AMALTHEA model file");
-							}
-						}
-							
-					} catch (Exception e) {
-						e.printStackTrace();
-					}
-
-				} else {
-					System.out.println("No HW-Model available");
-				}
-			}
+			System.out.println("diagram.svg created");
+			
+			showInfoDialog("Successfully generated HW Visualization for amalthea model file.");
+		} catch (Exception e) {
+			showErrorDialog("Unable to generate HW Visualization for selected AMALTHEA model file.");
+			e.printStackTrace();
 		}
 
 		return null;
 	}
 
-	protected static String getValueFromPreferenceStore(final String key) {
+	private void showInfoDialog(String message) {
+		MessageDialog.openInformation(Display.getDefault().getActiveShell(),
+				"AMALTHEA HW Visualization",
+				message);
+	}
+	
+	private void showErrorDialog(String message) {
+		MessageDialog.openError(Display.getDefault().getActiveShell(),
+				"AMALTHEA HW Visualization",
+				message);
+	}
+
+	private String getValueFromPreferenceStore(final String key) {
 
 		final IPreferenceStore store = Activator.getDefault().getPreferenceStore();
 
 		return store.getString(key);
 	}
 
-	protected Object getSelection(final ExecutionEvent event) {
+	private Object getSelection(final ExecutionEvent event) {
 
 		// Fetch current selection
 		final IStructuredSelection selection = (IStructuredSelection) HandlerUtil.getActiveSite(event)
@@ -166,4 +206,29 @@
 		return selection.getFirstElement();
 	}
 
+	private boolean writeToFile(CharSequence content, String path, String fileName) {
+
+		System.out.println("Path: " + path);
+		System.out.println("File: " + fileName);
+		
+		try (	FileWriter fileWriter = new FileWriter(path + "/" + fileName);
+				BufferedWriter bufferedWriter = new BufferedWriter(fileWriter))
+		{
+			bufferedWriter.write(content.toString());
+			return true;
+		}
+		catch (IOException e)
+		{
+			return false;
+		}
+	}
+
+	private void refreshFolder(IFolder folder) {
+		try {
+			folder.refreshLocal(1, new NullProgressMonitor());
+		} catch (CoreException ex) {
+			// no action required
+		}
+	}
+
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.xtend b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.xtend
index c4008c2..153b9f3 100644
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.xtend
+++ b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/src/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.xtend
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- * Copyright (c) 2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2018-2019 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -27,7 +27,48 @@
 
 class HWBlockDiagramCreator {
 
-	def CharSequence generateLevel(HWModel model, HwStructure s, ModelToTextResult errorCheck) '''
+	static def CharSequence generatePlantUML(HWModel model) {
+		val state = new ModelToTextResult()
+		
+		val output = generatePlantUmlContent(model, state)
+		
+		if (state.success) output else null
+	}
+
+	static def generatePlantUmlContent(HWModel model, ModelToTextResult result) '''
+		@startuml
+		«IF !model.structures.empty»
+			
+			' ===== FRAMES =====
+			«FOR s : model.structures»
+				«generateLevel(model, s, result)»
+			«ENDFOR»
+			
+			' ===== ROUTES =====
+			«FOR s : model.structures»
+				«generateRoutes(model, s, result)»
+			«ENDFOR»
+		«ELSE»
+			«MessageDialog.openError(Display.getDefault().getActiveShell(), "AMALTHEA HW Visualization", "No Structure in the model")»
+			«result.errorFlag = true»
+		«ENDIF»
+		
+		skinparam component {
+			backgroundColor<<ProcessingUnit>> #8CACFF
+			borderColor<<ProcessingUnit>> #000000
+			backgroundColor<<ConnectionHandler>> #FFFFA0
+			borderColor<<ConnectionHandler>> #000000
+			backgroundColor<<Memory>> #60FF82
+			borderColor<<Memory>> #000000
+			backgroundColor<<Cache>> #C8FFA6
+			borderColor<<Cache>> #000000
+			ArrowFontColor #C0C0C0
+		}
+		
+		@enduml
+	'''
+
+	static def CharSequence generateLevel(HWModel model, HwStructure s, ModelToTextResult errorCheck) '''
 		«IF !(s.name.nullOrEmpty)»
 		
 			frame "«s.name»" as «convertFluxString(s.name)» {
@@ -60,7 +101,7 @@
 			}
 	'''
 
-	def CharSequence generateRoutes(HWModel model, HwStructure s, ModelToTextResult errorCheck) '''
+	static def CharSequence generateRoutes(HWModel model, HwStructure s, ModelToTextResult errorCheck) '''
 		«IF !s.connections.empty»
 			
 			' add physical connections of structure «s.name»:
@@ -111,44 +152,11 @@
 		«ENDIF»
 	'''
 
-	def generatePlantUmlContent(HWModel model, ModelToTextResult errorCheck) '''
-		@startuml
-		«IF !model.structures.empty»
-			
-			' ===== FRAMES =====
-			«FOR s : model.structures»
-				«generateLevel(model, s, errorCheck)»
-			«ENDFOR»
-			
-			' ===== ROUTES =====
-			«FOR s : model.structures»
-				«generateRoutes(model, s, errorCheck)»
-			«ENDFOR»
-		«ELSE»
-			«MessageDialog.openError(Display.getDefault().getActiveShell(), "AMALTHEA HW Visualization", "No Structure in the model")»
-			«errorCheck.errorFlag = true»
-		«ENDIF»
-		
-		skinparam component {
-			backgroundColor<<ProcessingUnit>> #8CACFF
-			borderColor<<ProcessingUnit>> #000000
-			backgroundColor<<ConnectionHandler>> #FFFFA0
-			borderColor<<ConnectionHandler>> #000000
-			backgroundColor<<Memory>> #60FF82
-			borderColor<<Memory>> #000000
-			backgroundColor<<Cache>> #C8FFA6
-			borderColor<<Cache>> #000000
-			ArrowFontColor #C0C0C0
-		}
-		
-		@enduml
-	'''
-
-	def convertFluxString(String instring) {
+	static def convertFluxString(String instring) {
 		return convertGenericString(instring, "_");
 	}
 
-	def convertGenericString(String instring, String replacestring) {
+	static def convertGenericString(String instring, String replacestring) {
 		val String Regex = '/';
 		val tmpstr0 = instring.replaceAll(Regex, replacestring);
 
@@ -205,7 +213,6 @@
 		val tmpstr17 = tmpstr16.replaceAll(Regex17, replacestring);
 
 		return tmpstr17;
-
 	}
 
 }
diff --git a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/xtend-gen/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.java b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/xtend-gen/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.java
index 21a19b5..fa2aecb 100644
--- a/plugins/org.eclipse.app4mc.amalthea.visualization.hw/xtend-gen/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.java
+++ b/plugins/org.eclipse.app4mc.amalthea.visualization.hw/xtend-gen/org/eclipse/app4mc/amalthea/visualization/hw/templates/HWBlockDiagramCreator.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2018 Robert Bosch GmbH and others.
+ * Copyright (c) 2018-2019 Robert Bosch GmbH and others.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -33,7 +33,99 @@
 
 @SuppressWarnings("all")
 public class HWBlockDiagramCreator {
-  public CharSequence generateLevel(final HWModel model, final HwStructure s, final ModelToTextResult errorCheck) {
+  public static CharSequence generatePlantUML(final HWModel model) {
+    CharSequence _xblockexpression = null;
+    {
+      final ModelToTextResult state = new ModelToTextResult();
+      final CharSequence output = HWBlockDiagramCreator.generatePlantUmlContent(model, state);
+      CharSequence _xifexpression = null;
+      boolean _success = state.success();
+      if (_success) {
+        _xifexpression = output;
+      } else {
+        _xifexpression = null;
+      }
+      _xblockexpression = _xifexpression;
+    }
+    return _xblockexpression;
+  }
+  
+  public static CharSequence generatePlantUmlContent(final HWModel model, final ModelToTextResult result) {
+    StringConcatenation _builder = new StringConcatenation();
+    _builder.append("@startuml");
+    _builder.newLine();
+    {
+      boolean _isEmpty = model.getStructures().isEmpty();
+      boolean _not = (!_isEmpty);
+      if (_not) {
+        _builder.newLine();
+        _builder.append("\' ===== FRAMES =====");
+        _builder.newLine();
+        {
+          EList<HwStructure> _structures = model.getStructures();
+          for(final HwStructure s : _structures) {
+            CharSequence _generateLevel = HWBlockDiagramCreator.generateLevel(model, s, result);
+            _builder.append(_generateLevel);
+            _builder.newLineIfNotEmpty();
+          }
+        }
+        _builder.newLine();
+        _builder.append("\' ===== ROUTES =====");
+        _builder.newLine();
+        {
+          EList<HwStructure> _structures_1 = model.getStructures();
+          for(final HwStructure s_1 : _structures_1) {
+            CharSequence _generateRoutes = HWBlockDiagramCreator.generateRoutes(model, s_1, result);
+            _builder.append(_generateRoutes);
+            _builder.newLineIfNotEmpty();
+          }
+        }
+      } else {
+        MessageDialog.openError(Display.getDefault().getActiveShell(), "AMALTHEA HW Visualization", "No Structure in the model");
+        _builder.newLineIfNotEmpty();
+        result.setErrorFlag(Boolean.valueOf(true));
+        _builder.newLineIfNotEmpty();
+      }
+    }
+    _builder.newLine();
+    _builder.append("skinparam component {");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("backgroundColor<<ProcessingUnit>> #8CACFF");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("borderColor<<ProcessingUnit>> #000000");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("backgroundColor<<ConnectionHandler>> #FFFFA0");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("borderColor<<ConnectionHandler>> #000000");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("backgroundColor<<Memory>> #60FF82");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("borderColor<<Memory>> #000000");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("backgroundColor<<Cache>> #C8FFA6");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("borderColor<<Cache>> #000000");
+    _builder.newLine();
+    _builder.append("\t");
+    _builder.append("ArrowFontColor #C0C0C0");
+    _builder.newLine();
+    _builder.append("}");
+    _builder.newLine();
+    _builder.newLine();
+    _builder.append("@enduml");
+    _builder.newLine();
+    return _builder;
+  }
+  
+  public static CharSequence generateLevel(final HWModel model, final HwStructure s, final ModelToTextResult errorCheck) {
     StringConcatenation _builder = new StringConcatenation();
     {
       boolean _isNullOrEmpty = StringExtensions.isNullOrEmpty(s.getName());
@@ -45,7 +137,7 @@
         String _name = s.getName();
         _builder.append(_name, "\t");
         _builder.append("\" as ");
-        String _convertFluxString = this.convertFluxString(s.getName());
+        String _convertFluxString = HWBlockDiagramCreator.convertFluxString(s.getName());
         _builder.append(_convertFluxString, "\t");
         _builder.append(" {");
         _builder.newLineIfNotEmpty();
@@ -67,10 +159,10 @@
                         _builder.append("\t");
                         _builder.append("\t");
                         _builder.append("[");
-                        String _convertFluxString_1 = this.convertFluxString(((ProcessingUnit)m).getName());
+                        String _convertFluxString_1 = HWBlockDiagramCreator.convertFluxString(((ProcessingUnit)m).getName());
                         _builder.append(_convertFluxString_1, "\t\t");
                         _builder.append("] as ");
-                        String _convertFluxString_2 = this.convertFluxString(((ProcessingUnit)m).getName());
+                        String _convertFluxString_2 = HWBlockDiagramCreator.convertFluxString(((ProcessingUnit)m).getName());
                         _builder.append(_convertFluxString_2, "\t\t");
                         _builder.append(" <<ProcessingUnit>>");
                         _builder.newLineIfNotEmpty();
@@ -79,10 +171,10 @@
                           _builder.append("\t");
                           _builder.append("\t");
                           _builder.append("[");
-                          String _convertFluxString_3 = this.convertFluxString(((Memory)m).getName());
+                          String _convertFluxString_3 = HWBlockDiagramCreator.convertFluxString(((Memory)m).getName());
                           _builder.append(_convertFluxString_3, "\t\t");
                           _builder.append("] as ");
-                          String _convertFluxString_4 = this.convertFluxString(((Memory)m).getName());
+                          String _convertFluxString_4 = HWBlockDiagramCreator.convertFluxString(((Memory)m).getName());
                           _builder.append(_convertFluxString_4, "\t\t");
                           _builder.append(" <<Memory>>");
                           _builder.newLineIfNotEmpty();
@@ -91,10 +183,10 @@
                             _builder.append("\t");
                             _builder.append("\t");
                             _builder.append("[");
-                            String _convertFluxString_5 = this.convertFluxString(((ConnectionHandler)m).getName());
+                            String _convertFluxString_5 = HWBlockDiagramCreator.convertFluxString(((ConnectionHandler)m).getName());
                             _builder.append(_convertFluxString_5, "\t\t");
                             _builder.append("] as ");
-                            String _convertFluxString_6 = this.convertFluxString(((ConnectionHandler)m).getName());
+                            String _convertFluxString_6 = HWBlockDiagramCreator.convertFluxString(((ConnectionHandler)m).getName());
                             _builder.append(_convertFluxString_6, "\t\t");
                             _builder.append(" <<ConnectionHandler>>");
                             _builder.newLineIfNotEmpty();
@@ -102,10 +194,10 @@
                             _builder.append("\t");
                             _builder.append("\t");
                             _builder.append("[");
-                            String _convertFluxString_7 = this.convertFluxString(m.getName());
+                            String _convertFluxString_7 = HWBlockDiagramCreator.convertFluxString(m.getName());
                             _builder.append(_convertFluxString_7, "\t\t");
                             _builder.append("] as ");
-                            String _convertFluxString_8 = this.convertFluxString(m.getName());
+                            String _convertFluxString_8 = HWBlockDiagramCreator.convertFluxString(m.getName());
                             _builder.append(_convertFluxString_8, "\t\t");
                             _builder.append(" <<Cache>>");
                             _builder.newLineIfNotEmpty();
@@ -135,7 +227,7 @@
           EList<HwStructure> _structures = s.getStructures();
           for(final HwStructure su : _structures) {
             _builder.append("\t");
-            CharSequence _generateLevel = this.generateLevel(model, su, errorCheck);
+            CharSequence _generateLevel = HWBlockDiagramCreator.generateLevel(model, su, errorCheck);
             _builder.append(_generateLevel, "\t");
             _builder.newLineIfNotEmpty();
           }
@@ -156,7 +248,7 @@
     return _builder;
   }
   
-  public CharSequence generateRoutes(final HWModel model, final HwStructure s, final ModelToTextResult errorCheck) {
+  public static CharSequence generateRoutes(final HWModel model, final HwStructure s, final ModelToTextResult errorCheck) {
     StringConcatenation _builder = new StringConcatenation();
     {
       boolean _isEmpty = s.getConnections().isEmpty();
@@ -178,11 +270,11 @@
                 _builder.newLine();
                 _builder.append("\t");
                 EObject _eContainer = c.getPort1().eContainer();
-                String _convertFluxString = this.convertFluxString(((ReferableBaseObject) _eContainer).getName());
+                String _convertFluxString = HWBlockDiagramCreator.convertFluxString(((ReferableBaseObject) _eContainer).getName());
                 _builder.append(_convertFluxString, "\t");
                 _builder.append(" -- ");
                 EObject _eContainer_1 = c.getPort2().eContainer();
-                String _convertFluxString_1 = this.convertFluxString(((ReferableBaseObject) _eContainer_1).getName());
+                String _convertFluxString_1 = HWBlockDiagramCreator.convertFluxString(((ReferableBaseObject) _eContainer_1).getName());
                 _builder.append(_convertFluxString_1, "\t");
                 _builder.append(" : ");
                 String _name_1 = c.getName();
@@ -192,11 +284,11 @@
                 _builder.newLine();
                 _builder.append("\t");
                 EObject _eContainer_2 = c.getPort1().eContainer();
-                String _convertFluxString_2 = this.convertFluxString(((ReferableBaseObject) _eContainer_2).getName());
+                String _convertFluxString_2 = HWBlockDiagramCreator.convertFluxString(((ReferableBaseObject) _eContainer_2).getName());
                 _builder.append(_convertFluxString_2, "\t");
                 _builder.append(" -- ");
                 EObject _eContainer_3 = c.getPort2().eContainer();
-                String _convertFluxString_3 = this.convertFluxString(((ReferableBaseObject) _eContainer_3).getName());
+                String _convertFluxString_3 = HWBlockDiagramCreator.convertFluxString(((ReferableBaseObject) _eContainer_3).getName());
                 _builder.append(_convertFluxString_3, "\t");
                 _builder.append(" : ");
                 String _string = c.toString();
@@ -242,10 +334,10 @@
                               if (_tripleNotEquals) {
                                 _builder.newLine();
                                 _builder.append("\t");
-                                String _convertFluxString_4 = this.convertFluxString(pUnit.getName());
+                                String _convertFluxString_4 = HWBlockDiagramCreator.convertFluxString(pUnit.getName());
                                 _builder.append(_convertFluxString_4, "\t");
                                 _builder.append(" ..>");
-                                String _convertFluxString_5 = this.convertFluxString(ae.getDestination().getName());
+                                String _convertFluxString_5 = HWBlockDiagramCreator.convertFluxString(ae.getDestination().getName());
                                 _builder.append(_convertFluxString_5, "\t");
                                 _builder.append(" : ");
                                 String _name_3 = ae.getName();
@@ -268,10 +360,10 @@
                               if (_tripleNotEquals_1) {
                                 _builder.newLine();
                                 _builder.append("\t");
-                                String _convertFluxString_6 = this.convertFluxString(pUnit.getName());
+                                String _convertFluxString_6 = HWBlockDiagramCreator.convertFluxString(pUnit.getName());
                                 _builder.append(_convertFluxString_6, "\t");
                                 _builder.append(" ..>");
-                                String _convertFluxString_7 = this.convertFluxString(ae.getDestination().getName());
+                                String _convertFluxString_7 = HWBlockDiagramCreator.convertFluxString(ae.getDestination().getName());
                                 _builder.append(_convertFluxString_7, "\t");
                                 _builder.append(" : ");
                                 String _string_1 = ae.toString();
@@ -306,7 +398,7 @@
         {
           EList<HwStructure> _structures = s.getStructures();
           for(final HwStructure su : _structures) {
-            CharSequence _generateRoutes = this.generateRoutes(model, su, errorCheck);
+            CharSequence _generateRoutes = HWBlockDiagramCreator.generateRoutes(model, su, errorCheck);
             _builder.append(_generateRoutes);
             _builder.newLineIfNotEmpty();
           }
@@ -316,86 +408,11 @@
     return _builder;
   }
   
-  public CharSequence generatePlantUmlContent(final HWModel model, final ModelToTextResult errorCheck) {
-    StringConcatenation _builder = new StringConcatenation();
-    _builder.append("@startuml");
-    _builder.newLine();
-    {
-      boolean _isEmpty = model.getStructures().isEmpty();
-      boolean _not = (!_isEmpty);
-      if (_not) {
-        _builder.newLine();
-        _builder.append("\' ===== FRAMES =====");
-        _builder.newLine();
-        {
-          EList<HwStructure> _structures = model.getStructures();
-          for(final HwStructure s : _structures) {
-            CharSequence _generateLevel = this.generateLevel(model, s, errorCheck);
-            _builder.append(_generateLevel);
-            _builder.newLineIfNotEmpty();
-          }
-        }
-        _builder.newLine();
-        _builder.append("\' ===== ROUTES =====");
-        _builder.newLine();
-        {
-          EList<HwStructure> _structures_1 = model.getStructures();
-          for(final HwStructure s_1 : _structures_1) {
-            CharSequence _generateRoutes = this.generateRoutes(model, s_1, errorCheck);
-            _builder.append(_generateRoutes);
-            _builder.newLineIfNotEmpty();
-          }
-        }
-      } else {
-        MessageDialog.openError(Display.getDefault().getActiveShell(), "AMALTHEA HW Visualization", "No Structure in the model");
-        _builder.newLineIfNotEmpty();
-        errorCheck.setErrorFlag(Boolean.valueOf(true));
-        _builder.newLineIfNotEmpty();
-      }
-    }
-    _builder.newLine();
-    _builder.append("skinparam component {");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("backgroundColor<<ProcessingUnit>> #8CACFF");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("borderColor<<ProcessingUnit>> #000000");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("backgroundColor<<ConnectionHandler>> #FFFFA0");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("borderColor<<ConnectionHandler>> #000000");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("backgroundColor<<Memory>> #60FF82");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("borderColor<<Memory>> #000000");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("backgroundColor<<Cache>> #C8FFA6");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("borderColor<<Cache>> #000000");
-    _builder.newLine();
-    _builder.append("\t");
-    _builder.append("ArrowFontColor #C0C0C0");
-    _builder.newLine();
-    _builder.append("}");
-    _builder.newLine();
-    _builder.newLine();
-    _builder.append("@enduml");
-    _builder.newLine();
-    return _builder;
+  public static String convertFluxString(final String instring) {
+    return HWBlockDiagramCreator.convertGenericString(instring, "_");
   }
   
-  public String convertFluxString(final String instring) {
-    return this.convertGenericString(instring, "_");
-  }
-  
-  public String convertGenericString(final String instring, final String replacestring) {
+  public static String convertGenericString(final String instring, final String replacestring) {
     final String Regex = "/";
     final String tmpstr0 = instring.replaceAll(Regex, replacestring);
     final String Regex1 = " ";
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.workflow.core/META-INF/MANIFEST.MF
index 61fbbba..d57ae40 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Workflow Core
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.workflow.core;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
  org.eclipse.app4mc.amalthea.model;visibility:=reexport,
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/AddSchedulePoints.java b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/AddSchedulePoints.java
index ecdd4fd..ad6182e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/AddSchedulePoints.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.core/src/org/eclipse/app4mc/amalthea/workflow/component/AddSchedulePoints.java
@@ -18,7 +18,7 @@
 import java.util.List;
 
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Preemption;
 import org.eclipse.app4mc.amalthea.model.RunnableCall;
 import org.eclipse.app4mc.amalthea.model.SchedulePoint;
@@ -32,7 +32,7 @@
 import org.eclipse.emf.ecore.EStructuralFeature;
 
 /**
- * This component adds so called {@link SchedulePoint}s to a {@link CallGraph} of a {@link Task}.
+ * This component adds so called {@link SchedulePoint}s to a {@link ActivityGraph} of a {@link Task}.
  * The {@link Task} must be configured as {@link Preemption#COOPERATIVE}.
  *
  */
@@ -62,10 +62,10 @@
 	
 	public void addSchedulePointsToTasks(List<Task> tasks) {
 		for (final Task task : tasks) {
-			if (task.getCallGraph() != null && task.getPreemption().equals(Preemption.COOPERATIVE)) {
+			if (task.getActivityGraph() != null && task.getPreemption().equals(Preemption.COOPERATIVE)) {
 				this.log.info("Adding schedule points to cooperative Task [" + task.getName() + "]");
 				
-				EList<RunnableCall> calls = SoftwareUtil.collectCallGraphItems(task.getCallGraph(), null, RunnableCall.class);
+				EList<RunnableCall> calls = SoftwareUtil.collectActivityGraphItems(task.getActivityGraph(), null, RunnableCall.class);
 				
 				for (RunnableCall rc : calls) {
 					EObject container = rc.eContainer();
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.ease/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.workflow.ease/META-INF/MANIFEST.MF
index 27bac29..df4de06 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.ease/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.ease/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Workflow Ease
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.workflow.ease;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.core.runtime;visibility:=reexport,
  org.eclipse.ease;bundle-version="0.3.0";visibility:=reexport,
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.workflow.help/META-INF/MANIFEST.MF
index ce9b253..76d019a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.help/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Workflow Help
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.workflow.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.help
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.help/pom.xml b/plugins/org.eclipse.app4mc.amalthea.workflow.help/pom.xml
index a473f87..2fd059a 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.amalthea.workflow.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/META-INF/MANIFEST.MF
index 8e5e167..b34f499 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Workflow MWE2
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.workflow.mwe2;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
diff --git a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AddSchedulePoints.java b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AddSchedulePoints.java
index 7c42e1f..df4340e 100644
--- a/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AddSchedulePoints.java
+++ b/plugins/org.eclipse.app4mc.amalthea.workflow.mwe2/src/org/eclipse/app4mc/amalthea/workflow/mwe2/util/AddSchedulePoints.java
@@ -17,7 +17,7 @@
 
 import org.apache.log4j.Logger;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.Preemption;
 import org.eclipse.app4mc.amalthea.model.RunnableCall;
 import org.eclipse.app4mc.amalthea.model.Task;
@@ -57,10 +57,10 @@
 		}
 		this.log.info("Starting...");
 		for (final Task task : getAmaltheaModel(ctx).getSwModel().getTasks()) {
-			if (null != task.getCallGraph() && task.getPreemption().equals(Preemption.COOPERATIVE)) {
+			if (null != task.getActivityGraph() && task.getPreemption().equals(Preemption.COOPERATIVE)) {
 				this.log.info("Adding schedule points to cooperative Task [" + task.getName() + "]");
 
-				EList<RunnableCall> calls = SoftwareUtil.collectCallGraphItems(task.getCallGraph(), null, RunnableCall.class);
+				EList<RunnableCall> calls = SoftwareUtil.collectActivityGraphItems(task.getActivityGraph(), null, RunnableCall.class);
 				
 				for (RunnableCall rc : calls) {
 					EObject container = rc.eContainer();
diff --git a/plugins/org.eclipse.app4mc.atdb.metrics/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.atdb.metrics/META-INF/MANIFEST.MF
index 37952af..65c59ba 100644
--- a/plugins/org.eclipse.app4mc.atdb.metrics/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.atdb.metrics/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Metricviewer - ATDB
 Bundle-SymbolicName: org.eclipse.app4mc.atdb.metrics;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.atdb.metrics.Activator
 Require-Bundle: org.eclipse.core.resources,
  org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.help/META-INF/MANIFEST.MF
index 7b8d816..01a9e82 100644
--- a/plugins/org.eclipse.app4mc.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.help/META-INF/MANIFEST.MF
@@ -2,5 +2,5 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Documentation
 Bundle-SymbolicName: org.eclipse.app4mc.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
diff --git a/plugins/org.eclipse.app4mc.help/docu/release_notes.textile b/plugins/org.eclipse.app4mc.help/docu/release_notes.textile
index 5843927..38d5bbf 100644
--- a/plugins/org.eclipse.app4mc.help/docu/release_notes.textile
+++ b/plugins/org.eclipse.app4mc.help/docu/release_notes.textile
@@ -1,6 +1,23 @@
 h1. Release Notes
 
 
+h2. Eclipse APP4MC 0.9.7 (Jan 2020)
+
+Model handling
+* Model migration support (0.9.6 -> 0.9.7)
+* Added virtual folders in component model tree view
+
+Model changes
+* Introduced namespaces and component structures
+* New model element to describe hierarchical interfaces
+* Model cleanup (simplified component ports)
+
+Product
+* Restructured migration component (also available as headless jar)
+
+_For details see "Release 0.9.7 issues":https://projects.eclipse.org/projects/technology.app4mc/releases/0.9.7/bugs_
+
+
 h2. Eclipse APP4MC 0.9.6 (Oct 2019)
 
 Model handling
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_hw.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_hw.png
index 6933cd6..7976cbe 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_hw.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_hw.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_runnables.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_runnables.png
index 24ee93d..e94394e 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_runnables.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_runnables.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_schedulers.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_schedulers.png
index 83191e3..2c6516d 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_schedulers.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_schedulers.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_stimuli.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_stimuli.png
index 0d2885d..ef3ed8b 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_stimuli.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_stimuli.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_tasks.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_tasks.png
index 7635b82..d2a6aef 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_tasks.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_1_tasks.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_hw.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_hw.png
index cf63082..b874425 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_hw.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_hw.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_runnables.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_runnables.png
index c0c41bd..6cc771b 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_runnables.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_runnables.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_scheduler.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_scheduler.png
index 14746a0..4c048c6 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_scheduler.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_scheduler.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_stimuli.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_stimuli.png
index 5832a8c..68debae 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_stimuli.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_stimuli.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_tasks.png b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_tasks.png
index 7490168..22b7e23 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_tasks.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_modeling/modeling_2_tasks.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pictures/example_numeric_modes_do-b.png b/plugins/org.eclipse.app4mc.help/pictures/example_numeric_modes_do-b.png
index b578eda..f9a147f 100644
--- a/plugins/org.eclipse.app4mc.help/pictures/example_numeric_modes_do-b.png
+++ b/plugins/org.eclipse.app4mc.help/pictures/example_numeric_modes_do-b.png
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.help/pom.xml b/plugins/org.eclipse.app4mc.help/pom.xml
index 25c68e5..a563222 100644
--- a/plugins/org.eclipse.app4mc.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.dialogs/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.dialogs/META-INF/MANIFEST.MF
index d046b43..e63edfc 100644
--- a/plugins/org.eclipse.app4mc.multicore.dialogs/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.dialogs/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Dialogs
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.dialogs;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.multicore.dialogs.DialogsPlugin
 Require-Bundle: org.apache.log4j,
  org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.multicore.dialogs/pom.xml b/plugins/org.eclipse.app4mc.multicore.dialogs/pom.xml
index 7b5b561..8b27dca 100644
--- a/plugins/org.eclipse.app4mc.multicore.dialogs/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.dialogs/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.dialogs</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.examples.installer/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.examples.installer/META-INF/MANIFEST.MF
index 14f2145..08181c7 100644
--- a/plugins/org.eclipse.app4mc.multicore.examples.installer/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.examples.installer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Examples Installer
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.examples.installer;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Localization: plugin
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.emf.common.ui
diff --git a/plugins/org.eclipse.app4mc.multicore.examples.installer/pom.xml b/plugins/org.eclipse.app4mc.multicore.examples.installer/pom.xml
index b345c71..24ab4c7 100644
--- a/plugins/org.eclipse.app4mc.multicore.examples.installer/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.examples.installer/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.examples.installer</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.help/META-INF/MANIFEST.MF
index 8a5a860..33539e1 100644
--- a/plugins/org.eclipse.app4mc.multicore.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.help/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Help
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.help
diff --git a/plugins/org.eclipse.app4mc.multicore.help/pom.xml b/plugins/org.eclipse.app4mc.multicore.help/pom.xml
index 130929d..f2b2d31 100644
--- a/plugins/org.eclipse.app4mc.multicore.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.openmapping/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.openmapping/META-INF/MANIFEST.MF
index 72e8ff5..bec0a56 100644
--- a/plugins/org.eclipse.app4mc.multicore.openmapping/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.openmapping/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Open Mapping
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.openmapping;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.multicore.openmapping.OpenMappingPlugin
 Require-Bundle: org.apache.log4j,
  org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.multicore.openmapping/pom.xml b/plugins/org.eclipse.app4mc.multicore.openmapping/pom.xml
index f4869d9..2051dbb 100644
--- a/plugins/org.eclipse.app4mc.multicore.openmapping/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.openmapping/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.openmapping</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.partitioning/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.partitioning/META-INF/MANIFEST.MF
index 1274379..f38fdb8 100644
--- a/plugins/org.eclipse.app4mc.multicore.partitioning/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.partitioning/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Partitioning
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.partitioning;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.multicore.partitioning.PartitioningPlugin
 Require-Bundle: org.apache.log4j,
  org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.multicore.partitioning/pom.xml b/plugins/org.eclipse.app4mc.multicore.partitioning/pom.xml
index 62d60d0..05ee901 100644
--- a/plugins/org.eclipse.app4mc.multicore.partitioning/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.partitioning/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.partitioning</artifactId>
diff --git a/plugins/org.eclipse.app4mc.multicore.sharelibs/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.multicore.sharelibs/META-INF/MANIFEST.MF
index 1673683..a85f101 100644
--- a/plugins/org.eclipse.app4mc.multicore.sharelibs/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.multicore.sharelibs/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Sharelibs
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.sharelibs;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Activator: org.eclipse.app4mc.multicore.sharelibs.ShareLibsPlugin
 Require-Bundle: org.eclipse.ui,
  org.eclipse.core.runtime,
diff --git a/plugins/org.eclipse.app4mc.multicore.sharelibs/pom.xml b/plugins/org.eclipse.app4mc.multicore.sharelibs/pom.xml
index bfb0ba7..581e580 100644
--- a/plugins/org.eclipse.app4mc.multicore.sharelibs/pom.xml
+++ b/plugins/org.eclipse.app4mc.multicore.sharelibs/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.multicore.sharelibs</artifactId>
diff --git a/plugins/org.eclipse.app4mc.platform.ide/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.platform.ide/META-INF/MANIFEST.MF
index 0dbac7c..aed8683 100644
--- a/plugins/org.eclipse.app4mc.platform.ide/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.platform.ide/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Tool Platform IDE
 Bundle-SymbolicName: org.eclipse.app4mc.platform.ide;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.app4mc.platform.ide/about.properties b/plugins/org.eclipse.app4mc.platform.ide/about.properties
index 15a7e90..fda785f 100644
--- a/plugins/org.eclipse.app4mc.platform.ide/about.properties
+++ b/plugins/org.eclipse.app4mc.platform.ide/about.properties
@@ -3,7 +3,7 @@
 The APP4MC Tool Platform is a Model Based Open Source Development Environment for Embedded Multi-Core Systems. \
 It was initially developed by the ITEA2 research projects AMALTHEA and AMALTHEA4public.\n\
 \n\
-Version 0.9.6\n\
+Version 0.9.7\n\
 \n\
 http://projects.eclipse.org/projects/technology.app4mc\n\
 http://www.amalthea-project.org\n
diff --git a/plugins/org.eclipse.app4mc.platform.ide/plugin.properties b/plugins/org.eclipse.app4mc.platform.ide/plugin.properties
index 8d132ff..6e101be 100644
--- a/plugins/org.eclipse.app4mc.platform.ide/plugin.properties
+++ b/plugins/org.eclipse.app4mc.platform.ide/plugin.properties
@@ -3,7 +3,7 @@
 The APP4MC Tool Platform is a Model Based Open Source Development Environment for Embedded Multi-Core Systems. \
 It was initially developed by the ITEA2 research projects AMALTHEA and AMALTHEA4public.\n\
 \n\
-Version 0.9.6\n\
+Version 0.9.7\n\
 \n\
 http://projects.eclipse.org/projects/technology.app4mc\n\
 http://www.amalthea-project.org\n
diff --git a/plugins/org.eclipse.app4mc.platform.ide/plugin.xml b/plugins/org.eclipse.app4mc.platform.ide/plugin.xml
index f7ded96..63aeb01 100644
--- a/plugins/org.eclipse.app4mc.platform.ide/plugin.xml
+++ b/plugins/org.eclipse.app4mc.platform.ide/plugin.xml
@@ -29,7 +29,7 @@
          </property>
          <property
                name="aboutText"
-               value="APP4MC Tool Platform&#x0A;&#x0A;(c) Copyright Eclipse APP4MC contributors and others. 2015 - 2019. &#x0A;All rights reserved.&#x0A;&#x0A;Version 0.9.6">
+               value="APP4MC Tool Platform&#x0A;&#x0A;(c) Copyright Eclipse APP4MC contributors and others. 2015 - 2020. &#x0A;All rights reserved.&#x0A;&#x0A;Version 0.9.7">
          </property>
          <property
                name="windowImages"
diff --git a/plugins/org.eclipse.app4mc.platform.ide/splash.bmp b/plugins/org.eclipse.app4mc.platform.ide/splash.bmp
index 175235e..b7967cc 100644
--- a/plugins/org.eclipse.app4mc.platform.ide/splash.bmp
+++ b/plugins/org.eclipse.app4mc.platform.ide/splash.bmp
Binary files differ
diff --git a/plugins/org.eclipse.app4mc.tracing.converter.atdb/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.tracing.converter.atdb/META-INF/MANIFEST.MF
index 0d004c7..1c5f5b1 100644
--- a/plugins/org.eclipse.app4mc.tracing.converter.atdb/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.tracing.converter.atdb/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Trace Converter - ATDB
 Bundle-SymbolicName: org.eclipse.app4mc.tracing.converter.atdb;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.apache.commons.lang,
diff --git a/plugins/org.eclipse.app4mc.tracing.converter.ot1/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.tracing.converter.ot1/META-INF/MANIFEST.MF
index 9a91415..9c89b3e 100644
--- a/plugins/org.eclipse.app4mc.tracing.converter.ot1/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.tracing.converter.ot1/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Trace Converter - OT1
 Bundle-SymbolicName: org.eclipse.app4mc.tracing.converter.ot1;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-ClassPath: .
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.eclipse.app4mc.tracing.converter/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.tracing.converter/META-INF/MANIFEST.MF
index debc814..c09a6c7 100644
--- a/plugins/org.eclipse.app4mc.tracing.converter/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.tracing.converter/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Trace Converter
 Bundle-SymbolicName: org.eclipse.app4mc.tracing.converter;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.eclipse.core.resources,
diff --git a/plugins/org.eclipse.app4mc.validation.core/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.validation.core/META-INF/MANIFEST.MF
index 97d3d3d..9c046a5 100644
--- a/plugins/org.eclipse.app4mc.validation.core/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.validation.core/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Validation Core
 Bundle-SymbolicName: org.eclipse.app4mc.validation.core;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Export-Package: org.eclipse.app4mc.validation.annotation,
diff --git a/plugins/org.eclipse.app4mc.validation.help/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.validation.help/META-INF/MANIFEST.MF
index 142175f..f66b48f 100644
--- a/plugins/org.eclipse.app4mc.validation.help/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.validation.help/META-INF/MANIFEST.MF
@@ -2,6 +2,6 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Validation Help
 Bundle-SymbolicName: org.eclipse.app4mc.validation.help;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Require-Bundle: org.eclipse.help
diff --git a/plugins/org.eclipse.app4mc.validation.help/pom.xml b/plugins/org.eclipse.app4mc.validation.help/pom.xml
index 063785a..2ba181b 100644
--- a/plugins/org.eclipse.app4mc.validation.help/pom.xml
+++ b/plugins/org.eclipse.app4mc.validation.help/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.validation.help</artifactId>
diff --git a/plugins/org.eclipse.app4mc.validation.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.validation.ui/META-INF/MANIFEST.MF
index 4af907a..d251237 100644
--- a/plugins/org.eclipse.app4mc.validation.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.validation.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Validation UI
 Bundle-SymbolicName: org.eclipse.app4mc.validation.ui;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Automatic-Module-Name: org.eclipse.app4mc.validation.ui
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse APP4MC
diff --git a/plugins/org.eclipse.app4mc.workflow.examples.installer/META-INF/MANIFEST.MF b/plugins/org.eclipse.app4mc.workflow.examples.installer/META-INF/MANIFEST.MF
index 9d52345..e08e127 100644
--- a/plugins/org.eclipse.app4mc.workflow.examples.installer/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.app4mc.workflow.examples.installer/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Workflow Examples Installer
 Bundle-SymbolicName: org.eclipse.app4mc.workflow.examples.installer;singleton:=true
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-Localization: plugin
 Require-Bundle: org.eclipse.emf.common.ui;bundle-version="2.10.1"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
diff --git a/plugins/org.jaxen/.classpath b/plugins/org.jaxen/.classpath
deleted file mode 100644
index 5eb3359..0000000
--- a/plugins/org.jaxen/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry exported="true" kind="lib" path="lib/jaxen-1.1.6.jar" sourcepath="lib-src/jaxen-1.1.6-sources.zip"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.jaxen/.gitignore b/plugins/org.jaxen/.gitignore
deleted file mode 100644
index 17c72a2..0000000
--- a/plugins/org.jaxen/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/
-/target
\ No newline at end of file
diff --git a/plugins/org.jaxen/.project b/plugins/org.jaxen/.project
deleted file mode 100644
index 3b33919..0000000
--- a/plugins/org.jaxen/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.jaxen</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.jaxen/.settings/org.eclipse.jdt.core.prefs b/plugins/org.jaxen/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0c68a61..0000000
--- a/plugins/org.jaxen/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/org.jaxen/META-INF/MANIFEST.MF b/plugins/org.jaxen/META-INF/MANIFEST.MF
deleted file mode 100644
index fd36227..0000000
--- a/plugins/org.jaxen/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,25 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Jaxen
-Bundle-SymbolicName: org.jaxen
-Bundle-Version: 1.1.6.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.jaxen,
- org.jaxen.dom,
- org.jaxen.dom4j,
- org.jaxen.expr,
- org.jaxen.expr.iter,
- org.jaxen.function,
- org.jaxen.function.ext,
- org.jaxen.function.xslt,
- org.jaxen.javabean,
- org.jaxen.jdom,
- org.jaxen.pattern,
- org.jaxen.saxpath,
- org.jaxen.saxpath.base,
- org.jaxen.saxpath.helpers,
- org.jaxen.util,
- org.jaxen.xom,
- org.w3c.dom
-Bundle-ClassPath: lib/jaxen-1.1.6.jar
-Automatic-Module-Name: org.jaxen
diff --git a/plugins/org.jaxen/build.properties b/plugins/org.jaxen/build.properties
deleted file mode 100644
index 1f7f1f7..0000000
--- a/plugins/org.jaxen/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-bin.includes = META-INF/,\
-               license/,\
-               lib/
-src.includes = lib/,\
-               license/
-               
\ No newline at end of file
diff --git a/plugins/org.jaxen/lib-src/jaxen-1.1.6-sources.zip b/plugins/org.jaxen/lib-src/jaxen-1.1.6-sources.zip
deleted file mode 100644
index 5cad23f..0000000
--- a/plugins/org.jaxen/lib-src/jaxen-1.1.6-sources.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.jaxen/lib-src/readme.txt b/plugins/org.jaxen/lib-src/readme.txt
deleted file mode 100644
index c74c876..0000000
--- a/plugins/org.jaxen/lib-src/readme.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-source downloaded from : https://github.com/codehaus/jaxen.git
-Tag: tags/V_1_1_6_Final
-
-Sources only contain the main classes.
-
-Not included:
- - test
- - samples
- 
\ No newline at end of file
diff --git a/plugins/org.jaxen/lib/jaxen-1.1.6.jar b/plugins/org.jaxen/lib/jaxen-1.1.6.jar
deleted file mode 100644
index 52f47a4..0000000
--- a/plugins/org.jaxen/lib/jaxen-1.1.6.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.jaxen/license/jaxen-1.1.6.LICENSE.txt b/plugins/org.jaxen/license/jaxen-1.1.6.LICENSE.txt
deleted file mode 100644
index 815a72b..0000000
--- a/plugins/org.jaxen/license/jaxen-1.1.6.LICENSE.txt
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- $Id: LICENSE.txt 1128 2006-02-05 21:49:04Z elharo $
-
- Copyright 2003-2006 The Werken Company. All Rights Reserved.
- 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are
- met:
-
-  * Redistributions of source code must retain the above copyright
-    notice, this list of conditions and the following disclaimer.
-
-  * Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions and the following disclaimer in the
-    documentation and/or other materials provided with the distribution.
-
-  * Neither the name of the Jaxen Project nor the names of its
-    contributors may be used to endorse or promote products derived 
-    from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
- */
diff --git a/plugins/org.jaxen/license/readme.txt b/plugins/org.jaxen/license/readme.txt
deleted file mode 100644
index 380ecb7..0000000
--- a/plugins/org.jaxen/license/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Jaxen 1-1-6 is under : BSD 3-clause New or Revised License 
-
-
-Further details can be found @ http://olex.openlogic.com/packages/jaxen/1.1.6
\ No newline at end of file
diff --git a/plugins/org.jaxen/pom.xml b/plugins/org.jaxen/pom.xml
deleted file mode 100644
index d9082da..0000000
--- a/plugins/org.jaxen/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.build</groupId>
-		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.jaxen</artifactId>
-	<packaging>eclipse-plugin</packaging>
-	<version>1.1.6-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.jdom2/.classpath b/plugins/org.jdom2/.classpath
deleted file mode 100644
index 52cead0..0000000
--- a/plugins/org.jdom2/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry exported="true" kind="lib" path="libs/jdom-2.0.6.jar" sourcepath="libs-src/jdom-2.0.6-sources.zip"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/plugins/org.jdom2/.gitignore b/plugins/org.jdom2/.gitignore
deleted file mode 100644
index 09e3bc9..0000000
--- a/plugins/org.jdom2/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/bin/
-/target/
diff --git a/plugins/org.jdom2/.project b/plugins/org.jdom2/.project
deleted file mode 100644
index f389b8e..0000000
--- a/plugins/org.jdom2/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.jdom2</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/plugins/org.jdom2/.settings/org.eclipse.jdt.core.prefs b/plugins/org.jdom2/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0c68a61..0000000
--- a/plugins/org.jdom2/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,7 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/plugins/org.jdom2/META-INF/MANIFEST.MF b/plugins/org.jdom2/META-INF/MANIFEST.MF
deleted file mode 100644
index 91a62ab..0000000
--- a/plugins/org.jdom2/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Jdom2
-Bundle-SymbolicName: org.jdom2
-Bundle-Version: 2.0.6.qualifier
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Export-Package: org.jdom2,
- org.jdom2.adapters,
- org.jdom2.filter,
- org.jdom2.input,
- org.jdom2.input.sax,
- org.jdom2.input.stax,
- org.jdom2.internal,
- org.jdom2.located,
- org.jdom2.output,
- org.jdom2.output.support,
- org.jdom2.transform,
- org.jdom2.util,
- org.jdom2.xpath,
- org.jdom2.xpath.jaxen,
- org.jdom2.xpath.util
-Bundle-ClassPath: libs/jdom-2.0.6.jar
-Require-Bundle: org.apache.xml.serializer;bundle-version="2.7.1",
- org.apache.xerces;bundle-version="2.9.0",
- org.jaxen;bundle-version="1.1.6",
- org.apache.xalan;bundle-version="2.7.1"
-Automatic-Module-Name: org.jdom2
diff --git a/plugins/org.jdom2/build.properties b/plugins/org.jdom2/build.properties
deleted file mode 100644
index b67f02c..0000000
--- a/plugins/org.jdom2/build.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-bin.includes = META-INF/,\
-               license/,\
-               libs/
-src.includes = libs/,\
-               license/
diff --git a/plugins/org.jdom2/libs-src/jdom-2.0.6-sources.zip b/plugins/org.jdom2/libs-src/jdom-2.0.6-sources.zip
deleted file mode 100644
index daed6ac..0000000
--- a/plugins/org.jdom2/libs-src/jdom-2.0.6-sources.zip
+++ /dev/null
Binary files differ
diff --git a/plugins/org.jdom2/libs-src/readme.txt b/plugins/org.jdom2/libs-src/readme.txt
deleted file mode 100644
index 2ac9278..0000000
--- a/plugins/org.jdom2/libs-src/readme.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Downloaded from : http://www.jdom.org/dist/binary/jdom-2.0.6.zip
-
-
-Removed:
- - contrib
- - test
- 
\ No newline at end of file
diff --git a/plugins/org.jdom2/libs/jdom-2.0.6.jar b/plugins/org.jdom2/libs/jdom-2.0.6.jar
deleted file mode 100644
index 2850ca1..0000000
--- a/plugins/org.jdom2/libs/jdom-2.0.6.jar
+++ /dev/null
Binary files differ
diff --git a/plugins/org.jdom2/license/LICENSE.txt b/plugins/org.jdom2/license/LICENSE.txt
deleted file mode 100644
index c18f7bb..0000000
--- a/plugins/org.jdom2/license/LICENSE.txt
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-- 
-
- Copyright (C) 2000-2012 Jason Hunter & Brett McLaughlin.
- All rights reserved.
- 
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions
- are met:
- 
- 1. Redistributions of source code must retain the above copyright
-    notice, this list of conditions, and the following disclaimer.
- 
- 2. Redistributions in binary form must reproduce the above copyright
-    notice, this list of conditions, and the disclaimer that follows 
-    these conditions in the documentation and/or other materials 
-    provided with the distribution.
-
- 3. The name "JDOM" must not be used to endorse or promote products
-    derived from this software without prior written permission.  For
-    written permission, please contact <request_AT_jdom_DOT_org>.
- 
- 4. Products derived from this software may not be called "JDOM", nor
-    may "JDOM" appear in their name, without prior written permission
-    from the JDOM Project Management <request_AT_jdom_DOT_org>.
- 
- In addition, we request (but do not require) that you include in the 
- end-user documentation provided with the redistribution and/or in the 
- software itself an acknowledgement equivalent to the following:
-     "This product includes software developed by the
-      JDOM Project (http://www.jdom.org/)."
- Alternatively, the acknowledgment may be graphical using the logos 
- available at http://www.jdom.org/images/logos.
-
- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED.  IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
- CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- SUCH DAMAGE.
-
- This software consists of voluntary contributions made by many 
- individuals on behalf of the JDOM Project and was originally 
- created by Jason Hunter <jhunter_AT_jdom_DOT_org> and
- Brett McLaughlin <brett_AT_jdom_DOT_org>.  For more information
- on the JDOM Project, please see <http://www.jdom.org/>. 
-
- */
-
diff --git a/plugins/org.jdom2/license/README.txt b/plugins/org.jdom2/license/README.txt
deleted file mode 100644
index a29f4d5..0000000
--- a/plugins/org.jdom2/license/README.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-Introduction to the JDOM project
-================================
-
-Please see the JDOM web site at http://jdom.org/
-and GitHub repository at https://github.com/hunterhacker/jdom/
-
-Quick-Start for JDOM
-=====================
-See the github wiki for a Primer on using JDOM:
-https://github.com/hunterhacker/jdom/wiki/JDOM2-A-Primer
-
-Also see the web site http://jdom.org/downloads/docs.html.  It has links to
-numerous articles and books covering JDOM.
-
-
-Installing the build tools
-==========================
-
-The JDOM build system is based on Apache Ant.  Ant is a little but very
-handy tool that uses a build file written in XML (build.xml) as building
-instructions. For more information refer to "http://ant.apache.org".
-
-The only thing that you have to make sure of is that the "JAVA_HOME"
-environment property is set to match the top level directory containing the
-JVM you want to use. For example:
-
-C:\> set JAVA_HOME=C:\jdk1.6
-
-or on Mac:
-
-% setenv JAVA_HOME /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
-  (csh)
-> JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home; export JAVA_HOME
-  (ksh, bash)
-
-or on Unix:
-
-% setenv JAVA_HOME /usr/local/java
-  (csh)
-> JAVA_HOME=/usr/java; export JAVA_HOME
-  (ksh, bash)
-
-That's it!
-
-
-Building instructions
-=====================
-
-If you do not have the full source code it can be cloned from GitHub. The JDOM
-project at https://github.com/hunterhacker/jdom has the instructions and source
-URL to make the git clone easy.
-
-You will need to have Apache Ant 1.8.2 or later, and you will need Java JDK 1.6
-or later.
-
-Ok, let's build the code. First, make sure your current working directory is
-where the build.xml file is located. Then run "ant".
-
-If everything is right and all the required packages are visible, this action
-will generate a file called "jdom-2.x-20yy.mm.dd.HH.MM.zip" in the
-"./build/package" directory. This is the same 'zip' file that is distributed
-as the official JDOM distribution.
-
-The name of the zip file (and the jar names inside the zip) is controlled by
-the two ant properties 'name' and 'version'. The package is called
-"${name}-${version}.zip". The 'official' JDOM Build process is done by
-creating a file 'build.properties' in the 'top' folder of the JDOM code, and
-it contains the single line (or whatever the appropriate version is):
-
-version=2.0.0
-
-If your favourite Java IDE happens to be Eclipse, you can run the 'eclipse' ant
-target, and that will configure your Eclipse project to have all the right
-'source' folders, and 'Referenced Libraries'. After running the 'ant eclipse'
-target, you should refresh your Eclipse project, and you should have a project
-with no errors or warnings.
-
-
-Build targets
-=============
-
-The build system is not only responsible for compiling JDOM into a jar file,
-but is also responsible for creating the HTML documentation in the form of
-javadocs.
-
-These are the meaningful targets for this build file:
-
- - package [default] -> generates ./build/package/jdom*.zip
- - compile -> compiles the source code
- - javadoc -> generates the API documentation in ./build/javadocs
- - junit -> runs the JUnit tests
- - coverage -> generates test coverage metrics
- - eclipse -> generates an Eclipse project (source folders, jars, etc)
- - clean -> restores the distribution to its original and clean state
- - maven -> generates the package, and makes a 'bundle' for maven-central
-
-To learn the details of what each target does, read the build.xml file.  It is
-quite understandable.
-
-
-Bug Reports
-===========
-
-Bug reports go to the jdom-interest list at jdom.org.  But *BEFORE YOU POST*
-make sure you've tested against the LATEST code available from GitHub (or the
-daily snapshot).  Odds are good your bug has already been fixed.  If it hasn't
-been fixed in the latest version, then when posting *BE SURE TO SAY* which
-code version you tested against.  For example, "GitHub from October 3rd".  Also
-be sure to include enough information to reproduce the bug and full exception
-stack traces.  You might also want to read the FAQ at http://jdom.org to find
-out if your problem is not really a bug and just a common misunderstanding
-about how XML or JDOM works.
-
-
-Searching for Information
-=========================
-
-The JDOM mailing lists are archived and easily searched at
-http://jdom.markmail.org.
diff --git a/plugins/org.jdom2/pom.xml b/plugins/org.jdom2/pom.xml
deleted file mode 100644
index 007f509..0000000
--- a/plugins/org.jdom2/pom.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-
-	<modelVersion>4.0.0</modelVersion>
-
-	<parent>
-		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
-		<groupId>org.eclipse.app4mc.build</groupId>
-		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
-	</parent>
-
-	<artifactId>org.jdom2</artifactId>
-	<packaging>eclipse-plugin</packaging>
-	<version>2.0.6-SNAPSHOT</version>
-
-</project>
diff --git a/plugins/org.jdom2/readme.txt b/plugins/org.jdom2/readme.txt
deleted file mode 100644
index 0b68180..0000000
--- a/plugins/org.jdom2/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Downloaded from : http://www.jdom.org/downloads/
\ No newline at end of file
diff --git a/plugins/org.jenetics/pom.xml b/plugins/org.jenetics/pom.xml
index f567f3b..912f21d 100644
--- a/plugins/org.jenetics/pom.xml
+++ b/plugins/org.jenetics/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.jenetics</artifactId>
diff --git a/plugins/org.jgrapht/META-INF/MANIFEST.MF b/plugins/org.jgrapht/META-INF/MANIFEST.MF
index 93feaaa..9c5178e 100644
--- a/plugins/org.jgrapht/META-INF/MANIFEST.MF
+++ b/plugins/org.jgrapht/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: JGraphT
 Bundle-SymbolicName: org.jgrapht
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Bundle-ClassPath: libs/jgrapht-core-0.9.0.jar
 Export-Package: org.jgrapht,
diff --git a/plugins/org.jgrapht/pom.xml b/plugins/org.jgrapht/pom.xml
index 25a24d4..d7ef9b8 100644
--- a/plugins/org.jgrapht/pom.xml
+++ b/plugins/org.jgrapht/pom.xml
@@ -8,11 +8,11 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.jgrapht</artifactId>
 	<packaging>eclipse-plugin</packaging>
-	<version>0.9.6-SNAPSHOT</version>
+	<version>0.9.7-SNAPSHOT</version>
 
 </project>
diff --git a/plugins/org.ojalgo/pom.xml b/plugins/org.ojalgo/pom.xml
index 26b1f11..ce03860 100644
--- a/plugins/org.ojalgo/pom.xml
+++ b/plugins/org.ojalgo/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.ojalgo</artifactId>
diff --git a/plugins/org.sqlite.jdbc/pom.xml b/plugins/org.sqlite.jdbc/pom.xml
index 647c87d..ec92dc2 100644
--- a/plugins/org.sqlite.jdbc/pom.xml
+++ b/plugins/org.sqlite.jdbc/pom.xml
@@ -7,7 +7,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.sqlite.jdbc</artifactId>
diff --git a/plugins/pom.xml b/plugins/pom.xml
index df148d7..8eaee35 100644
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.plugins</artifactId>
diff --git a/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/META-INF/MANIFEST.MF
index 89f0e4e..2992e9d 100644
--- a/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Sirius Editors Tests
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.editors.sirius.design.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.amalthea.editors.sirius.design
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-Vendor: Eclipse APP4MC
diff --git a/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskServiceTest.java b/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskServiceTest.java
index 55b5489..24b0c5e 100644
--- a/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskServiceTest.java
+++ b/tests/org.eclipse.app4mc.amalthea.editors.sirius.design.tests/src/org/eclipse/app4mc/amalthea/editors/sirius/design/services/TaskServiceTest.java
@@ -23,7 +23,7 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
 import org.eclipse.app4mc.amalthea.model.InterProcessTrigger;
 import org.eclipse.app4mc.amalthea.model.Label;
@@ -127,49 +127,49 @@
 	}
 
 	@Test
-	public void testGetRunnablesFromTaskEmptyCallGraph() {
+	public void testGetRunnablesFromTaskEmptyActivityGraph() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		List<Runnable> result = this.taskS.getRunnablesFromTask(task);
 		assertThat(result, notNullValue());
 		assertThat(result.isEmpty(), is(true));
 	}
 
 	@Test
-	public void testGetRunnablesFromTaskCallGraphOther() {
+	public void testGetRunnablesFromTaskActivityGraphOther() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 
 		InterProcessTrigger ipt = AmaltheaFactory.eINSTANCE.createInterProcessTrigger();
-		cg.getItems().add(ipt);
+		ag.getItems().add(ipt);
 		List<Runnable> result = this.taskS.getRunnablesFromTask(task);
 		assertThat(result, notNullValue());
 		assertThat(result.isEmpty(), is(true));
 	}
 
 	@Test
-	public void testGetRunnablesFromTaskCallGraphEmptyRunnableCall() {
+	public void testGetRunnablesFromTaskActivityGraphEmptyRunnableCall() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		List<Runnable> result = this.taskS.getRunnablesFromTask(task);
 		assertThat(result, notNullValue());
 		assertThat(result.isEmpty(), is(true));
 	}
 
 	@Test
-	public void testGetRunnablesFromTaskCallGraphRunnableCall() {
+	public void testGetRunnablesFromTaskActivityGraphRunnableCall() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		Runnable runn = AmaltheaFactory.eINSTANCE.createRunnable();
 		trc.setRunnable(runn);
 		List<Runnable> result = this.taskS.getRunnablesFromTask(task);
@@ -197,11 +197,11 @@
 	@Test
 	public void testGetAccessedLabelsOfTaskEmptyRunnable() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		Runnable runn = AmaltheaFactory.eINSTANCE.createRunnable();
 		trc.setRunnable(runn);
 		List<Label> result = this.taskS.getAccessedLabelsOfTask(task);
@@ -218,11 +218,11 @@
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
 		sw.getTasks().add(task);
 		
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		
 		ExecutionNeed execNeed = InstructionsUtil.createExecutionNeedConstant(25);
 		run.getRunnableItems().add(execNeed);
@@ -235,11 +235,11 @@
 	@Test
 	public void testGetAccessedLabelsOfTaskEmptyRunnableEmptyLabelAccess() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		Runnable runn = AmaltheaFactory.eINSTANCE.createRunnable();
 		LabelAccess la = AmaltheaFactory.eINSTANCE.createLabelAccess();
 		runn.getRunnableItems().add(la);
@@ -252,11 +252,11 @@
 	@Test
 	public void testGetAccessedLabelsOfTaskEmptyRunnableLabelAccess() {
 		Task task = AmaltheaFactory.eINSTANCE.createTask();
-		CallGraph cg = AmaltheaFactory.eINSTANCE.createCallGraph();
-		task.setCallGraph(cg);
+		ActivityGraph ag = AmaltheaFactory.eINSTANCE.createActivityGraph();
+		task.setActivityGraph(ag);
 		
 		RunnableCall trc = AmaltheaFactory.eINSTANCE.createRunnableCall();
-		cg.getItems().add(trc);
+		ag.getItems().add(trc);
 		Runnable runn = AmaltheaFactory.eINSTANCE.createRunnable();
 		LabelAccess la = AmaltheaFactory.eINSTANCE.createLabelAccess();
 		runn.getRunnableItems().add(la);
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.amalthea.model.tests/META-INF/MANIFEST.MF
index 003b78e..32e2a0f 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Model - Tests
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.model.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.amalthea.model
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.12.0",
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/AllTests.java b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/AllTests.java
index 5702ef4..9ac4252 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/AllTests.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/AllTests.java
@@ -29,10 +29,11 @@
 	DeviationsTest.class,
 	MetamodelStructureTest.class,
 	TimeComparisonTest.class,
-
+	NameTest.class,
+	
+	AmaltheaIndexTest.class,
 	HardwareUtilsTest.class,
 	RuntimeUtilsTest.class,
-	AmaltheaIndexTest.class,
 	ConstraintsUtilsTest.class,
 	SoftwareUtilsTest.class
 })
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/NameTest.java b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/NameTest.java
new file mode 100644
index 0000000..6feb502
--- /dev/null
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/tests/NameTest.java
@@ -0,0 +1,208 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2019-2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.model.tests;
+
+import static org.junit.Assert.assertTrue;
+
+import org.eclipse.app4mc.amalthea.model.AmaltheaExtensions;
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
+import org.eclipse.app4mc.amalthea.model.Component;
+import org.eclipse.app4mc.amalthea.model.ComponentStructure;
+import org.eclipse.app4mc.amalthea.model.ComponentsModel;
+import org.eclipse.app4mc.amalthea.model.Label;
+import org.eclipse.app4mc.amalthea.model.LabelAccess;
+import org.eclipse.app4mc.amalthea.model.Runnable;
+import org.eclipse.app4mc.amalthea.model.RunnableCall;
+import org.eclipse.app4mc.amalthea.model.SWModel;
+import org.eclipse.emf.common.util.BasicEList;
+import org.eclipse.emf.common.util.EList;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+public class NameTest {
+
+	AmaltheaFactory fac = AmaltheaFactory.eINSTANCE;
+
+	@Rule
+	public ExpectedException thrown = ExpectedException.none(); // initially, expect no exception
+
+	@Test
+	public void testArguments1() {
+		thrown.expect(IllegalArgumentException.class);
+		thrown.expectMessage("Argument is null, expected: EList");
+
+		AmaltheaExtensions.toPlainString(null, ".");
+	}
+	
+	@Test
+	public void testArguments2() {
+		thrown.expect(IllegalArgumentException.class);
+		thrown.expectMessage("List argument contains null");
+
+		BasicEList<String> list = new BasicEList<String>();
+		list.add("one");
+		list.add(null);
+		AmaltheaExtensions.toPlainString(list, ".");
+	}
+
+	@Test
+	public void testStringOperationsPlain() {
+		EList<String> segments = new BasicEList<String>();		
+		
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals(""));
+		
+		segments.add("one");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one"));
+		
+		segments.add("two");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one.two"));
+		
+		segments.add("three");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one.two.three"));
+	}
+
+	@Test
+	public void testStringOperationsEncoded() {
+		EList<String> segments = new BasicEList<String>();		
+		
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals(""));
+		
+		segments.add("one");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one"));
+		
+		segments.add("two");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one.two"));
+		
+		segments.add("three");
+//		System.out.println(AmaltheaExtensions.toPlainString(segments));
+		assertTrue("AmaltheaExtensions.toPlainString()", AmaltheaExtensions.toPlainString(segments, ".").equals("one.two.three"));
+	}
+
+	@Test
+	public void testUniqueName() {
+		SWModel swModel = fac.createSWModel();
+		
+		Label lab1 = addLabel(swModel, "Label 1");
+		Runnable run1 = addRunnable(swModel, "Run 1");
+		Runnable run2 = addRunnable(swModel, "Run 2");
+		
+		RunnableCall call = fac.createRunnableCall();
+		call.setRunnable(run2);
+		run1.getRunnableItems().add(call);
+		
+		LabelAccess access = fac.createLabelAccess();
+		access.setData(lab1);
+		run1.getRunnableItems().add(access);
+		
+//		System.out.println(run1.getUniqueName());
+//		System.out.println(lab1.getUniqueName());
+		
+		assertTrue("IReferable getUniqueName()", run1.getUniqueName().equals("Run+1?type=Runnable"));
+		assertTrue("IReferable getUniqueName()", lab1.getUniqueName().equals("Label+1?type=Label"));
+		
+		ComponentsModel compModel = fac.createComponentsModel();
+		ComponentStructure struct1 = fac.createComponentStructure();
+		struct1.setName("S1");
+//		struct1.setNamespaceSegment(true);
+		compModel.getStructures().add(struct1);
+		
+		ComponentStructure struct2 = addSubStructure(struct1, "S2", false);
+		ComponentStructure struct3 = addSubStructure(struct2, "S3", true);
+		
+		Component comp = fac.createComponent();
+		comp.setName("CCC");
+//TODO		struct3.getComponents().add(comp);
+		
+//		System.out.println(comp.getUniqueName());
+		
+//		assertTrue("IReferable getUniqueName()", comp.getUniqueName().equals("CCC?type=Component"));
+	}
+
+	private ComponentStructure addSubStructure(ComponentStructure parent, String name, boolean prefix) {
+		ComponentStructure struct = fac.createComponentStructure();
+		struct.setName(name);
+//		struct.setNamespaceSegment(prefix);
+		parent.getSubStructures().add(struct);
+		return struct;
+	}
+
+	private Label addLabel(SWModel model, String name) {
+		Label lab = fac.createLabel();
+		model.getLabels().add(lab);
+		lab.setName(name);
+		return lab;
+	}
+
+	private Runnable addRunnable(SWModel model, String name) {
+		Runnable run = fac.createRunnable();
+		model.getRunnables().add(run);
+		run.setName(name);
+		return run;
+	}
+
+	@Test
+	public void testPath() {
+		ComponentsModel model = fac.createComponentsModel();
+		
+		ComponentStructure cs1 = addStructure(model,"Top", true);
+		ComponentStructure cs2 = addStructure(cs1,"High", false);
+		ComponentStructure cs3 = addStructure(cs2,"", true);
+		ComponentStructure cs4 = addStructure(cs3,"Medium", true);
+		ComponentStructure cs5 = addStructure(cs4,"Bottom", true);
+		
+//		System.out.println(cs1.getNamespaceSegments());
+//		System.out.println(cs1.getNamespace());
+//		System.out.println(cs2.getNamespaceSegments());
+//		System.out.println(cs2.getNamespace());
+//		System.out.println(cs3.getNamespaceSegments());
+//		System.out.println(cs3.getNamespace());
+//		System.out.println(cs4.getNamespaceSegments());
+//		System.out.println(cs4.getNamespace());
+//		System.out.println(cs5.getNamespaceSegments());
+//		System.out.println(cs5.getNamespace());
+		
+//		assertTrue("INamed getNamePath()", cs1.getNamespace().equals(""));
+//		assertTrue("INamed getNamePath()", cs2.getNamespace().equals("Top"));
+//		assertTrue("INamed getNamePath()", cs3.getNamespace().equals("Top"));
+//		assertTrue("INamed getNamePath()", cs4.getNamespace().equals("Top."));
+//		assertTrue("INamed getNamePath()", cs5.getNamespace().equals("Top..Medium"));
+	}
+
+	private ComponentStructure addStructure(ComponentsModel model, String name, boolean isPrefix) {
+		ComponentStructure cs = fac.createComponentStructure();
+		model.getStructures().add(cs);
+		cs.setName(name);
+//		cs.setNamespaceSegment(isPrefix);
+		return cs;
+	}
+
+	private ComponentStructure addStructure(ComponentStructure struct, String name, boolean isPrefix) {
+		ComponentStructure cs = fac.createComponentStructure();
+		struct.getSubStructures().add(cs);
+		cs.setName(name);
+//		cs.setNamespaceSegment(isPrefix);
+		return cs;
+	}
+
+}
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/DeploymentUtilsTest.java b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/DeploymentUtilsTest.java
new file mode 100644
index 0000000..a054c81
--- /dev/null
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/DeploymentUtilsTest.java
@@ -0,0 +1,231 @@
+package org.eclipse.app4mc.amalthea.model.util.tests;
+
+import static org.junit.Assert.assertNotNull;
+
+import java.util.Set;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
+import org.eclipse.app4mc.amalthea.model.HWModel;
+import org.eclipse.app4mc.amalthea.model.ISR;
+import org.eclipse.app4mc.amalthea.model.MappingModel;
+import org.eclipse.app4mc.amalthea.model.OSModel;
+import org.eclipse.app4mc.amalthea.model.Process;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
+import org.eclipse.app4mc.amalthea.model.SWModel;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.TaskAllocation;
+import org.eclipse.app4mc.amalthea.model.util.DeploymentUtil;
+import org.eclipse.app4mc.amalthea.models.DeploymentModels;
+import org.junit.Before;
+import org.junit.Test;
+
+public class DeploymentUtilsTest {
+
+	Amalthea amaltheaModel;
+	Task t1 = null;
+	Task t2 = null;
+	Task t3 = null;
+	Task t4 = null;
+	Task t5 = null;
+	Task t6 = null;
+	Task t7 = null;
+	ISR isr1 = null;
+	ISR isr2 = null;
+	ISR isr3 = null;
+	ProcessingUnit core1 = null;
+	ProcessingUnit core2 = null;
+	ProcessingUnit core3 = null;
+	TaskAllocation taT1 = null;
+	TaskAllocation taT2 = null;
+	TaskAllocation taT3 = null;
+	TaskAllocation taT4 = null;
+	TaskAllocation taT5 = null;
+	TaskAllocation taT6 = null;
+	TaskAllocation taT7 = null;
+	
+	@Before
+	public void initalizeModel() {
+		amaltheaModel = DeploymentModels.createModel1();
+		
+		Set<ProcessingUnit> coreCollector = AmaltheaIndex.getElements(amaltheaModel.getHwModel(), "core1", ProcessingUnit.class);
+		assertNotNull("Core1 not found ", coreCollector.iterator().next());
+		core1 = coreCollector.iterator().next();
+		
+		coreCollector = AmaltheaIndex.getElements(amaltheaModel.getHwModel(), "core2", ProcessingUnit.class);
+		assertNotNull("Core2 not found ", coreCollector.iterator().next());
+		core2 = coreCollector.iterator().next();
+		
+		coreCollector = AmaltheaIndex.getElements(amaltheaModel.getHwModel(), "core3", ProcessingUnit.class);
+		assertNotNull("Core3 not found ", coreCollector.iterator().next());
+		core3 = coreCollector.iterator().next();
+		
+		Set<Task> taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t1", Task.class);
+		t1 = taskCollector.iterator().next();
+		assertNotNull("T1 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t2", Task.class);
+		t2 = taskCollector.iterator().next();
+		assertNotNull("T2 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t3", Task.class);
+		t3 = taskCollector.iterator().next();
+		assertNotNull("T3 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t4", Task.class);
+		t4 = taskCollector.iterator().next();
+		assertNotNull("T4 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t5", Task.class);
+		t5 = taskCollector.iterator().next();
+		assertNotNull("T5 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t6", Task.class);
+		t6 = taskCollector.iterator().next();
+		assertNotNull("T6 not found", taskCollector.iterator().next());
+		
+		taskCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "t7", Task.class);
+		t7 = taskCollector.iterator().next();
+		assertNotNull("T7 not found", taskCollector.iterator().next());
+		
+		Set<ISR> isrCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "isr1", ISR.class);
+		isr1 = isrCollector.iterator().next();
+		assertNotNull("ISR1 not found", isrCollector.iterator().next());
+		
+		isrCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "isr2", ISR.class);
+		isr2 = isrCollector.iterator().next();
+		assertNotNull("ISR2 not found", isrCollector.iterator().next());
+		
+		isrCollector = AmaltheaIndex.getElements(amaltheaModel.getSwModel(), "isr3", ISR.class);
+		isr3 = isrCollector.iterator().next();
+		assertNotNull("ISR3 not found", isrCollector.iterator().next());
+		
+	}
+	
+	@Test
+	public void testModelExistance() {
+
+		SWModel swModel = amaltheaModel.getSwModel();
+		assertNotNull("SW model is not loaded", swModel);
+		
+		HWModel hwModel = amaltheaModel.getHwModel();
+		assertNotNull("HW model is not loaded", hwModel);
+		
+		OSModel osModel = amaltheaModel.getOsModel();
+		assertNotNull("OS model is not loaded", osModel);
+		
+		MappingModel MappingModel = amaltheaModel.getMappingModel();
+		assertNotNull("Mapping model is not loaded", MappingModel);
+
+	}
+	
+	@Test
+	public void testTaskMapping() {
+
+		Set<Task> tmp = DeploymentUtil.getTasksMappedToCore(core1, amaltheaModel);
+		assert(tmp.size() == 2);
+		assert(tmp.contains(t1));
+		assert(tmp.contains(t3));
+		
+		tmp = DeploymentUtil.getTasksMappedToCore(core2, amaltheaModel);
+		assert(tmp.size() == 3);
+		assert(tmp.contains(t2));
+//		assert(tmp.contains(t4));
+		assert(tmp.contains(t5));
+		assert(tmp.contains(t6));
+		
+		tmp = DeploymentUtil.getTasksMappedToCore(core3, amaltheaModel);
+		assertNotNull("Empty mapping list is null", tmp);
+		assert(tmp.size()==0);
+	}
+	
+	
+	@Test
+	public void testProcessesMappedToCore() {
+		Set<Process> tmp = DeploymentUtil.getProcessesMappedToCore(core1, amaltheaModel);
+		assert(tmp.size() == 4);
+		assert(tmp.contains(t1));
+		assert(tmp.contains(t3));
+		assert(tmp.contains(isr1));
+		assert(tmp.contains(isr3));
+		
+		tmp = DeploymentUtil.getProcessesMappedToCore(core2, amaltheaModel);
+		assert(tmp.size() == 4);
+		assert(tmp.contains(t2));
+//		assert(tmp.contains(t4));
+		assert(tmp.contains(t5));
+		assert(tmp.contains(t6));
+		assert(tmp.contains(isr2));
+		
+		tmp = DeploymentUtil.getProcessesMappedToCore(core3, amaltheaModel);
+		assertNotNull("Empty mapping list is null", tmp);
+		assert(tmp.size() == 0);
+
+	}
+	
+	@Test
+	public void testISRsMappedToCore() {
+		Set<ISR> tmp = DeploymentUtil.getISRsMappedToCore(core1, amaltheaModel);
+		assert(tmp.size() == 2);
+		assert(tmp.contains(isr1));
+		assert(tmp.contains(isr3));
+		
+		tmp = DeploymentUtil.getISRsMappedToCore(core2, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(isr2));
+		
+		tmp = DeploymentUtil.getISRsMappedToCore(core3, amaltheaModel);
+		assertNotNull("Empty mapping list is null", tmp);
+		assert(tmp.size() == 0);
+
+	}
+	
+	
+	@Test
+	public void testAssignedCoreForProcess() {
+		Set<ProcessingUnit> tmp = DeploymentUtil.getAssignedCoreForProcess(t1, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core1));
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t3, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core1));
+		
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(isr1, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core1));
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(isr3, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core1));
+
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t2, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core2));
+
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t4, amaltheaModel);
+		assertNotNull("Nullpointer instead of empty list", tmp);
+		assert(tmp.size() == 0);
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t5, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core2));
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t6, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core2));
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(isr2, amaltheaModel);
+		assert(tmp.size() == 1);
+		assert(tmp.contains(core2));
+		
+		tmp = DeploymentUtil.getAssignedCoreForProcess(t7, amaltheaModel);
+		assertNotNull("Nullpointer instead of empty list", tmp);
+		assert(tmp.size() == 0);
+	}
+}
+	
+	
+	
+
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/RuntimeUtilsTest.java b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/RuntimeUtilsTest.java
index 9e8e282..8f0e3cd 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/RuntimeUtilsTest.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/RuntimeUtilsTest.java
@@ -23,7 +23,7 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.DiscreteValueConstant;
 import org.eclipse.app4mc.amalthea.model.DiscreteValueGaussDistribution;
 import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
@@ -110,7 +110,7 @@
 		executionNeedsR2 = new ArrayList<ExecutionNeed>();
 		executionNeedsR3 = new ArrayList<ExecutionNeed>();
 		
-		for (CallGraphItem rItem : r1.getCallGraph().getItems()) {
+		for (ActivityGraphItem rItem : r1.getActivityGraph().getItems()) {
 			if (rItem instanceof ExecutionNeed) {
 				executionNeedsR1.add((ExecutionNeed)rItem);
 				
@@ -132,7 +132,7 @@
 				}	
 			}
 		}
-		for (CallGraphItem rItem : r2.getCallGraph().getItems()) {
+		for (ActivityGraphItem rItem : r2.getActivityGraph().getItems()) {
 			if (rItem instanceof ExecutionNeed) {
 				executionNeedsR2.add((ExecutionNeed)rItem);
 				
@@ -146,7 +146,7 @@
 				}	
 			}
 		}
-		for (CallGraphItem rItem : r3.getCallGraph().getItems()) {
+		for (ActivityGraphItem rItem : r3.getActivityGraph().getItems()) {
 			if (rItem instanceof ExecutionNeed) {
 				executionNeedsR3.add((ExecutionNeed)rItem);
 				EMap<String, IDiscreteValueDeviation> needs = ((ExecutionNeed)rItem).getNeeds();//.get("Instructions");
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.xtend b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.xtend
index 4a744eb..046976a 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.xtend
@@ -40,20 +40,20 @@
 	}
 	
 	@Test
-	def void testCollectCallGraphItems() {
-		val list1 = SoftwareUtil.collectCallGraphItems(run1.callGraph);
+	def void testCollectActivityGraphItems() {
+		val list1 = SoftwareUtil.collectActivityGraphItems(run1.activityGraph);
 		assertEquals(
 			"collectRunnableItems: 6 items expected", 6, list1.size);
 		
-		val list2 = SoftwareUtil.collectCallGraphItems(run1.callGraph, null, Ticks);
+		val list2 = SoftwareUtil.collectActivityGraphItems(run1.activityGraph, null, Ticks);
 		assertEquals(
 			"collectRunnableItems: 2 items (ticks) expected", 2, list2.size);
 		
-		val list3 = SoftwareUtil.collectCallGraphItems(run1.callGraph, null, LabelAccess, [i | i.access === LabelAccessEnum::READ]);
+		val list3 = SoftwareUtil.collectActivityGraphItems(run1.activityGraph, null, LabelAccess, [i | i.access === LabelAccessEnum::READ]);
 		assertEquals(
 			"collectRunnableItems: 2 items (label accesses) expected", 2, list3.size);
 		
-		val list4 = SoftwareUtil.collectCallGraphItems(run4.callGraph);
+		val list4 = SoftwareUtil.collectActivityGraphItems(run4.activityGraph);
 		assertEquals(
 			"collectRunnableItems: 1 item expected", 1, list4.size);
 	}
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/DeploymentModels.xtend b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/DeploymentModels.xtend
new file mode 100644
index 0000000..0ddbe65
--- /dev/null
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/DeploymentModels.xtend
@@ -0,0 +1,209 @@
+/**
+ * *******************************************************************************
+ * Copyright (c) 2018-2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ * *******************************************************************************
+ */
+
+package org.eclipse.app4mc.amalthea.models
+
+import org.eclipse.app4mc.amalthea.model.ISR
+import org.eclipse.app4mc.amalthea.model.InterruptController
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit
+import org.eclipse.app4mc.amalthea.model.StructureType
+import org.eclipse.app4mc.amalthea.model.Task
+import org.eclipse.app4mc.amalthea.model.TaskScheduler
+import org.eclipse.app4mc.amalthea.model.builder.AmaltheaBuilder
+import org.eclipse.app4mc.amalthea.model.builder.HardwareBuilder
+import org.eclipse.app4mc.amalthea.model.builder.MappingBuilder
+import org.eclipse.app4mc.amalthea.model.builder.OperatingSystemBuilder
+import org.eclipse.app4mc.amalthea.model.builder.SoftwareBuilder
+import org.eclipse.app4mc.amalthea.model.io.AmaltheaWriter
+
+class DeploymentModels {
+
+	extension AmaltheaBuilder b1 = new AmaltheaBuilder
+	extension HardwareBuilder b2 = new HardwareBuilder
+	extension SoftwareBuilder b3 = new SoftwareBuilder
+	extension OperatingSystemBuilder b5 = new OperatingSystemBuilder
+	extension MappingBuilder b6 = new MappingBuilder
+
+	def static void main(String[] args) {
+		val model1 = (new DeploymentModels).model1()
+		AmaltheaWriter.writeToFileNamed(model1, "test-data/DeploymentUtilTestModel-gen.amxmi")
+	}
+
+	def static createModel1() {
+		(new DeploymentModels).model1()
+	}
+
+	def model1() {
+		val model = amalthea [
+
+			hardwareModel [
+
+				// ***** Definitions *****
+				definition_ProcessingUnit [
+					name = "Pu1_def"
+				]
+				definition_ProcessingUnit [
+					name = "Pu2_def"
+				]
+
+				// ***** Structures *****
+				structure [
+					name = "SoC"
+					structureType = StructureType::SO_C
+
+					module_ProcessingUnit [name = "core1"]
+					module_ProcessingUnit [name = "core2"]
+					module_ProcessingUnit [name = "core3"]
+				]
+			]
+
+			softwareModel [
+
+				task [name = "t1"]
+				task [name = "t2"]
+				task [name = "t3"]
+				task [name = "t4"]
+				task [name = "t5"]
+				task [name = "t6"]
+				task [name = "t7"]
+				isr [name = "isr1"]
+				isr [name = "isr2"]
+				isr [name = "isr3"]
+			]
+
+			osModel [
+				operatingSystem [
+					name = "Os1"
+					taskScheduler [name = "Scheduler1"]
+					taskScheduler [name = "Scheduler2"]
+					taskScheduler [
+						name = "Scheduler3"
+						parentAssociation [
+							parent = _find(TaskScheduler, "Scheduler2")
+						]
+					]
+					taskScheduler [
+						name = "Scheduler4"
+						parentAssociation [
+							parent = _find(TaskScheduler, "Scheduler3")
+						]
+					]
+					interruptController [
+						name = "controller1"
+					]
+					interruptController [
+						name = "controller2"
+					]
+				]
+
+			]
+
+			mappingModel [
+				schedulerAllocation [
+					scheduler = _find(TaskScheduler, "Scheduler2")
+					responsibility += _find(ProcessingUnit, "core2")
+					executingPU = _find(ProcessingUnit, "core2")
+				]
+				schedulerAllocation [
+					scheduler = _find(TaskScheduler, "Scheduler1")
+					responsibility += _find(ProcessingUnit, "core1")
+					executingPU = _find(ProcessingUnit, "core1")
+				]
+
+				schedulerAllocation [
+					scheduler = _find(TaskScheduler, "Scheduler3")
+					responsibility += _find(ProcessingUnit, "core2")
+					executingPU = _find(ProcessingUnit, "core1")
+				]
+
+				schedulerAllocation [
+					scheduler = _find(TaskScheduler, "Scheduler4")
+					responsibility += _find(ProcessingUnit, "core2")
+					executingPU = _find(ProcessingUnit, "core2")
+				]
+
+				schedulerAllocation [
+					scheduler = _find(TaskScheduler, "Scheduler5")
+				]
+
+				taskAllocation [
+					task = _find(Task, "t1")
+					scheduler = _find(TaskScheduler, "Scheduler1")
+					affinity += _find(ProcessingUnit, "core1")
+				]
+				taskAllocation [
+					task = _find(Task, "t2")
+					scheduler = _find(TaskScheduler, "Scheduler2")
+					affinity += _find(ProcessingUnit, "core2")
+				]
+				taskAllocation [
+					task = _find(Task, "t3")
+					scheduler = _find(TaskScheduler, "Scheduler1")
+					affinity += _find(ProcessingUnit, "core1")
+				]
+
+				taskAllocation [
+					task = _find(Task, "t4")
+					scheduler = _find(TaskScheduler, "Scheduler3")
+					affinity += _find(ProcessingUnit, "core3")
+				]
+				taskAllocation [
+					task = _find(Task, "t5")
+					scheduler = _find(TaskScheduler, "Scheduler4")
+				// affinity += _find(ProcessingUnit, "core1")
+				]
+				taskAllocation [
+					task = _find(Task, "t6")
+					scheduler = _find(TaskScheduler, "Scheduler3")
+				// affinity += _find(ProcessingUnit, "core1")
+				]
+				taskAllocation [
+					task = _find(Task, "t7")
+					scheduler = _find(TaskScheduler, "Scheduler5")
+				]
+
+				isrAllocation [
+					isr = _find(ISR, "isr1")
+					controller = _find(InterruptController, "controller1")
+				]
+				schedulerAllocation [
+					scheduler = _find(InterruptController, "controller1")
+					responsibility += _find(ProcessingUnit, "core1")
+					executingPU = _find(ProcessingUnit, "core1")
+				]
+				isrAllocation [
+					isr = _find(ISR, "isr2")
+					controller = _find(InterruptController, "controller2")
+				]
+				schedulerAllocation [
+					scheduler = _find(InterruptController, "controller2")
+					responsibility += _find(ProcessingUnit, "core2")
+				]
+				isrAllocation [
+					isr = _find(ISR, "isr3")
+					controller = _find(InterruptController, "controller1")
+				]
+				schedulerAllocation [
+					scheduler = _find(InterruptController, "controller1")
+					responsibility += _find(ProcessingUnit, "core1")
+					executingPU = _find(ProcessingUnit, "core1")
+				]
+
+			]
+		]
+
+		return model
+	}
+}
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/RuntimeModels.xtend b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/RuntimeModels.xtend
index e30c3b8..00e426c 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/RuntimeModels.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/RuntimeModels.xtend
@@ -106,7 +106,7 @@
 			softwareModel [
 				runnable [
 					name = "r1"
-					callGraph [
+					activityGraph [
 						ticks [defaultConstant(200)]
 						execNeed [need("Instructions", createDiscreteValueConstant(500))]
 						execNeed [need("Instructions",createDiscreteValueGaussDistribution(500, 2, 250L, 750L))]
@@ -115,13 +115,13 @@
 				]
 				runnable [
 					name = "r2"
-					callGraph [
+					activityGraph [
 						execNeed [need("MAC_Operations", createDiscreteValueConstant(2000))]	
 					]
 				]
 				runnable [
 					name = "r3"
-					callGraph [
+					activityGraph [
 						execNeed [need("MAC_Operations", createDiscreteValueGaussDistribution(500, 2, 250L, 750L))]	
 						ticks [defaultDeviation(createDiscreteValueGaussDistribution(300, 2, 100L, 500L))]	
 						runnableCall [runnable = _find(Runnable, "r2")]			
@@ -129,13 +129,13 @@
 				]
 				task [
 					name = "t1"
-					callGraph [
+					activityGraph [
 						runnableCall [runnable = _find(Runnable, "r1")]
 					]
 				]
 				task [
 					name = "t2"
-					callGraph [
+					activityGraph [
 						runnableCall [runnable = _find(Runnable, "r2")]
 						runnableCall [runnable = _find(Runnable, "r3")]
 					]
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/SoftwareModels.xtend b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/SoftwareModels.xtend
index 548f954..c38d987 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/SoftwareModels.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/src/org/eclipse/app4mc/amalthea/models/SoftwareModels.xtend
@@ -64,7 +64,7 @@
 					label [name = "Lab5"]
 
 					runnable [ name = "Run1"
-						callGraph [
+						activityGraph [
 							ticks [ defaultConstant(200) ]
 							modeSwitch [
 								defaultEntry [
@@ -78,7 +78,7 @@
 						]
 					]
 					runnable [ name = "Run2"
-						callGraph [
+						activityGraph [
 							ticks [ defaultConstant(400) ]
 							ticks [ defaultConstant(40) ]
 							ticks [ defaultConstant(4) ]
@@ -87,13 +87,13 @@
 						]
 					]
 					runnable [ name = "Run3"
-						callGraph [
+						activityGraph [
 							labelAccess [ access = READ; data = _find(Label, "Lab5") ]
 							ticks [ defaultConstant(600) ]
 						]
 					]
 					runnable [ name = "Run4"
-						callGraph [
+						activityGraph [
 							ticks [ defaultConstant(700) ]
 						]
 					]
@@ -115,7 +115,7 @@
 					label [name = "Lab5"]
 
 					runnable [ name = "Run1"
-						callGraph [
+						activityGraph [
 							ticks [ defaultConstant(200) ]
 							// incomplete label accesses
 							labelAccess [ statistic = fac.createLabelAccessStatistic ]
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/ConstraintsUtilTestModel-gen.amxmi b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/ConstraintsUtilTestModel-gen.amxmi
index 6ce3248..02134c2 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/ConstraintsUtilTestModel-gen.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/ConstraintsUtilTestModel-gen.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="Task1" multipleTaskActivationLimit="0"/>
     <tasks name="Task2" multipleTaskActivationLimit="0"/>
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/HwUtilTestModel-gen.amxmi b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/HwUtilTestModel-gen.amxmi
index ffc512a..c309dd7 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/HwUtilTestModel-gen.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/HwUtilTestModel-gen.amxmi
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <hwModel>
     <definitions xsi:type="am:ProcessingUnitDefinition" name="PuDef1" features="category2/feature1?type=HwFeature"/>
     <definitions xsi:type="am:MemoryDefinition" name="MemDef1">
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/RuntimeUtilTestModel-gen.amxmi b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/RuntimeUtilTestModel-gen.amxmi
index 55f3c33..a1e559e 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/RuntimeUtilTestModel-gen.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/RuntimeUtilTestModel-gen.amxmi
@@ -1,19 +1,19 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <tasks name="t1" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:RunnableCall" runnable="r1?type=Runnable"/>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <tasks name="t2" multipleTaskActivationLimit="0">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:RunnableCall" runnable="r2?type=Runnable"/>
         <items xsi:type="am:RunnableCall" runnable="r3?type=Runnable"/>
-      </callGraph>
+      </activityGraph>
     </tasks>
     <runnables name="r1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="200"/>
         </items>
@@ -32,19 +32,19 @@
             <value xsi:type="am:DiscreteValueConstant" value="2000"/>
           </needs>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="r2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ExecutionNeed">
           <needs key="MAC_Operations">
             <value xsi:type="am:DiscreteValueConstant" value="2000"/>
           </needs>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="r3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:ExecutionNeed">
           <needs key="MAC_Operations">
             <value xsi:type="am:DiscreteValueGaussDistribution" lowerBound="250" upperBound="750" mean="500.0" sd="2.0"/>
@@ -54,7 +54,7 @@
           <default xsi:type="am:DiscreteValueGaussDistribution" lowerBound="100" upperBound="500" mean="300.0" sd="2.0"/>
         </items>
         <items xsi:type="am:RunnableCall" runnable="r2?type=Runnable"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
   </swModel>
   <hwModel>
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel1-gen.amxmi b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel1-gen.amxmi
index 4f03b98..235b32d 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel1-gen.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel1-gen.amxmi
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <runnables name="Run1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="200"/>
         </items>
@@ -17,10 +17,10 @@
             <items xsi:type="am:LabelAccess" data="Lab4?type=Label" access="write"/>
           </defaultEntry>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Run2" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="400"/>
         </items>
@@ -32,22 +32,22 @@
         </items>
         <items xsi:type="am:RunnableCall"/>
         <items xsi:type="am:LabelAccess" data="Lab5?type=Label" access="write"/>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Run3" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:LabelAccess" data="Lab5?type=Label" access="read"/>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="600"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <runnables name="Run4" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="700"/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="Lab1" constant="false" bVolatile="false"/>
     <labels name="Lab2" constant="false" bVolatile="false"/>
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel2-gen.amxmi b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel2-gen.amxmi
index 587112a..fafbba6 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel2-gen.amxmi
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/test-data/SoftwareUtilTestModel2-gen.amxmi
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/0.9.7" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <swModel>
     <runnables name="Run1" callback="false" service="false">
-      <callGraph>
+      <activityGraph>
         <items xsi:type="am:Ticks">
           <default xsi:type="am:DiscreteValueConstant" value="200"/>
         </items>
@@ -31,7 +31,7 @@
         <items xsi:type="am:LabelAccess" data="Lab5?type=Label" access="write">
           <statistic/>
         </items>
-      </callGraph>
+      </activityGraph>
     </runnables>
     <labels name="Lab1" constant="false" bVolatile="false"/>
     <labels name="Lab2" constant="false" bVolatile="false"/>
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/AmaltheaIndexTest.java b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/AmaltheaIndexTest.java
index ab441b1..a66e0de 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/AmaltheaIndexTest.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/AmaltheaIndexTest.java
@@ -16,10 +16,10 @@
 import java.util.List;
 import java.util.Set;
 import java.util.regex.Pattern;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.MappingModel;
@@ -91,11 +91,11 @@
     AmaltheaIndex.deleteAll(model.getSwModel().getLabels());
     Assert.assertEquals("Label d0 is not removed from model.", 0, AmaltheaIndex.<Label>getElements(model, "d0", Label.class).size());
     final org.eclipse.app4mc.amalthea.model.Runnable runnable0 = IterableExtensions.<org.eclipse.app4mc.amalthea.model.Runnable>head(AmaltheaIndex.<org.eclipse.app4mc.amalthea.model.Runnable>getElements(model, "r0", org.eclipse.app4mc.amalthea.model.Runnable.class));
-    final EList<CallGraphItem> runnableItems = runnable0.getRunnableItems();
-    final Function1<CallGraphItem, Boolean> _function = (CallGraphItem s) -> {
+    final EList<ActivityGraphItem> runnableItems = runnable0.getRunnableItems();
+    final Function1<ActivityGraphItem, Boolean> _function = (ActivityGraphItem s) -> {
       return Boolean.valueOf(((s instanceof LabelAccess) && (((LabelAccess) s).getData() != null)));
     };
-    final Iterable<CallGraphItem> filteredItems = IterableExtensions.<CallGraphItem>filter(runnableItems, _function);
+    final Iterable<ActivityGraphItem> filteredItems = IterableExtensions.<ActivityGraphItem>filter(runnableItems, _function);
     Assert.assertEquals("Runnable runnable0 should not contain reference to Label in LabelAccess - as all labels are deleted.", 0, IterableExtensions.size(filteredItems));
   }
   
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.java b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.java
index 4763783..95219f6 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/model/util/tests/SoftwareUtilsTest.java
@@ -13,9 +13,9 @@
 import java.util.Map;
 import java.util.Set;
 import java.util.function.Function;
+import org.eclipse.app4mc.amalthea.model.ActivityGraphItem;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaIndex;
-import org.eclipse.app4mc.amalthea.model.CallGraphItem;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
 import org.eclipse.app4mc.amalthea.model.LabelAccessEnum;
@@ -51,21 +51,21 @@
   }
   
   @Test
-  public void testCollectCallGraphItems() {
-    final EList<CallGraphItem> list1 = SoftwareUtil.collectCallGraphItems(this.run1.getCallGraph());
+  public void testCollectActivityGraphItems() {
+    final EList<ActivityGraphItem> list1 = SoftwareUtil.collectActivityGraphItems(this.run1.getActivityGraph());
     Assert.assertEquals(
       "collectRunnableItems: 6 items expected", 6, list1.size());
-    final EList<Ticks> list2 = SoftwareUtil.<Ticks>collectCallGraphItems(this.run1.getCallGraph(), null, Ticks.class);
+    final EList<Ticks> list2 = SoftwareUtil.<Ticks>collectActivityGraphItems(this.run1.getActivityGraph(), null, Ticks.class);
     Assert.assertEquals(
       "collectRunnableItems: 2 items (ticks) expected", 2, list2.size());
     final Function<LabelAccess, Boolean> _function = (LabelAccess i) -> {
       LabelAccessEnum _access = i.getAccess();
       return Boolean.valueOf((_access == LabelAccessEnum.READ));
     };
-    final EList<LabelAccess> list3 = SoftwareUtil.<LabelAccess>collectCallGraphItems(this.run1.getCallGraph(), null, LabelAccess.class, _function);
+    final EList<LabelAccess> list3 = SoftwareUtil.<LabelAccess>collectActivityGraphItems(this.run1.getActivityGraph(), null, LabelAccess.class, _function);
     Assert.assertEquals(
       "collectRunnableItems: 2 items (label accesses) expected", 2, list3.size());
-    final EList<CallGraphItem> list4 = SoftwareUtil.collectCallGraphItems(this.run4.getCallGraph());
+    final EList<ActivityGraphItem> list4 = SoftwareUtil.collectActivityGraphItems(this.run4.getActivityGraph());
     Assert.assertEquals(
       "collectRunnableItems: 1 item expected", 1, list4.size());
   }
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/DeploymentModels.java b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/DeploymentModels.java
new file mode 100644
index 0000000..d1ab7c4
--- /dev/null
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/DeploymentModels.java
@@ -0,0 +1,309 @@
+/**
+ * Copyright (c) 2018-2020 Robert Bosch GmbH and others.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ */
+package org.eclipse.app4mc.amalthea.models;
+
+import org.eclipse.app4mc.amalthea.model.Amalthea;
+import org.eclipse.app4mc.amalthea.model.HWModel;
+import org.eclipse.app4mc.amalthea.model.HwStructure;
+import org.eclipse.app4mc.amalthea.model.ISR;
+import org.eclipse.app4mc.amalthea.model.ISRAllocation;
+import org.eclipse.app4mc.amalthea.model.InterruptController;
+import org.eclipse.app4mc.amalthea.model.MappingModel;
+import org.eclipse.app4mc.amalthea.model.OSModel;
+import org.eclipse.app4mc.amalthea.model.OperatingSystem;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
+import org.eclipse.app4mc.amalthea.model.ProcessingUnitDefinition;
+import org.eclipse.app4mc.amalthea.model.SWModel;
+import org.eclipse.app4mc.amalthea.model.SchedulerAllocation;
+import org.eclipse.app4mc.amalthea.model.SchedulerAssociation;
+import org.eclipse.app4mc.amalthea.model.StructureType;
+import org.eclipse.app4mc.amalthea.model.Task;
+import org.eclipse.app4mc.amalthea.model.TaskAllocation;
+import org.eclipse.app4mc.amalthea.model.TaskScheduler;
+import org.eclipse.app4mc.amalthea.model.builder.AmaltheaBuilder;
+import org.eclipse.app4mc.amalthea.model.builder.HardwareBuilder;
+import org.eclipse.app4mc.amalthea.model.builder.MappingBuilder;
+import org.eclipse.app4mc.amalthea.model.builder.OperatingSystemBuilder;
+import org.eclipse.app4mc.amalthea.model.builder.SoftwareBuilder;
+import org.eclipse.app4mc.amalthea.model.io.AmaltheaWriter;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.xtext.xbase.lib.Extension;
+import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
+
+@SuppressWarnings("all")
+public class DeploymentModels {
+  @Extension
+  private AmaltheaBuilder b1 = new AmaltheaBuilder();
+  
+  @Extension
+  private HardwareBuilder b2 = new HardwareBuilder();
+  
+  @Extension
+  private SoftwareBuilder b3 = new SoftwareBuilder();
+  
+  @Extension
+  private OperatingSystemBuilder b5 = new OperatingSystemBuilder();
+  
+  @Extension
+  private MappingBuilder b6 = new MappingBuilder();
+  
+  public static void main(final String[] args) {
+    final Amalthea model1 = new DeploymentModels().model1();
+    AmaltheaWriter.writeToFileNamed(model1, "test-data/DeploymentUtilTestModel-gen.amxmi");
+  }
+  
+  public static Amalthea createModel1() {
+    return new DeploymentModels().model1();
+  }
+  
+  public Amalthea model1() {
+    final Procedure1<Amalthea> _function = (Amalthea it) -> {
+      final Procedure1<HWModel> _function_1 = (HWModel it_1) -> {
+        final Procedure1<ProcessingUnitDefinition> _function_2 = (ProcessingUnitDefinition it_2) -> {
+          it_2.setName("Pu1_def");
+        };
+        this.b2.definition_ProcessingUnit(it_1, _function_2);
+        final Procedure1<ProcessingUnitDefinition> _function_3 = (ProcessingUnitDefinition it_2) -> {
+          it_2.setName("Pu2_def");
+        };
+        this.b2.definition_ProcessingUnit(it_1, _function_3);
+        final Procedure1<HwStructure> _function_4 = (HwStructure it_2) -> {
+          it_2.setName("SoC");
+          it_2.setStructureType(StructureType.SO_C);
+          final Procedure1<ProcessingUnit> _function_5 = (ProcessingUnit it_3) -> {
+            it_3.setName("core1");
+          };
+          this.b2.module_ProcessingUnit(it_2, _function_5);
+          final Procedure1<ProcessingUnit> _function_6 = (ProcessingUnit it_3) -> {
+            it_3.setName("core2");
+          };
+          this.b2.module_ProcessingUnit(it_2, _function_6);
+          final Procedure1<ProcessingUnit> _function_7 = (ProcessingUnit it_3) -> {
+            it_3.setName("core3");
+          };
+          this.b2.module_ProcessingUnit(it_2, _function_7);
+        };
+        this.b2.structure(it_1, _function_4);
+      };
+      this.b1.hardwareModel(it, _function_1);
+      final Procedure1<SWModel> _function_2 = (SWModel it_1) -> {
+        final Procedure1<Task> _function_3 = (Task it_2) -> {
+          it_2.setName("t1");
+        };
+        this.b3.task(it_1, _function_3);
+        final Procedure1<Task> _function_4 = (Task it_2) -> {
+          it_2.setName("t2");
+        };
+        this.b3.task(it_1, _function_4);
+        final Procedure1<Task> _function_5 = (Task it_2) -> {
+          it_2.setName("t3");
+        };
+        this.b3.task(it_1, _function_5);
+        final Procedure1<Task> _function_6 = (Task it_2) -> {
+          it_2.setName("t4");
+        };
+        this.b3.task(it_1, _function_6);
+        final Procedure1<Task> _function_7 = (Task it_2) -> {
+          it_2.setName("t5");
+        };
+        this.b3.task(it_1, _function_7);
+        final Procedure1<Task> _function_8 = (Task it_2) -> {
+          it_2.setName("t6");
+        };
+        this.b3.task(it_1, _function_8);
+        final Procedure1<Task> _function_9 = (Task it_2) -> {
+          it_2.setName("t7");
+        };
+        this.b3.task(it_1, _function_9);
+        final Procedure1<ISR> _function_10 = (ISR it_2) -> {
+          it_2.setName("isr1");
+        };
+        this.b3.isr(it_1, _function_10);
+        final Procedure1<ISR> _function_11 = (ISR it_2) -> {
+          it_2.setName("isr2");
+        };
+        this.b3.isr(it_1, _function_11);
+        final Procedure1<ISR> _function_12 = (ISR it_2) -> {
+          it_2.setName("isr3");
+        };
+        this.b3.isr(it_1, _function_12);
+      };
+      this.b1.softwareModel(it, _function_2);
+      final Procedure1<OSModel> _function_3 = (OSModel it_1) -> {
+        final Procedure1<OperatingSystem> _function_4 = (OperatingSystem it_2) -> {
+          it_2.setName("Os1");
+          final Procedure1<TaskScheduler> _function_5 = (TaskScheduler it_3) -> {
+            it_3.setName("Scheduler1");
+          };
+          this.b5.taskScheduler(it_2, _function_5);
+          final Procedure1<TaskScheduler> _function_6 = (TaskScheduler it_3) -> {
+            it_3.setName("Scheduler2");
+          };
+          this.b5.taskScheduler(it_2, _function_6);
+          final Procedure1<TaskScheduler> _function_7 = (TaskScheduler it_3) -> {
+            it_3.setName("Scheduler3");
+            final Procedure1<SchedulerAssociation> _function_8 = (SchedulerAssociation it_4) -> {
+              it_4.setParent(this.b1.<TaskScheduler>_find(it_4, TaskScheduler.class, "Scheduler2"));
+            };
+            this.b5.parentAssociation(it_3, _function_8);
+          };
+          this.b5.taskScheduler(it_2, _function_7);
+          final Procedure1<TaskScheduler> _function_8 = (TaskScheduler it_3) -> {
+            it_3.setName("Scheduler4");
+            final Procedure1<SchedulerAssociation> _function_9 = (SchedulerAssociation it_4) -> {
+              it_4.setParent(this.b1.<TaskScheduler>_find(it_4, TaskScheduler.class, "Scheduler3"));
+            };
+            this.b5.parentAssociation(it_3, _function_9);
+          };
+          this.b5.taskScheduler(it_2, _function_8);
+          final Procedure1<InterruptController> _function_9 = (InterruptController it_3) -> {
+            it_3.setName("controller1");
+          };
+          this.b5.interruptController(it_2, _function_9);
+          final Procedure1<InterruptController> _function_10 = (InterruptController it_3) -> {
+            it_3.setName("controller2");
+          };
+          this.b5.interruptController(it_2, _function_10);
+        };
+        this.b5.operatingSystem(it_1, _function_4);
+      };
+      this.b1.osModel(it, _function_3);
+      final Procedure1<MappingModel> _function_4 = (MappingModel it_1) -> {
+        final Procedure1<SchedulerAllocation> _function_5 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler2"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_5);
+        final Procedure1<SchedulerAllocation> _function_6 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler1"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_6);
+        final Procedure1<SchedulerAllocation> _function_7 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler3"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_7);
+        final Procedure1<SchedulerAllocation> _function_8 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler4"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_8);
+        final Procedure1<SchedulerAllocation> _function_9 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler5"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_9);
+        final Procedure1<TaskAllocation> _function_10 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t1"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler1"));
+          EList<ProcessingUnit> _affinity = it_2.getAffinity();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1");
+          _affinity.add(__find);
+        };
+        this.b6.taskAllocation(it_1, _function_10);
+        final Procedure1<TaskAllocation> _function_11 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t2"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler2"));
+          EList<ProcessingUnit> _affinity = it_2.getAffinity();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2");
+          _affinity.add(__find);
+        };
+        this.b6.taskAllocation(it_1, _function_11);
+        final Procedure1<TaskAllocation> _function_12 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t3"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler1"));
+          EList<ProcessingUnit> _affinity = it_2.getAffinity();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1");
+          _affinity.add(__find);
+        };
+        this.b6.taskAllocation(it_1, _function_12);
+        final Procedure1<TaskAllocation> _function_13 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t4"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler3"));
+          EList<ProcessingUnit> _affinity = it_2.getAffinity();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core3");
+          _affinity.add(__find);
+        };
+        this.b6.taskAllocation(it_1, _function_13);
+        final Procedure1<TaskAllocation> _function_14 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t5"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler4"));
+        };
+        this.b6.taskAllocation(it_1, _function_14);
+        final Procedure1<TaskAllocation> _function_15 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t6"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler3"));
+        };
+        this.b6.taskAllocation(it_1, _function_15);
+        final Procedure1<TaskAllocation> _function_16 = (TaskAllocation it_2) -> {
+          it_2.setTask(this.b1.<Task>_find(it_2, Task.class, "t7"));
+          it_2.setScheduler(this.b1.<TaskScheduler>_find(it_2, TaskScheduler.class, "Scheduler5"));
+        };
+        this.b6.taskAllocation(it_1, _function_16);
+        final Procedure1<ISRAllocation> _function_17 = (ISRAllocation it_2) -> {
+          it_2.setIsr(this.b1.<ISR>_find(it_2, ISR.class, "isr1"));
+          it_2.setController(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller1"));
+        };
+        this.b6.isrAllocation(it_1, _function_17);
+        final Procedure1<SchedulerAllocation> _function_18 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller1"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_18);
+        final Procedure1<ISRAllocation> _function_19 = (ISRAllocation it_2) -> {
+          it_2.setIsr(this.b1.<ISR>_find(it_2, ISR.class, "isr2"));
+          it_2.setController(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller2"));
+        };
+        this.b6.isrAllocation(it_1, _function_19);
+        final Procedure1<SchedulerAllocation> _function_20 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller2"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core2");
+          _responsibility.add(__find);
+        };
+        this.b6.schedulerAllocation(it_1, _function_20);
+        final Procedure1<ISRAllocation> _function_21 = (ISRAllocation it_2) -> {
+          it_2.setIsr(this.b1.<ISR>_find(it_2, ISR.class, "isr3"));
+          it_2.setController(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller1"));
+        };
+        this.b6.isrAllocation(it_1, _function_21);
+        final Procedure1<SchedulerAllocation> _function_22 = (SchedulerAllocation it_2) -> {
+          it_2.setScheduler(this.b1.<InterruptController>_find(it_2, InterruptController.class, "controller1"));
+          EList<ProcessingUnit> _responsibility = it_2.getResponsibility();
+          ProcessingUnit __find = this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1");
+          _responsibility.add(__find);
+          it_2.setExecutingPU(this.b1.<ProcessingUnit>_find(it_2, ProcessingUnit.class, "core1"));
+        };
+        this.b6.schedulerAllocation(it_1, _function_22);
+      };
+      this.b1.mappingModel(it, _function_4);
+    };
+    final Amalthea model = this.b1.amalthea(_function);
+    return model;
+  }
+}
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/RuntimeModels.java b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/RuntimeModels.java
index 85d6fb6..c05989d 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/RuntimeModels.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/RuntimeModels.java
@@ -12,8 +12,8 @@
  */
 package org.eclipse.app4mc.amalthea.models;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.ExecutionNeed;
 import org.eclipse.app4mc.amalthea.model.FrequencyDomain;
 import org.eclipse.app4mc.amalthea.model.FrequencyUnit;
@@ -146,7 +146,7 @@
       final Procedure1<SWModel> _function_2 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r1");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               this.b3.defaultConstant(it_4, 200);
             };
@@ -164,23 +164,23 @@
             };
             this.b3.execNeed(it_3, _function_8);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r2");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<ExecutionNeed> _function_6 = (ExecutionNeed it_4) -> {
               this.b3.need(it_4, "MAC_Operations", FactoryUtil.createDiscreteValueConstant(2000));
             };
             this.b3.execNeed(it_3, _function_6);
           };
-          this.b3.callGraph(it_2, _function_5);
+          this.b3.activityGraph(it_2, _function_5);
         };
         this.b3.runnable(it_1, _function_4);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r3");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<ExecutionNeed> _function_7 = (ExecutionNeed it_4) -> {
               this.b3.need(it_4, "MAC_Operations", FactoryUtil.createDiscreteValueGaussDistribution(500, 2, Long.valueOf(250L), Long.valueOf(750L)));
             };
@@ -194,23 +194,23 @@
             };
             this.b3.runnableCall(it_3, _function_9);
           };
-          this.b3.callGraph(it_2, _function_6);
+          this.b3.activityGraph(it_2, _function_6);
         };
         this.b3.runnable(it_1, _function_5);
         final Procedure1<Task> _function_6 = (Task it_2) -> {
           it_2.setName("t1");
-          final Procedure1<CallGraph> _function_7 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_7 = (ActivityGraph it_3) -> {
             final Procedure1<RunnableCall> _function_8 = (RunnableCall it_4) -> {
               it_4.setRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "r1"));
             };
             this.b3.runnableCall(it_3, _function_8);
           };
-          this.b3.callGraph(it_2, _function_7);
+          this.b3.activityGraph(it_2, _function_7);
         };
         this.b3.task(it_1, _function_6);
         final Procedure1<Task> _function_7 = (Task it_2) -> {
           it_2.setName("t2");
-          final Procedure1<CallGraph> _function_8 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_8 = (ActivityGraph it_3) -> {
             final Procedure1<RunnableCall> _function_9 = (RunnableCall it_4) -> {
               it_4.setRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "r2"));
             };
@@ -220,7 +220,7 @@
             };
             this.b3.runnableCall(it_3, _function_10);
           };
-          this.b3.callGraph(it_2, _function_8);
+          this.b3.activityGraph(it_2, _function_8);
         };
         this.b3.task(it_1, _function_7);
       };
diff --git a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/SoftwareModels.java b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/SoftwareModels.java
index d971939..6fb390d 100644
--- a/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/SoftwareModels.java
+++ b/tests/org.eclipse.app4mc.amalthea.model.tests/xtend-gen/org/eclipse/app4mc/amalthea/models/SoftwareModels.java
@@ -12,9 +12,9 @@
  */
 package org.eclipse.app4mc.amalthea.models;
 
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.EnumMode;
 import org.eclipse.app4mc.amalthea.model.Label;
 import org.eclipse.app4mc.amalthea.model.LabelAccess;
@@ -102,7 +102,7 @@
         this.b2.label(it_1, _function_8);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_9 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("Run1");
-          final Procedure1<CallGraph> _function_10 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_10 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_11 = (Ticks it_4) -> {
               this.b2.defaultConstant(it_4, 200);
             };
@@ -138,12 +138,12 @@
             };
             this.b2.modeSwitch(it_3, _function_12);
           };
-          this.b2.callGraph(it_2, _function_10);
+          this.b2.activityGraph(it_2, _function_10);
         };
         this.b2.runnable(it_1, _function_9);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_10 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("Run2");
-          final Procedure1<CallGraph> _function_11 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_11 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_12 = (Ticks it_4) -> {
               this.b2.defaultConstant(it_4, 400);
             };
@@ -166,12 +166,12 @@
             };
             this.b2.labelAccess(it_3, _function_16);
           };
-          this.b2.callGraph(it_2, _function_11);
+          this.b2.activityGraph(it_2, _function_11);
         };
         this.b2.runnable(it_1, _function_10);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_11 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("Run3");
-          final Procedure1<CallGraph> _function_12 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_12 = (ActivityGraph it_3) -> {
             final Procedure1<LabelAccess> _function_13 = (LabelAccess it_4) -> {
               it_4.setAccess(LabelAccessEnum.READ);
               it_4.setData(this.b1.<Label>_find(it_4, Label.class, "Lab5"));
@@ -182,18 +182,18 @@
             };
             this.b2.ticks(it_3, _function_14);
           };
-          this.b2.callGraph(it_2, _function_12);
+          this.b2.activityGraph(it_2, _function_12);
         };
         this.b2.runnable(it_1, _function_11);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_12 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("Run4");
-          final Procedure1<CallGraph> _function_13 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_13 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_14 = (Ticks it_4) -> {
               this.b2.defaultConstant(it_4, 700);
             };
             this.b2.ticks(it_3, _function_14);
           };
-          this.b2.callGraph(it_2, _function_13);
+          this.b2.activityGraph(it_2, _function_13);
         };
         this.b2.runnable(it_1, _function_12);
       };
@@ -229,7 +229,7 @@
         this.b2.label(it_1, _function_6);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_7 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("Run1");
-          final Procedure1<CallGraph> _function_8 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_8 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_9 = (Ticks it_4) -> {
               this.b2.defaultConstant(it_4, 200);
             };
@@ -291,7 +291,7 @@
             };
             this.b2.labelAccess(it_3, _function_20);
           };
-          this.b2.callGraph(it_2, _function_8);
+          this.b2.activityGraph(it_2, _function_8);
         };
         this.b2.runnable(it_1, _function_7);
       };
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/META-INF/MANIFEST.MF
index e647127..15672bf 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Validations TA - Tests
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.validations.ta.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.amalthea.validations.ta
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.12.0",
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.xtend b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.xtend
index 2166cb8..eb9f381 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.xtend
@@ -105,15 +105,15 @@
 			softwareModel[
 				runnable[
 					name = "r_ok"
-					callGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 40)]]
+					activityGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 40)]]
 				]
 				runnable[
 					name = "r_meanLess"
-					callGraph [ticks [^default = createDVGaussD(10d, 10d, 20, 40)]] 
+					activityGraph [ticks [^default = createDVGaussD(10d, 10d, 20, 40)]] 
 				]
 				runnable[
 					name = "r_meanMore"
-					callGraph [ticks [^default = createDVGaussD(50d, 10d, 20, 40)]] 
+					activityGraph [ticks [^default = createDVGaussD(50d, 10d, 20, 40)]] 
 				]
 			]
 		]
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.xtend b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.xtend
index 70a4057..4f9466b 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/src/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.xtend
@@ -67,14 +67,14 @@
 				osEvent [name = "ev_wait"]
 				task [
 					name = "t1"
-					callGraph [
+					activityGraph [
 						setEvent [eventMask(_find(OsEvent, "ev_ok"))]
 						waitEvent [eventMask(_find(OsEvent, "ev_ok"))]
 					]
 				]
 				task [
 					name = "t2"
-					callGraph [
+					activityGraph [
 						waitEvent [eventMask(_find(OsEvent, "ev_wait"))]
 					]
 				]
@@ -98,7 +98,7 @@
 				modeLabel [name = "ml" mode = _find(EnumMode, "enumerated") initialValue = "first"]
 				runnable [
 					name = "r"
-					callGraph [
+					activityGraph [
 						modeSwitch [entry [name = "r_mse_ok"
 							modeConditionSingleConjunction [label = _find(ModeLabel, "ml") value = "first" relation = RelationalOperator.EQUAL]
 							modeConditionSingleConjunction [label = _find(ModeLabel, "ml") value = "second" relation = RelationalOperator.NOT_EQUAL]
@@ -138,11 +138,11 @@
 				]
 				runnable [
 					name = "r_ok"
-					callGraph [asynchronousServerCall [serverRunnable = _find(Runnable, "server_runnable")]]
+					activityGraph [asynchronousServerCall [serverRunnable = _find(Runnable, "server_runnable")]]
 				]
 				runnable [
 					name = "r_looped"
-					callGraph [asynchronousServerCall [serverRunnable = containingRunnable]]
+					activityGraph [asynchronousServerCall [serverRunnable = containingRunnable]]
 				]
 			]
 		]
@@ -161,11 +161,11 @@
 				]
 				runnable [
 					name = "r_ok"
-					callGraph [asynchronousServerCall [serverRunnable = _find(Runnable, "other_runnable")]]
+					activityGraph [asynchronousServerCall [serverRunnable = _find(Runnable, "other_runnable")]]
 				]
 				runnable [
 					name = "r_looped"
-					callGraph [runnableCall [runnable = containingRunnable]]
+					activityGraph [runnableCall [runnable = containingRunnable]]
 				]
 			]
 		]
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.java b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.java
index eca2448..b1680e2 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.java
+++ b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TABasicModelValidatorTests.java
@@ -17,9 +17,9 @@
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.ContinuousValueGaussDistribution;
 import org.eclipse.app4mc.amalthea.model.DiscreteValueGaussDistribution;
 import org.eclipse.app4mc.amalthea.model.PeriodicStimulus;
@@ -147,35 +147,35 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVGaussD(30d, 10d, 20, 40));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_meanLess");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVGaussD(10d, 10d, 20, 40));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_meanMore");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_6 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVGaussD(50d, 10d, 20, 40));
             };
             this.b3.ticks(it_3, _function_6);
           };
-          this.b3.callGraph(it_2, _function_5);
+          this.b3.activityGraph(it_2, _function_5);
         };
         this.b3.runnable(it_1, _function_4);
       };
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.java b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.java
index fd854eb..0f342d7 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.java
+++ b/tests/org.eclipse.app4mc.amalthea.validations.ta.tests/xtend-gen/org/eclipse/app4mc/amalthea/validation/ta/tests/TASoftwareModelValidatorTests.java
@@ -17,10 +17,10 @@
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
 import org.eclipse.app4mc.amalthea.model.AsynchronousServerCall;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.EnumMode;
 import org.eclipse.app4mc.amalthea.model.ModeCondition;
 import org.eclipse.app4mc.amalthea.model.ModeConditionConjunction;
@@ -100,7 +100,7 @@
         this.b2.osEvent(it_1, _function_3);
         final Procedure1<Task> _function_4 = (Task it_2) -> {
           it_2.setName("t1");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<SetEvent> _function_6 = (SetEvent it_4) -> {
               this.b2.eventMask(it_4, this.b1.<OsEvent>_find(it_4, OsEvent.class, "ev_ok"));
             };
@@ -110,18 +110,18 @@
             };
             this.b2.waitEvent(it_3, _function_7);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.task(it_1, _function_4);
         final Procedure1<Task> _function_5 = (Task it_2) -> {
           it_2.setName("t2");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<WaitEvent> _function_7 = (WaitEvent it_4) -> {
               this.b2.eventMask(it_4, this.b1.<OsEvent>_find(it_4, OsEvent.class, "ev_wait"));
             };
             this.b2.waitEvent(it_3, _function_7);
           };
-          this.b2.callGraph(it_2, _function_6);
+          this.b2.activityGraph(it_2, _function_6);
         };
         this.b2.task(it_1, _function_5);
       };
@@ -165,7 +165,7 @@
         this.b2.modeLabel(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<ModeSwitch> _function_6 = (ModeSwitch it_4) -> {
               final Procedure1<ModeSwitchEntry> _function_7 = (ModeSwitchEntry it_5) -> {
                 it_5.setName("r_mse_ok");
@@ -243,7 +243,7 @@
             };
             this.b2.modeSwitch(it_3, _function_9);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.runnable(it_1, _function_4);
       };
@@ -277,24 +277,24 @@
         this.b2.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<AsynchronousServerCall> _function_5 = (AsynchronousServerCall it_4) -> {
               it_4.setServerRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "server_runnable"));
             };
             this.b2.asynchronousServerCall(it_3, _function_5);
           };
-          this.b2.callGraph(it_2, _function_4);
+          this.b2.activityGraph(it_2, _function_4);
         };
         this.b2.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_looped");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<AsynchronousServerCall> _function_6 = (AsynchronousServerCall it_4) -> {
               it_4.setServerRunnable(it_4.getContainingRunnable());
             };
             this.b2.asynchronousServerCall(it_3, _function_6);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.runnable(it_1, _function_4);
       };
@@ -324,24 +324,24 @@
         this.b2.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<AsynchronousServerCall> _function_5 = (AsynchronousServerCall it_4) -> {
               it_4.setServerRunnable(this.b1.<org.eclipse.app4mc.amalthea.model.Runnable>_find(it_4, org.eclipse.app4mc.amalthea.model.Runnable.class, "other_runnable"));
             };
             this.b2.asynchronousServerCall(it_3, _function_5);
           };
-          this.b2.callGraph(it_2, _function_4);
+          this.b2.activityGraph(it_2, _function_4);
         };
         this.b2.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_looped");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<RunnableCall> _function_6 = (RunnableCall it_4) -> {
               it_4.setRunnable(it_4.getContainingRunnable());
             };
             this.b2.runnableCall(it_3, _function_6);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.runnable(it_1, _function_4);
       };
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.amalthea.validations.tests/META-INF/MANIFEST.MF
index 36f0885..f647b9c 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.amalthea.validations.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Amalthea Validations - Tests
 Bundle-SymbolicName: org.eclipse.app4mc.amalthea.validations.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.amalthea.validations
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit;bundle-version="4.12.0",
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.xtend b/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.xtend
index 491f8e8..bf0e7eb 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.xtend
@@ -328,19 +328,19 @@
 			softwareModel [
 				runnable [
 					name = "r_ok"
-					callGraph [ticks [^default = createDVBetaD(0.5d, 0.5d, 20l, 40l)]]
+					activityGraph [ticks [^default = createDVBetaD(0.5d, 0.5d, 20l, 40l)]]
 				]
 				runnable [
 					name = "r_alphaZero"
-					callGraph [ticks [^default = createDVBetaD(0d, 0.5d, 20l, 40l)]]
+					activityGraph [ticks [^default = createDVBetaD(0d, 0.5d, 20l, 40l)]]
 				]
 				runnable [
 					name = "r_betaZero"
-					callGraph [ticks [^default = createDVBetaD(0.5d, 0d, 20l, 40l)]]
+					activityGraph [ticks [^default = createDVBetaD(0.5d, 0d, 20l, 40l)]]
 				]
 				runnable [
 					name = "r_alphabetaZero"
-					callGraph [ticks [^default = createDVBetaD(0d, 0d, 20l, 40l)]]
+					activityGraph [ticks [^default = createDVBetaD(0d, 0d, 20l, 40l)]]
 				]
 			]
 		]
@@ -365,11 +365,11 @@
 			softwareModel[
 				runnable[
 					name = "r_ok"
-					callGraph [ticks [^default = createDVUniformD(20, 40)]]
+					activityGraph [ticks [^default = createDVUniformD(20, 40)]]
 				]
 				runnable[
 					name = "r_more"
-					callGraph [ticks [^default = createDVUniformD(20, 10)]]
+					activityGraph [ticks [^default = createDVUniformD(20, 10)]]
 				]
 			]
 		]
@@ -386,15 +386,15 @@
 			softwareModel[
 				runnable[
 					name = "r_ok"
-					callGraph [ticks [^default = createDVStatistics(30d, 20, 40)]]
+					activityGraph [ticks [^default = createDVStatistics(30d, 20, 40)]]
 				]
 				runnable[
 					name = "r_avgLess"
-					callGraph [ticks [^default = createDVStatistics(10d, 20, 40)]]
+					activityGraph [ticks [^default = createDVStatistics(10d, 20, 40)]]
 				]
 				runnable[
 					name = "r_avgMore"
-					callGraph [ticks [^default = createDVStatistics(50d, 20, 40)]]
+					activityGraph [ticks [^default = createDVStatistics(50d, 20, 40)]]
 				]
 			]
 		]
@@ -413,15 +413,15 @@
 			softwareModel[
 				runnable[
 					name = "r_ok"
-					callGraph [ticks [^default = createDVWeibullED(30d, 1d, 20, 40)]]
+					activityGraph [ticks [^default = createDVWeibullED(30d, 1d, 20, 40)]]
 				]
 				runnable[
 					name = "r_avgLess"
-					callGraph [ticks [^default = createDVWeibullED(10d, 1d, 20, 40)]]
+					activityGraph [ticks [^default = createDVWeibullED(10d, 1d, 20, 40)]]
 				]
 				runnable[
 					name = "r_avgMore"
-					callGraph [ticks [^default = createDVWeibullED(50d, 1d, 20, 40)]]
+					activityGraph [ticks [^default = createDVWeibullED(50d, 1d, 20, 40)]]
 				]
 			]
 		]
@@ -440,11 +440,11 @@
 			softwareModel[
 				runnable[
 					name = "r_ok"
-					callGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 40)]]
+					activityGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 40)]]
 				]
 				runnable[
 					name = "r_more"
-					callGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 10)]]
+					activityGraph [ticks [^default = createDVGaussD(30d, 10d, 20, 10)]]
 				]
 			]
 		]
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.xtend b/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.xtend
index cef64f7..f94b618 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.xtend
+++ b/tests/org.eclipse.app4mc.amalthea.validations.tests/src/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.xtend
@@ -90,18 +90,18 @@
 				modeLabel [name = "ml" mode = _find(EnumMode, "enumerated") initialValue = "first"]
 				runnable [
 					name = "r1"
-					callGraph [modeSwitch [entry [name = "r1_mse_ok" modeCondition [label = _find(ModeLabel, "ml") value = "first" relation = RelationalOperator.EQUAL]]]]]
+					activityGraph [modeSwitch [entry [name = "r1_mse_ok" modeCondition [label = _find(ModeLabel, "ml") value = "first" relation = RelationalOperator.EQUAL]]]]]
 				runnable [
 					name = "r2"
-					callGraph [modeSwitch [entry [name = "r2_mse_notOk" modeCondition [label = _find(ModeLabel, "ml") value = "third" relation = RelationalOperator.EQUAL]]]]
+					activityGraph [modeSwitch [entry [name = "r2_mse_notOk" modeCondition [label = _find(ModeLabel, "ml") value = "third" relation = RelationalOperator.EQUAL]]]]
 				]
 				task [
 					name = "t1"
-					callGraph [modeSwitch [entry [name = "t1_mse_ok" modeCondition [label = _find(ModeLabel, "ml") value = "second" relation = RelationalOperator.EQUAL]]]]
+					activityGraph [modeSwitch [entry [name = "t1_mse_ok" modeCondition [label = _find(ModeLabel, "ml") value = "second" relation = RelationalOperator.EQUAL]]]]
 				]
 				task [
 					name = "t2"
-					callGraph [modeSwitch [entry [name = "t2_mse_notOk" modeCondition [label = _find(ModeLabel, "ml") value = "fourth" relation = RelationalOperator.EQUAL]]]]
+					activityGraph [modeSwitch [entry [name = "t2_mse_notOk" modeCondition [label = _find(ModeLabel, "ml") value = "fourth" relation = RelationalOperator.EQUAL]]]]
 				]
 			]
 		]
@@ -125,28 +125,28 @@
 				modeLabel [name = "ml" mode = _find(EnumMode, "enumerated") initialValue = "first"]
 				runnable [
 					name = "r_ok"
-					callGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
+					activityGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
 						data = _find(ModeLabel, "ml")
 						value = "first"
 					]]
 				]
 				runnable [
 					name = "r_notOk"
-					callGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
+					activityGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
 						data = _find(ModeLabel, "ml")
 						value = "third"
 					]]
 				]
 				task [
 					name = "t_ok"
-					callGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
+					activityGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
 						data = _find(ModeLabel, "ml")
 						value = "second"
 					]]
 				]
 				task [
 					name = "t_notOk"
-					callGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
+					activityGraph [modeLabelAccess [access = ModeLabelAccessEnum.SET
 						data = _find(ModeLabel, "ml")
 						value = "fourth"
 					]]
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.java b/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.java
index 8527c69..a3262b7 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.java
+++ b/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/BasicDistributionTests.java
@@ -14,9 +14,9 @@
 
 import com.google.common.base.Objects;
 import java.util.List;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.ContinuousValueBetaDistribution;
 import org.eclipse.app4mc.amalthea.model.ContinuousValueGaussDistribution;
 import org.eclipse.app4mc.amalthea.model.ContinuousValueStatistics;
@@ -461,46 +461,46 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVBetaD(0.5d, 0.5d, 20l, 40l));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_alphaZero");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVBetaD(0d, 0.5d, 20l, 40l));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_betaZero");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_6 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVBetaD(0.5d, 0d, 20l, 40l));
             };
             this.b3.ticks(it_3, _function_6);
           };
-          this.b3.callGraph(it_2, _function_5);
+          this.b3.activityGraph(it_2, _function_5);
         };
         this.b3.runnable(it_1, _function_4);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_alphabetaZero");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_7 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVBetaD(0d, 0d, 20l, 40l));
             };
             this.b3.ticks(it_3, _function_7);
           };
-          this.b3.callGraph(it_2, _function_6);
+          this.b3.activityGraph(it_2, _function_6);
         };
         this.b3.runnable(it_1, _function_5);
       };
@@ -551,24 +551,24 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVUniformD(20, 40));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_more");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVUniformD(20, 10));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
       };
@@ -594,35 +594,35 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVStatistics(30d, 20, 40));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_avgLess");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVStatistics(10d, 20, 40));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_avgMore");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_6 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVStatistics(50d, 20, 40));
             };
             this.b3.ticks(it_3, _function_6);
           };
-          this.b3.callGraph(it_2, _function_5);
+          this.b3.activityGraph(it_2, _function_5);
         };
         this.b3.runnable(it_1, _function_4);
       };
@@ -650,35 +650,35 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVWeibullED(30d, 1d, 20, 40));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_avgLess");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVWeibullED(10d, 1d, 20, 40));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_avgMore");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_6 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVWeibullED(50d, 1d, 20, 40));
             };
             this.b3.ticks(it_3, _function_6);
           };
-          this.b3.callGraph(it_2, _function_5);
+          this.b3.activityGraph(it_2, _function_5);
         };
         this.b3.runnable(it_1, _function_4);
       };
@@ -706,24 +706,24 @@
       final Procedure1<SWModel> _function_1 = (SWModel it_1) -> {
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_2 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_3 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_3 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_4 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVGaussD(30d, 10d, 20, 40));
             };
             this.b3.ticks(it_3, _function_4);
           };
-          this.b3.callGraph(it_2, _function_3);
+          this.b3.activityGraph(it_2, _function_3);
         };
         this.b3.runnable(it_1, _function_2);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_3 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_more");
-          final Procedure1<CallGraph> _function_4 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_4 = (ActivityGraph it_3) -> {
             final Procedure1<Ticks> _function_5 = (Ticks it_4) -> {
               it_4.setDefault(this.createDVGaussD(30d, 10d, 20, 10));
             };
             this.b3.ticks(it_3, _function_5);
           };
-          this.b3.callGraph(it_2, _function_4);
+          this.b3.activityGraph(it_2, _function_4);
         };
         this.b3.runnable(it_1, _function_3);
       };
diff --git a/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.java b/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.java
index b3a640b..b8d5ce0 100644
--- a/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.java
+++ b/tests/org.eclipse.app4mc.amalthea.validations.tests/xtend-gen/org/eclipse/app4mc/amalthea/validations/tests/SoftwareModelTests.java
@@ -17,9 +17,9 @@
 import java.util.function.Function;
 import java.util.function.Predicate;
 import java.util.stream.Collectors;
+import org.eclipse.app4mc.amalthea.model.ActivityGraph;
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.CallGraph;
 import org.eclipse.app4mc.amalthea.model.EnumMode;
 import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunction;
 import org.eclipse.app4mc.amalthea.model.ModeConditionDisjunctionEntry;
@@ -152,7 +152,7 @@
         this.b2.modeLabel(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r1");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<ModeSwitch> _function_6 = (ModeSwitch it_4) -> {
               final Procedure1<ModeSwitchEntry> _function_7 = (ModeSwitchEntry it_5) -> {
                 it_5.setName("r1_mse_ok");
@@ -167,12 +167,12 @@
             };
             this.b2.modeSwitch(it_3, _function_6);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.runnable(it_1, _function_4);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r2");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<ModeSwitch> _function_7 = (ModeSwitch it_4) -> {
               final Procedure1<ModeSwitchEntry> _function_8 = (ModeSwitchEntry it_5) -> {
                 it_5.setName("r2_mse_notOk");
@@ -187,12 +187,12 @@
             };
             this.b2.modeSwitch(it_3, _function_7);
           };
-          this.b2.callGraph(it_2, _function_6);
+          this.b2.activityGraph(it_2, _function_6);
         };
         this.b2.runnable(it_1, _function_5);
         final Procedure1<Task> _function_6 = (Task it_2) -> {
           it_2.setName("t1");
-          final Procedure1<CallGraph> _function_7 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_7 = (ActivityGraph it_3) -> {
             final Procedure1<ModeSwitch> _function_8 = (ModeSwitch it_4) -> {
               final Procedure1<ModeSwitchEntry> _function_9 = (ModeSwitchEntry it_5) -> {
                 it_5.setName("t1_mse_ok");
@@ -207,12 +207,12 @@
             };
             this.b2.modeSwitch(it_3, _function_8);
           };
-          this.b2.callGraph(it_2, _function_7);
+          this.b2.activityGraph(it_2, _function_7);
         };
         this.b2.task(it_1, _function_6);
         final Procedure1<Task> _function_7 = (Task it_2) -> {
           it_2.setName("t2");
-          final Procedure1<CallGraph> _function_8 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_8 = (ActivityGraph it_3) -> {
             final Procedure1<ModeSwitch> _function_9 = (ModeSwitch it_4) -> {
               final Procedure1<ModeSwitchEntry> _function_10 = (ModeSwitchEntry it_5) -> {
                 it_5.setName("t2_mse_notOk");
@@ -227,7 +227,7 @@
             };
             this.b2.modeSwitch(it_3, _function_9);
           };
-          this.b2.callGraph(it_2, _function_8);
+          this.b2.activityGraph(it_2, _function_8);
         };
         this.b2.task(it_1, _function_7);
       };
@@ -273,7 +273,7 @@
         this.b2.modeLabel(it_1, _function_3);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_4 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_ok");
-          final Procedure1<CallGraph> _function_5 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_5 = (ActivityGraph it_3) -> {
             final Procedure1<ModeLabelAccess> _function_6 = (ModeLabelAccess it_4) -> {
               it_4.setAccess(ModeLabelAccessEnum.SET);
               it_4.setData(this.b1.<ModeLabel>_find(it_4, ModeLabel.class, "ml"));
@@ -281,12 +281,12 @@
             };
             this.b2.modeLabelAccess(it_3, _function_6);
           };
-          this.b2.callGraph(it_2, _function_5);
+          this.b2.activityGraph(it_2, _function_5);
         };
         this.b2.runnable(it_1, _function_4);
         final Procedure1<org.eclipse.app4mc.amalthea.model.Runnable> _function_5 = (org.eclipse.app4mc.amalthea.model.Runnable it_2) -> {
           it_2.setName("r_notOk");
-          final Procedure1<CallGraph> _function_6 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_6 = (ActivityGraph it_3) -> {
             final Procedure1<ModeLabelAccess> _function_7 = (ModeLabelAccess it_4) -> {
               it_4.setAccess(ModeLabelAccessEnum.SET);
               it_4.setData(this.b1.<ModeLabel>_find(it_4, ModeLabel.class, "ml"));
@@ -294,12 +294,12 @@
             };
             this.b2.modeLabelAccess(it_3, _function_7);
           };
-          this.b2.callGraph(it_2, _function_6);
+          this.b2.activityGraph(it_2, _function_6);
         };
         this.b2.runnable(it_1, _function_5);
         final Procedure1<Task> _function_6 = (Task it_2) -> {
           it_2.setName("t_ok");
-          final Procedure1<CallGraph> _function_7 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_7 = (ActivityGraph it_3) -> {
             final Procedure1<ModeLabelAccess> _function_8 = (ModeLabelAccess it_4) -> {
               it_4.setAccess(ModeLabelAccessEnum.SET);
               it_4.setData(this.b1.<ModeLabel>_find(it_4, ModeLabel.class, "ml"));
@@ -307,12 +307,12 @@
             };
             this.b2.modeLabelAccess(it_3, _function_8);
           };
-          this.b2.callGraph(it_2, _function_7);
+          this.b2.activityGraph(it_2, _function_7);
         };
         this.b2.task(it_1, _function_6);
         final Procedure1<Task> _function_7 = (Task it_2) -> {
           it_2.setName("t_notOk");
-          final Procedure1<CallGraph> _function_8 = (CallGraph it_3) -> {
+          final Procedure1<ActivityGraph> _function_8 = (ActivityGraph it_3) -> {
             final Procedure1<ModeLabelAccess> _function_9 = (ModeLabelAccess it_4) -> {
               it_4.setAccess(ModeLabelAccessEnum.SET);
               it_4.setData(this.b1.<ModeLabel>_find(it_4, ModeLabel.class, "ml"));
@@ -320,7 +320,7 @@
             };
             this.b2.modeLabelAccess(it_3, _function_9);
           };
-          this.b2.callGraph(it_2, _function_8);
+          this.b2.activityGraph(it_2, _function_8);
         };
         this.b2.task(it_1, _function_7);
       };
diff --git a/tests/org.eclipse.app4mc.multicore.openmapping.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.multicore.openmapping.tests/META-INF/MANIFEST.MF
index b477d3c..68fb250 100644
--- a/tests/org.eclipse.app4mc.multicore.openmapping.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.multicore.openmapping.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Openmapping - Tests
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.openmapping.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.multicore.openmapping
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit
diff --git a/tests/org.eclipse.app4mc.multicore.sharelibs.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.multicore.sharelibs.tests/META-INF/MANIFEST.MF
index 06e005c..9108b43 100644
--- a/tests/org.eclipse.app4mc.multicore.sharelibs.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.multicore.sharelibs.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Multicore Sharelibs Test
 Bundle-SymbolicName: org.eclipse.app4mc.multicore.sharelibs.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.multicore.sharelibs
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit
diff --git a/tests/org.eclipse.app4mc.rcptt/pom.xml b/tests/org.eclipse.app4mc.rcptt/pom.xml
index 66d0adc..016b613 100644
--- a/tests/org.eclipse.app4mc.rcptt/pom.xml
+++ b/tests/org.eclipse.app4mc.rcptt/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.rcptt</artifactId>
diff --git a/tests/org.eclipse.app4mc.validation.core.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.app4mc.validation.core.tests/META-INF/MANIFEST.MF
index 0d6ad32..bca2633 100644
--- a/tests/org.eclipse.app4mc.validation.core.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.app4mc.validation.core.tests/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: APP4MC Validation Core - Tests
 Bundle-SymbolicName: org.eclipse.app4mc.validation.core.tests
-Bundle-Version: 0.9.6.qualifier
+Bundle-Version: 0.9.7.qualifier
 Fragment-Host: org.eclipse.app4mc.validation.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: org.junit,
diff --git a/tests/pom.xml b/tests/pom.xml
index 5339b31..400fc24 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -8,7 +8,7 @@
 		<relativePath>../build/org.eclipse.app4mc.build/pom.xml</relativePath>
 		<groupId>org.eclipse.app4mc.build</groupId>
 		<artifactId>parent</artifactId>
-		<version>0.9.6-SNAPSHOT</version>
+		<version>0.9.7-SNAPSHOT</version>
 	</parent>
 
 	<artifactId>org.eclipse.app4mc.tests</artifactId>