diff --git a/analysis/build.gradle b/analysis/build.gradle
index 8b5ff86b7dfbfab267a3313ff3257626bb995a4a..8580ba557d6a040e9c2e11aea910ffcc07f4833a 100644
--- a/analysis/build.gradle
+++ b/analysis/build.gradle
@@ -3,3 +3,11 @@ plugins {
     id 'java-library'
 }
 
+dependencies {
+	implementation project(':common')
+
+	implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
+	implementation 'org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.16.0'
+	
+	implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.0'
+}
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/ArchitectureModelManagementFactory.java b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/ArchitectureModelManagementUtils.java
similarity index 69%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/ArchitectureModelManagementFactory.java
rename to analysis/src/main/java/org/oceandsl/analysis/architecture/model/ArchitectureModelManagementUtils.java
index 6ed9aad300006830011cc3faec5a16c8cae3bf32..72e4dfaedbf23b5ea4b6c4d0b5a04b79310c1cca 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/ArchitectureModelManagementFactory.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/ArchitectureModelManagementUtils.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model;
+package org.oceandsl.analysis.architecture.model;
 
 import java.io.File;
 import java.io.IOException;
@@ -56,12 +56,16 @@ import kieker.model.analysismodel.type.TypeModel;
 import kieker.model.analysismodel.type.TypePackage;
 
 /**
+ * Reading and storing model repositories.
+ *
+ * Note: This should be merged with the repository class.
+ *
  * @author Reiner Jung
  * @since 1.1
  */
-public final class ArchitectureModelManagementFactory {
+public final class ArchitectureModelManagementUtils {
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(ArchitectureModelManagementFactory.class);
+    private static final Logger LOGGER = LoggerFactory.getLogger(ArchitectureModelManagementUtils.class);
 
     public static final String TYPE_MODEL_NAME = "type-model.xmi";
 
@@ -75,12 +79,12 @@ public final class ArchitectureModelManagementFactory {
 
     public static final String SOURCES_MODEL_NAME = "sources-model.xmi";
 
-    private ArchitectureModelManagementFactory() {
+    private ArchitectureModelManagementUtils() {
         // TODO Auto-generated constructor stub
     }
 
     public static ModelRepository createModelRepository(final String experimentName, final boolean mapFile) {
-        return ArchitectureModelManagementFactory
+        return ArchitectureModelManagementUtils
                 .createModelRepository(String.format("%s-%s", experimentName, mapFile ? "map" : "file"));
     }
 
@@ -110,37 +114,37 @@ public final class ArchitectureModelManagementFactory {
         packageRegistry.put(AssemblyPackage.eNS_URI, AssemblyPackage.eINSTANCE);
         packageRegistry.put(DeploymentPackage.eNS_URI, DeploymentPackage.eINSTANCE);
         packageRegistry.put(ExecutionPackage.eNS_URI, ExecutionPackage.eINSTANCE);
-        packageRegistry.put(StatisticsPackage.eNS_URI, ArchitectureModelManagementFactory.STATISTICS_MODEL_NAME);
-        packageRegistry.put(SourcesPackage.eNS_URI, ArchitectureModelManagementFactory.SOURCES_MODEL_NAME);
-
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, TypeModel.class, path,
-                ArchitectureModelManagementFactory.TYPE_MODEL_NAME);
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, AssemblyModel.class, path,
-                ArchitectureModelManagementFactory.ASSEMBLY_MODEL_NAME);
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, DeploymentModel.class, path,
-                ArchitectureModelManagementFactory.DEPLOYMENT_MODEL_NAME);
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, ExecutionModel.class, path,
-                ArchitectureModelManagementFactory.EXECUTION_MODEL_NAME);
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, StatisticsModel.class, path,
-                ArchitectureModelManagementFactory.STATISTICS_MODEL_NAME);
-        ArchitectureModelManagementFactory.readModel(resourceSet, repository, SourceModel.class, path,
-                ArchitectureModelManagementFactory.SOURCES_MODEL_NAME);
+        packageRegistry.put(StatisticsPackage.eNS_URI, ArchitectureModelManagementUtils.STATISTICS_MODEL_NAME);
+        packageRegistry.put(SourcesPackage.eNS_URI, ArchitectureModelManagementUtils.SOURCES_MODEL_NAME);
+
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, TypeModel.class, path,
+                ArchitectureModelManagementUtils.TYPE_MODEL_NAME);
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, AssemblyModel.class, path,
+                ArchitectureModelManagementUtils.ASSEMBLY_MODEL_NAME);
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, DeploymentModel.class, path,
+                ArchitectureModelManagementUtils.DEPLOYMENT_MODEL_NAME);
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, ExecutionModel.class, path,
+                ArchitectureModelManagementUtils.EXECUTION_MODEL_NAME);
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, StatisticsModel.class, path,
+                ArchitectureModelManagementUtils.STATISTICS_MODEL_NAME);
+        ArchitectureModelManagementUtils.readModel(resourceSet, repository, SourceModel.class, path,
+                ArchitectureModelManagementUtils.SOURCES_MODEL_NAME);
 
         return repository;
     }
 
     private static <T extends EObject> void readModel(final ResourceSet resourceSet, final ModelRepository repository,
             final Class<T> type, final Path path, final String filename) throws ConfigurationException {
-        ArchitectureModelManagementFactory.LOGGER.info("Loading model {}", filename);
-        final File modelFile = ArchitectureModelManagementFactory.createReadModelFileHandle(path, filename);
+        ArchitectureModelManagementUtils.LOGGER.info("Loading model {}", filename);
+        final File modelFile = ArchitectureModelManagementUtils.createReadModelFileHandle(path, filename);
         if (modelFile.exists()) {
             final Resource resource = resourceSet.getResource(URI.createFileURI(modelFile.getAbsolutePath()), true);
             for (final Diagnostic error : resource.getErrors()) {
-                ArchitectureModelManagementFactory.LOGGER.error("Error loading '{}' of {}:{}  {}", filename,
+                ArchitectureModelManagementUtils.LOGGER.error("Error loading '{}' of {}:{}  {}", filename,
                         error.getLocation(), error.getLine(), error.getMessage());
             }
             for (final Diagnostic error : resource.getWarnings()) {
-                ArchitectureModelManagementFactory.LOGGER.error("Warning loading '{}' of {}:{}  {}", filename,
+                ArchitectureModelManagementUtils.LOGGER.error("Warning loading '{}' of {}:{}  {}", filename,
                         error.getLocation(), error.getLine(), error.getMessage());
             }
             repository.register(type, resource.getContents().get(0));
@@ -149,7 +153,7 @@ public final class ArchitectureModelManagementFactory {
                 i.next().eCrossReferences();
             }
         } else {
-            ArchitectureModelManagementFactory.LOGGER.error("Error reading model file {}. File does not exist.",
+            ArchitectureModelManagementUtils.LOGGER.error("Error reading model file {}. File does not exist.",
                     modelFile.getAbsoluteFile());
             throw new ConfigurationException(
                     String.format("Error reading model file %s. File does not exist.", modelFile.getAbsoluteFile()));
@@ -170,25 +174,25 @@ public final class ArchitectureModelManagementFactory {
             Files.createDirectory(outputDirectory);
         }
 
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.TYPE_MODEL_NAME, repository.getModel(TypeModel.class));
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.ASSEMBLY_MODEL_NAME, repository.getModel(AssemblyModel.class));
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.DEPLOYMENT_MODEL_NAME, repository.getModel(DeploymentModel.class));
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.EXECUTION_MODEL_NAME, repository.getModel(ExecutionModel.class));
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.STATISTICS_MODEL_NAME, repository.getModel(StatisticsModel.class));
-        ArchitectureModelManagementFactory.writeModel(resourceSet, outputDirectory,
-                ArchitectureModelManagementFactory.SOURCES_MODEL_NAME, repository.getModel(SourceModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.TYPE_MODEL_NAME, repository.getModel(TypeModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.ASSEMBLY_MODEL_NAME, repository.getModel(AssemblyModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.DEPLOYMENT_MODEL_NAME, repository.getModel(DeploymentModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.EXECUTION_MODEL_NAME, repository.getModel(ExecutionModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.STATISTICS_MODEL_NAME, repository.getModel(StatisticsModel.class));
+        ArchitectureModelManagementUtils.writeModel(resourceSet, outputDirectory,
+                ArchitectureModelManagementUtils.SOURCES_MODEL_NAME, repository.getModel(SourceModel.class));
     }
 
     private static <T extends EObject> void writeModel(final ResourceSet resourceSet, final Path outputDirectory,
             final String filename, final T model) {
-        ArchitectureModelManagementFactory.LOGGER.info("Saving model {}", filename);
+        ArchitectureModelManagementUtils.LOGGER.info("Saving model {}", filename);
 
-        final File modelFile = ArchitectureModelManagementFactory.createWriteModelFileHandle(outputDirectory, filename);
+        final File modelFile = ArchitectureModelManagementUtils.createWriteModelFileHandle(outputDirectory, filename);
 
         final Resource resource = resourceSet.createResource(URI.createURI(modelFile.getAbsolutePath()));
         resource.getContents().add(model);
@@ -196,7 +200,7 @@ public final class ArchitectureModelManagementFactory {
         try {
             resource.save(Collections.EMPTY_MAP);
         } catch (final IOException e) {
-            ArchitectureModelManagementFactory.LOGGER.error("Cannot write {} model to storage. Cause: {}",
+            ArchitectureModelManagementUtils.LOGGER.error("Cannot write {} model to storage. Cause: {}",
                     modelFile.getAbsoluteFile(), e.getLocalizedMessage());
         }
     }
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/RepositoryUtils.java b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/RepositoryUtils.java
similarity index 99%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/RepositoryUtils.java
rename to analysis/src/main/java/org/oceandsl/analysis/architecture/model/RepositoryUtils.java
index 1aebadf135c001383ae3d6a7af9af6584c63600a..a401d0aa9b68ead6ab5786c39bc3c9500d286a3a 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/RepositoryUtils.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/RepositoryUtils.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages.utils;
+package org.oceandsl.analysis.architecture.model;
 
 import java.util.List;
 
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/package-info.java
similarity index 93%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/package-info.java
rename to analysis/src/main/java/org/oceandsl/analysis/architecture/model/package-info.java
index 78aa7634e21a61ddea029dc8ab04a2dca4b8f222..63fa705b5211c125437cdb6f86af5dbb6ce5d72e 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/package-info.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/architecture/model/package-info.java
@@ -13,4 +13,4 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
\ No newline at end of file
+package org.oceandsl.analysis.architecture.model;
\ No newline at end of file
diff --git a/analysis/src/main/java/org/oceandsl/analysis/RewriteBeforeAndAfterEventsStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/RewriteBeforeAndAfterEventsStage.java
similarity index 99%
rename from analysis/src/main/java/org/oceandsl/analysis/RewriteBeforeAndAfterEventsStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/RewriteBeforeAndAfterEventsStage.java
index 67ae610ab26d05b533dd4c323baba0a4fe8b6775..a3ddc7c80f32f29daa3b20cbf5311572d57aaa40 100644
--- a/analysis/src/main/java/org/oceandsl/analysis/RewriteBeforeAndAfterEventsStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/RewriteBeforeAndAfterEventsStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.analysis;
+package org.oceandsl.analysis.stages.dynamic;
 
 import java.io.BufferedReader;
 import java.io.File;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/package-info.java
similarity index 94%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/package-info.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/package-info.java
index 6b007ff69b4cdb8052e5964e7b882fbd82845ba2..f50518048d1f6782cad8937b982dc02004edd5ac 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/package-info.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/dynamic/package-info.java
@@ -13,4 +13,4 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
\ No newline at end of file
+package org.oceandsl.analysis.stages.dynamic;
\ No newline at end of file
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountEventsStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/CountEventsStage.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountEventsStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/generic/CountEventsStage.java
index ae4f7334de0fd389fec15bc52b2e5974e35b0753..ecfd5494eea61dedbe46fd43ba81544c85a3481e 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountEventsStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/CountEventsStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.generic;
 
 import teetime.stage.basic.AbstractFilter;
 
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/TableCSVSink.java b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/TableCSVSink.java
similarity index 94%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/TableCSVSink.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/generic/TableCSVSink.java
index 27a77066bcc7bb299ec4a11e6d942f1aecdf267b..9b4c8110e2bf3801cefba5595412228ed02cce97 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/TableCSVSink.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/TableCSVSink.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages.sinks;
+package org.oceandsl.analysis.stages.generic;
 
 import java.io.BufferedWriter;
 import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.data.table.Table;
+import org.oceandsl.analysis.stages.staticdata.data.Table;
 
 import teetime.framework.AbstractConsumerStage;
 
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/package-info.java
similarity index 93%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/package-info.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/generic/package-info.java
index 5180ce177e19ab7458fa8c0fa3cf77b6e0669353..ba52c9205ef5da701076210d6e47f6f5079274ce 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/package-info.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/generic/package-info.java
@@ -13,4 +13,4 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages.utils;
\ No newline at end of file
+package org.oceandsl.analysis.stages.generic;
\ No newline at end of file
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountUniqueCallsStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/CountUniqueCallsStage.java
similarity index 98%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountUniqueCallsStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/model/CountUniqueCallsStage.java
index 6140d82e06a8f639f90a859323228649fd504651..2544bb33d703e052342ff0144600600a5ffd222b 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CountUniqueCallsStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/CountUniqueCallsStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.model;
 
 import java.util.Map.Entry;
 import java.util.function.Function;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelRepositoryProducerStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelRepositoryProducerStage.java
similarity index 85%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelRepositoryProducerStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelRepositoryProducerStage.java
index 8af6c8a8c943de9a34574c8a74ec2d7720bc6ab6..55de2f6553c3b67fd17a277376667a8cbd9dac57 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelRepositoryProducerStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelRepositoryProducerStage.java
@@ -13,11 +13,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.model;
 
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
 
 import kieker.analysis.stage.model.ModelRepository;
 import teetime.framework.AbstractProducerStage;
@@ -36,7 +36,7 @@ public class ModelRepositoryProducerStage extends AbstractProducerStage<ModelRep
 
     @Override
     protected void execute() throws Exception {
-        this.outputPort.send(ArchitectureModelManagementFactory.loadModelRepository(this.path));
+        this.outputPort.send(ArchitectureModelManagementUtils.loadModelRepository(this.path));
         this.workCompleted();
     }
 
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelSerializerStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelSerializerStage.java
similarity index 99%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelSerializerStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelSerializerStage.java
index 5f233aa3f8b43c571056efa08a104d7962b430ee..2c2769d24c673bdcdf56dbf757f2fabc9a738995 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ModelSerializerStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/ModelSerializerStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.model;
 
 import java.io.File;
 import java.io.IOException;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/TriggerToModelSnapshotStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/TriggerToModelSnapshotStage.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/TriggerToModelSnapshotStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/model/TriggerToModelSnapshotStage.java
index b96fda23b7817405f08ce9435e3190002566071e..e055607d2481eac603caf3fa3f420f3f811ac341 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/TriggerToModelSnapshotStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/TriggerToModelSnapshotStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.model;
 
 import java.util.Map.Entry;
 
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/OperationCall.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/data/OperationCall.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/OperationCall.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/model/data/OperationCall.java
index 9714e899e80895cce7ac4091a833d12a32ba52e9..f26d27f1acae7bce3190d5ff83fa94f017305dc3 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/OperationCall.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/data/OperationCall.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.model.data;
 
 import kieker.model.analysismodel.deployment.DeployedOperation;
 
diff --git a/analysis/src/main/java/org/oceandsl/analysis/stages/model/data/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/data/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..2b22d4b1743ef1e17a532ed0320f63d0447a839d
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/data/package-info.java
@@ -0,0 +1,16 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.stages.model.data;
\ No newline at end of file
diff --git a/analysis/src/main/java/org/oceandsl/analysis/stages/model/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/model/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..6160c1c097cd29d0e4f6cb9460df100e2128453b
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/model/package-info.java
@@ -0,0 +1,16 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.stages.model;
\ No newline at end of file
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVReaderStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVComponentMapReaderStage.java
similarity index 68%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVReaderStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVComponentMapReaderStage.java
index e806b4c0a569310e45a7afb2693fc1979bc6913a..9569af26daeb42a9c6b2edb51cceacfd8af22825 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVReaderStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVComponentMapReaderStage.java
@@ -13,28 +13,45 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.staticdata;
 
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.data.table.StringValueHandler;
-import org.oceandsl.architecture.model.data.table.Table;
+import org.oceandsl.analysis.stages.staticdata.data.StringValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.Table;
 
 import teetime.framework.AbstractProducerStage;
 
 /**
+ * Read a CSV file containing a component map.
+ *
+ * Note: Should use a generic CSV reader parent class.
+ *
  * @author Reiner Jung
  * @since 1.0
  */
-public class CSVReaderStage extends AbstractProducerStage<Table> {
+public class CSVComponentMapReaderStage extends AbstractProducerStage<Table> {
 
     private final BufferedReader reader;
+    private final String seperator;
 
-    public CSVReaderStage(final Path path) throws IOException {
+    /**
+     * Create reader stage.
+     *
+     * @param path
+     *            path to file
+     * @param separator
+     *            separator character
+     *
+     * @throws IOException
+     *             on io exceptions
+     */
+    public CSVComponentMapReaderStage(final Path path, final String separator) throws IOException {
         this.reader = Files.newBufferedReader(path);
+        this.seperator = separator;
     }
 
     @Override
@@ -43,7 +60,7 @@ public class CSVReaderStage extends AbstractProducerStage<Table> {
                 new StringValueHandler("File"), new StringValueHandler("Function"));
         String line;
         while ((line = this.reader.readLine()) != null) {
-            final String[] values = line.split(",");
+            final String[] values = line.split(this.seperator);
             if (values.length == 3) {
                 resultTable.addRow(values[0].trim(), values[1].trim().toLowerCase(), values[2].trim().toLowerCase());
             } else {
diff --git a/analysis/src/main/java/org/oceandsl/analysis/CSVFunctionCallReaderStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVFunctionCallReaderStage.java
similarity index 95%
rename from analysis/src/main/java/org/oceandsl/analysis/CSVFunctionCallReaderStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVFunctionCallReaderStage.java
index f43396b014233c8590facf457e48a725656cfeae..e89ddf25a77ebd8bbe3ff8966fa5638840b4ab34 100644
--- a/analysis/src/main/java/org/oceandsl/analysis/CSVFunctionCallReaderStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVFunctionCallReaderStage.java
@@ -13,13 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.analysis;
+package org.oceandsl.analysis.stages.staticdata;
 
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
+
 import teetime.framework.AbstractProducerStage;
 
 /**
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVMapperStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVMapperStage.java
similarity index 89%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVMapperStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVMapperStage.java
index 1a91f3e618e89c7bdec683662e31b6a5e53fe6e9..209d28295e87bffd52b48688ca08a029be6216c9 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/CSVMapperStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/CSVMapperStage.java
@@ -13,13 +13,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.staticdata;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import teetime.stage.basic.AbstractFilter;
 
 /**
+ * Make names all lower case when case insensitive is requested.
+ *
  * @author Reiner Jung
  * @since 1.0
  *
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/OperationCallFixPathStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/OperationCallFixPathStage.java
similarity index 96%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/OperationCallFixPathStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/OperationCallFixPathStage.java
index ef52e8ba114c72dc3a75693e9c4e5d793933700e..b44b69c0359acebe29d0011bf622b2afaeae51fd 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/OperationCallFixPathStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/OperationCallFixPathStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.staticdata;
 
 import java.io.BufferedReader;
 import java.io.IOException;
@@ -24,7 +24,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import teetime.framework.OutputPort;
 import teetime.stage.basic.AbstractFilter;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ProduceBeforeAndAfterEventsFromOperationCallsStage.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/ProduceBeforeAndAfterEventsFromOperationCallsStage.java
similarity index 98%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ProduceBeforeAndAfterEventsFromOperationCallsStage.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/ProduceBeforeAndAfterEventsFromOperationCallsStage.java
index 06a307bb15dfa134b2eca56e4731dcbfa7d07381..1f4fab6f15191260446f71c837f7207decaacc1b 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/ProduceBeforeAndAfterEventsFromOperationCallsStage.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/ProduceBeforeAndAfterEventsFromOperationCallsStage.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages;
+package org.oceandsl.analysis.stages.staticdata;
 
 import org.oceandsl.common.OperationCallEvent;
 
diff --git a/analysis/src/main/java/org/oceandsl/analysis/CallerCallee.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/CallerCallee.java
similarity index 61%
rename from analysis/src/main/java/org/oceandsl/analysis/CallerCallee.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/CallerCallee.java
index 1e46eabe34fa89b215567546dfdea6cdcf08dd59..85fae950cdb4d2e7b14a0f6b32041f312132e28c 100644
--- a/analysis/src/main/java/org/oceandsl/analysis/CallerCallee.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/CallerCallee.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.analysis;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
@@ -57,4 +57,33 @@ public class CallerCallee {
     public void setTargetPath(final String targetPath) {
         this.targetPath = targetPath;
     }
+
+    @Override
+    public boolean equals(final Object object) {
+        if (object instanceof CallerCallee) {
+            final CallerCallee other = (CallerCallee) object;
+            return this.checkString(this.sourcePath, other.getSourcePath())
+                    && this.checkString(this.caller, other.getCaller())
+                    && this.checkString(this.targetPath, other.getTargetPath())
+                    && this.checkString(this.callee, other.getCallee());
+        } else {
+            return false;
+        }
+    }
+
+    private boolean checkString(final String left, final String right) {
+        if (left == null && right == null) {
+            return true;
+        } else if (left != null && right != null) {
+            return left.equals(right);
+        } else {
+            return false;
+        }
+    }
+
+    @Override
+    public int hashCode() {
+        return this.sourcePath.hashCode() ^ this.caller.hashCode() ^ this.targetPath.hashCode()
+                ^ this.callee.hashCode();
+    }
 }
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IValueHandler.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IValueHandler.java
similarity index 95%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IValueHandler.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IValueHandler.java
index 62d9a67d963ceee37eb74dab2a320667bebdaec1..d667bd9b57180346f6ecb62b86d68938f22e6f46 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IValueHandler.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IValueHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IntegerValueHandler.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IntegerValueHandler.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IntegerValueHandler.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IntegerValueHandler.java
index 22d6f6975b6e873cf56f197b44de1a5920204fc3..c29f68a5b6dc060a8d4b27c38179f6ccc333a446 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/IntegerValueHandler.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/IntegerValueHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/LongValueHandler.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/LongValueHandler.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/LongValueHandler.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/LongValueHandler.java
index 3a0800b72fa73a334a7606597f22d3a328a63a2e..0db3e9a240343859292d6a7a450820d979ba7c9b 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/LongValueHandler.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/LongValueHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/StringValueHandler.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/StringValueHandler.java
similarity index 96%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/StringValueHandler.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/StringValueHandler.java
index 3274e4d76f218255b3ba6e48a8e918c04b25a18b..e36984c660bb05349943b92721d3c65f2495fc53 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/StringValueHandler.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/StringValueHandler.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/Table.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/Table.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/Table.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/Table.java
index 4ba278e3ebbcb2e30b7f111ce3dbbd8894ec49ab..66327de7d49885183e22956238730698d4c694ab 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/Table.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/Table.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 import java.util.ArrayList;
 import java.util.List;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/ValueConversionErrorException.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/ValueConversionErrorException.java
similarity index 95%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/ValueConversionErrorException.java
rename to analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/ValueConversionErrorException.java
index 8e764e5a9bfc456fc60ec4c0b590206c15222fd9..bf4d993a882064c8cbf6b331f419cd628bf71e6d 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/data/table/ValueConversionErrorException.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/ValueConversionErrorException.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.data.table;
+package org.oceandsl.analysis.stages.staticdata.data;
 
 /**
  * @author Reiner Jung
diff --git a/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..332692a26dfe86f9fa96e6e8835ef6e4f2617855
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/data/package-info.java
@@ -0,0 +1,16 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.stages.staticdata.data;
\ No newline at end of file
diff --git a/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/package-info.java
new file mode 100644
index 0000000000000000000000000000000000000000..64ad27c5ee359e34c51297ece0993578e2871108
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/stages/staticdata/package-info.java
@@ -0,0 +1,16 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.stages.staticdata;
\ No newline at end of file
diff --git a/analysis/src/main/java/org/oceandsl/analysis/utils/FunctionNameValueConverter.java b/analysis/src/main/java/org/oceandsl/analysis/utils/FunctionNameValueConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..24a134fc2caa124d90591e95cfb0c527c72e6ac3
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/utils/FunctionNameValueConverter.java
@@ -0,0 +1,42 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.utils;
+
+/**
+ * In Fortran the compiler might suffix function names in the object file with an _. To remove this
+ * and bring the name in alignment with the source code again, the _ is removed by the @{link
+ * IValueConverter}.
+ *
+ * @author Reiner Jung
+ * @since 1.1
+ *
+ */
+public class FunctionNameValueConverter extends StringValueConverter {
+
+    public FunctionNameValueConverter(final boolean caseInsenstive, final int column) {
+        super(caseInsenstive, column);
+    }
+
+    @Override
+    public String createValue(final String[] input) {
+        final String value = super.createValue(input);
+        if (value.endsWith("_")) {
+            return value.substring(0, value.length() - 1);
+        } else {
+            return value;
+        }
+    }
+}
diff --git a/analysis/src/main/java/org/oceandsl/analysis/utils/IValueConverter.java b/analysis/src/main/java/org/oceandsl/analysis/utils/IValueConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..e9b71b5a46614c6299c23d055b32a9c51c6115a0
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/utils/IValueConverter.java
@@ -0,0 +1,27 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.utils;
+
+/**
+ * Create an object from a given set of text input fields.
+ *
+ * @author Reiner Jung
+ * @since 1.1
+ */
+public interface IValueConverter<T> {
+
+    T createValue(String[] input);
+}
diff --git a/analysis/src/main/java/org/oceandsl/analysis/utils/MapFileReader.java b/analysis/src/main/java/org/oceandsl/analysis/utils/MapFileReader.java
new file mode 100644
index 0000000000000000000000000000000000000000..9ad16e50badbad8e6f0fbd925981da9ddd1ee0d5
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/utils/MapFileReader.java
@@ -0,0 +1,70 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.utils;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Map;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Read a 2+n column file into a map. First column represents the key, all other the parameter of
+ * the value.
+ *
+ * @author Reiner Jung
+ * @since 1.1
+ */
+public class MapFileReader<T, R> {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+    private final BufferedReader reader;
+    private final Map<T, R> map;
+    private final String separator;
+
+    private final IValueConverter<T> keyConverter;
+
+    private final IValueConverter<R> valueConverter;
+
+    public MapFileReader(final Path mapFilePath, final String separator, final Map<T, R> map,
+            final IValueConverter<T> keyConverter, final IValueConverter<R> valueConverter) throws IOException {
+        this.reader = Files.newBufferedReader(mapFilePath);
+        this.separator = separator;
+        this.keyConverter = keyConverter;
+        this.valueConverter = valueConverter;
+        this.map = map;
+    }
+
+    public void read() throws IOException {
+        String line;
+        while ((line = this.reader.readLine()) != null) {
+            final String[] values = line.split(this.separator);
+            if (values.length >= 2) {
+                for (final String value : values) {
+                    value.trim();
+                }
+                this.map.put(this.keyConverter.createValue(values), this.valueConverter.createValue(values));
+            } else {
+                this.logger.error("Entry incomplete '{}'", line.trim());
+            }
+        }
+        this.reader.close();
+    }
+}
diff --git a/analysis/src/main/java/org/oceandsl/analysis/utils/StringValueConverter.java b/analysis/src/main/java/org/oceandsl/analysis/utils/StringValueConverter.java
new file mode 100644
index 0000000000000000000000000000000000000000..458bb9938a04be67dd615884f73378bb47e61266
--- /dev/null
+++ b/analysis/src/main/java/org/oceandsl/analysis/utils/StringValueConverter.java
@@ -0,0 +1,38 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.analysis.utils;
+
+/**
+ * Select and convert a string for the @{link MapFileReader}.
+ *
+ * @author Reiner Jung
+ * @since 1.1
+ */
+public class StringValueConverter implements IValueConverter<String> {
+
+    private final boolean caseInsensitive;
+    private final int column;
+
+    public StringValueConverter(final boolean caseInsenstive, final int column) {
+        this.caseInsensitive = caseInsenstive;
+        this.column = column;
+    }
+
+    @Override
+    public String createValue(final String[] input) {
+        return this.caseInsensitive ? input[this.column].toLowerCase() : input[this.column];
+    }
+}
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/package-info.java b/analysis/src/main/java/org/oceandsl/analysis/utils/package-info.java
similarity index 95%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/package-info.java
rename to analysis/src/main/java/org/oceandsl/analysis/utils/package-info.java
index 0a04cf514664a102f2c8ef369a388286cdb9d051..b56d84a91909f1aeabc9fdba58a2ba26914be926 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/package-info.java
+++ b/analysis/src/main/java/org/oceandsl/analysis/utils/package-info.java
@@ -13,4 +13,4 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model;
\ No newline at end of file
+package org.oceandsl.analysis.utils;
\ No newline at end of file
diff --git a/settings.gradle b/settings.gradle
index 9034a46d36f259531cd5e54b7d9d5fe885c7ed47..4d199536ac4b72e07f25ccd5ff9c167dea27d3b2 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -12,7 +12,6 @@ rootProject.name = 'oceandsl-tools'
 include 'common'
 include 'analysis'
 include 'tools:rewrite-log-entries'
-include 'tools:create-architecture-model'
 include 'tools:pp-static-log'
 include 'tools:sar'
 include 'tools:dar'
diff --git a/tools/cmi/build.gradle b/tools/cmi/build.gradle
index 132a17d2598ac942ecd081652283a50cf4862ea4..2a7227dc5887c16817688bd23f90436c044ccd6c 100644
--- a/tools/cmi/build.gradle
+++ b/tools/cmi/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
diff --git a/tools/cmi/src/main/java/org/oceandsl/tools/cmi/CheckModelIntegrityMain.java b/tools/cmi/src/main/java/org/oceandsl/tools/cmi/CheckModelIntegrityMain.java
index 8a9b1885b8a26221beb346b99953ceec9681a22d..705ba7053a734243c27e540437ac1a8950670eb9 100644
--- a/tools/cmi/src/main/java/org/oceandsl/tools/cmi/CheckModelIntegrityMain.java
+++ b/tools/cmi/src/main/java/org/oceandsl/tools/cmi/CheckModelIntegrityMain.java
@@ -29,8 +29,8 @@ import org.eclipse.emf.ecore.EAttribute;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.EReference;
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
-import org.oceandsl.architecture.model.stages.utils.RepositoryUtils;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
+import org.oceandsl.analysis.architecture.model.RepositoryUtils;
 
 import kieker.analysis.stage.model.ModelRepository;
 import kieker.common.exception.ConfigurationException;
@@ -57,7 +57,7 @@ public class CheckModelIntegrityMain {
 
     public static void main(final String[] args) throws ConfigurationException {
         final Path path = Paths.get(args[0]);
-        final ModelRepository repository = ArchitectureModelManagementFactory.loadModelRepository(path);
+        final ModelRepository repository = ArchitectureModelManagementUtils.loadModelRepository(path);
         // RepositoryUtils.print(repository);
 
         long errors = 0;
diff --git a/tools/create-architecture-model/build.gradle b/tools/create-architecture-model/build.gradle
deleted file mode 100644
index 2de934ad0a228f08e66f875546216fd898068aa1..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/build.gradle
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * This file was generated by the Gradle 'init' task.
- *
- * This generated file contains a sample Java project to get you started.
- * For more details take a look at the Java Quickstart chapter in the Gradle
- * User Manual available at https://docs.gradle.org/6.5/userguide/tutorial_java_projects.html
- */
-
-plugins {
-    id 'java'
-}
-
-dependencies {
-    implementation project(':common')
-    implementation project(':analysis')
-    // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
-    implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
-    implementation 'org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.16.0'
-    
-//    runtime 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
-    
-    implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.0'
-    
-    implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
-    implementation 'com.sun.xml.bind:jaxb-impl:2.3.3'
-    implementation 'org.apache.commons:commons-compress:1.20'
-}
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/CallerCalleeTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/CallerCalleeTrace.java
deleted file mode 100644
index 034c06feaa5d757ea49416e790316cd310959370..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/CallerCalleeTrace.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Caller Callee Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCaller <em>Caller</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCallee <em>Callee</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getCallerCalleeTrace()
- * @model
- * @generated
- */
-public interface CallerCalleeTrace extends EdgeReference {
-    /**
-     * Returns the value of the '<em><b>Caller</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Caller</em>' attribute.
-     * @see #setCaller(Object)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getCallerCalleeTrace_Caller()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Object getCaller();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCaller <em>Caller</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Caller</em>' attribute.
-     * @see #getCaller()
-     * @generated
-     */
-    void setCaller(Object value);
-
-    /**
-     * Returns the value of the '<em><b>Callee</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Callee</em>' attribute.
-     * @see #setCallee(Object)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getCallerCalleeTrace_Callee()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Object getCallee();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCallee <em>Callee</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Callee</em>' attribute.
-     * @see #getCallee()
-     * @generated
-     */
-    void setCallee(Object value);
-
-} // CallerCalleeTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EModuleKind.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EModuleKind.java
deleted file mode 100644
index c764cb12bd14159f2349b12d32f86def3aee7ef4..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EModuleKind.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.emf.common.util.Enumerator;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the literals of the enumeration '<em><b>EModule Kind</b></em>',
- * and utility methods for working with them.
- * <!-- end-user-doc -->
- * @see org.oceandsl.hypergraph.HypergraphPackage#getEModuleKind()
- * @model
- * @generated
- */
-public enum EModuleKind implements Enumerator {
-    /**
-     * The '<em><b>SYSTEM</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #SYSTEM_VALUE
-     * @generated
-     * @ordered
-     */
-    SYSTEM(0, "SYSTEM", "SYSTEM"),
-
-    /**
-     * The '<em><b>FRAMEWORK</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #FRAMEWORK_VALUE
-     * @generated
-     * @ordered
-     */
-    FRAMEWORK(1, "FRAMEWORK", "FRAMEWORK"),
-
-    /**
-     * The '<em><b>ANONYMOUS</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #ANONYMOUS_VALUE
-     * @generated
-     * @ordered
-     */
-    ANONYMOUS(2, "ANONYMOUS", "ANONYMOUS"),
-
-    /**
-     * The '<em><b>INTERFACE</b></em>' literal object.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #INTERFACE_VALUE
-     * @generated
-     * @ordered
-     */
-    INTERFACE(3, "INTERFACE", "INTERFACE");
-
-    /**
-     * The '<em><b>SYSTEM</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #SYSTEM
-     * @model
-     * @generated
-     * @ordered
-     */
-    public static final int SYSTEM_VALUE = 0;
-
-    /**
-     * The '<em><b>FRAMEWORK</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #FRAMEWORK
-     * @model
-     * @generated
-     * @ordered
-     */
-    public static final int FRAMEWORK_VALUE = 1;
-
-    /**
-     * The '<em><b>ANONYMOUS</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #ANONYMOUS
-     * @model
-     * @generated
-     * @ordered
-     */
-    public static final int ANONYMOUS_VALUE = 2;
-
-    /**
-     * The '<em><b>INTERFACE</b></em>' literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #INTERFACE
-     * @model
-     * @generated
-     * @ordered
-     */
-    public static final int INTERFACE_VALUE = 3;
-
-    /**
-     * An array of all the '<em><b>EModule Kind</b></em>' enumerators.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private static final EModuleKind[] VALUES_ARRAY =
-        new EModuleKind[] {
-            SYSTEM,
-            FRAMEWORK,
-            ANONYMOUS,
-            INTERFACE,
-        };
-
-    /**
-     * A public read-only list of all the '<em><b>EModule Kind</b></em>' enumerators.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public static final List<EModuleKind> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));
-
-    /**
-     * Returns the '<em><b>EModule Kind</b></em>' literal with the specified literal value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param literal the literal.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static EModuleKind get(String literal) {
-        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-            EModuleKind result = VALUES_ARRAY[i];
-            if (result.toString().equals(literal)) {
-                return result;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the '<em><b>EModule Kind</b></em>' literal with the specified name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param name the name.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static EModuleKind getByName(String name) {
-        for (int i = 0; i < VALUES_ARRAY.length; ++i) {
-            EModuleKind result = VALUES_ARRAY[i];
-            if (result.getName().equals(name)) {
-                return result;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Returns the '<em><b>EModule Kind</b></em>' literal with the specified integer value.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the integer value.
-     * @return the matching enumerator or <code>null</code>.
-     * @generated
-     */
-    public static EModuleKind get(int value) {
-        switch (value) {
-            case SYSTEM_VALUE: return SYSTEM;
-            case FRAMEWORK_VALUE: return FRAMEWORK;
-            case ANONYMOUS_VALUE: return ANONYMOUS;
-            case INTERFACE_VALUE: return INTERFACE;
-        }
-        return null;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final int value;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final String name;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private final String literal;
-
-    /**
-     * Only this class can construct instances.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EModuleKind(int value, String name, String literal) {
-        this.value = value;
-        this.name = name;
-        this.literal = literal;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public int getValue() {
-      return value;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getName() {
-      return name;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getLiteral() {
-      return literal;
-    }
-
-    /**
-     * Returns the literal value of the enumerator, which is its string representation.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String toString() {
-        return literal;
-    }
-    
-} //EModuleKind
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Edge.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Edge.java
deleted file mode 100644
index b54f55200b9d2c8ad947b9ef1ff008b1c5dcf569..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Edge.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Edge</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.Edge#getDerivedFrom <em>Derived From</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getEdge()
- * @model
- * @generated
- */
-public interface Edge extends NamedElement {
-    /**
-     * Returns the value of the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Derived From</em>' containment reference.
-     * @see #setDerivedFrom(EdgeReference)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getEdge_DerivedFrom()
-     * @model containment="true" required="true"
-     * @generated
-     */
-    EdgeReference getDerivedFrom();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.Edge#getDerivedFrom <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Derived From</em>' containment reference.
-     * @see #getDerivedFrom()
-     * @generated
-     */
-    void setDerivedFrom(EdgeReference value);
-
-} // Edge
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeReference.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeReference.java
deleted file mode 100644
index 10eee77ac8bad6c0276261eb8d433486facae5de..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeReference.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Edge Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getEdgeReference()
- * @model
- * @generated
- */
-public interface EdgeReference extends EObject {
-} // EdgeReference
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeTrace.java
deleted file mode 100644
index e07a34a5429a41acf57663ba32a2ca4bea2241bb..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/EdgeTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Edge Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.EdgeTrace#getEdge <em>Edge</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getEdgeTrace()
- * @model
- * @generated
- */
-public interface EdgeTrace extends EdgeReference {
-    /**
-     * Returns the value of the '<em><b>Edge</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Edge</em>' reference.
-     * @see #setEdge(Edge)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getEdgeTrace_Edge()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Edge getEdge();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.EdgeTrace#getEdge <em>Edge</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Edge</em>' reference.
-     * @see #getEdge()
-     * @generated
-     */
-    void setEdge(Edge value);
-
-} // EdgeTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/FieldTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/FieldTrace.java
deleted file mode 100644
index c927ad9f730ac537cef6fbe1b301bc3461bc7e1d..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/FieldTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Field Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.FieldTrace#getField <em>Field</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getFieldTrace()
- * @model
- * @generated
- */
-public interface FieldTrace extends EdgeReference {
-    /**
-     * Returns the value of the '<em><b>Field</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Field</em>' attribute.
-     * @see #setField(Object)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getFieldTrace_Field()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Object getField();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.FieldTrace#getField <em>Field</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Field</em>' attribute.
-     * @see #getField()
-     * @generated
-     */
-    void setField(Object value);
-
-} // FieldTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/GenericTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/GenericTrace.java
deleted file mode 100644
index 24f3cb7cf985ac73a3e345a56ae6593d5a7c001a..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/GenericTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Generic Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.GenericTrace#getResourceId <em>Resource Id</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getGenericTrace()
- * @model
- * @generated
- */
-public interface GenericTrace extends NodeReference, EdgeReference, ModuleReference {
-    /**
-     * Returns the value of the '<em><b>Resource Id</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Resource Id</em>' attribute.
-     * @see #setResourceId(String)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getGenericTrace_ResourceId()
-     * @model required="true"
-     * @generated
-     */
-    String getResourceId();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.GenericTrace#getResourceId <em>Resource Id</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Resource Id</em>' attribute.
-     * @see #getResourceId()
-     * @generated
-     */
-    void setResourceId(String value);
-
-} // GenericTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Hypergraph.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Hypergraph.java
deleted file mode 100644
index 16d4fa9b24bef757a758b5988a80fba5b720f20c..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Hypergraph.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.common.util.EList;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Hypergraph</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.Hypergraph#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.Hypergraph#getEdges <em>Edges</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getHypergraph()
- * @model
- * @generated
- */
-public interface Hypergraph extends EObject {
-    /**
-     * Returns the value of the '<em><b>Nodes</b></em>' containment reference list.
-     * The list contents are of type {@link org.oceandsl.hypergraph.Node}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Nodes</em>' containment reference list.
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getHypergraph_Nodes()
-     * @model containment="true"
-     * @generated
-     */
-    EList<Node> getNodes();
-
-    /**
-     * Returns the value of the '<em><b>Edges</b></em>' containment reference list.
-     * The list contents are of type {@link org.oceandsl.hypergraph.Edge}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Edges</em>' containment reference list.
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getHypergraph_Edges()
-     * @model containment="true"
-     * @generated
-     */
-    EList<Edge> getEdges();
-
-} // Hypergraph
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphFactory.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphFactory.java
deleted file mode 100644
index 32a3dd06fa76991f9127045ba146f8cdfe8fd28c..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphFactory.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EFactory;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Factory</b> for the model.
- * It provides a create method for each non-abstract class of the model.
- * <!-- end-user-doc -->
- * @see org.oceandsl.hypergraph.HypergraphPackage
- * @generated
- */
-public interface HypergraphFactory extends EFactory {
-    /**
-     * The singleton instance of the factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    HypergraphFactory eINSTANCE = org.oceandsl.hypergraph.impl.HypergraphFactoryImpl.init();
-
-    /**
-     * Returns a new object of class '<em>Hypergraph</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Hypergraph</em>'.
-     * @generated
-     */
-    Hypergraph createHypergraph();
-
-    /**
-     * Returns a new object of class '<em>Modular Hypergraph</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Modular Hypergraph</em>'.
-     * @generated
-     */
-    ModularHypergraph createModularHypergraph();
-
-    /**
-     * Returns a new object of class '<em>Module</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Module</em>'.
-     * @generated
-     */
-    Module createModule();
-
-    /**
-     * Returns a new object of class '<em>Node</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Node</em>'.
-     * @generated
-     */
-    Node createNode();
-
-    /**
-     * Returns a new object of class '<em>Edge</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Edge</em>'.
-     * @generated
-     */
-    Edge createEdge();
-
-    /**
-     * Returns a new object of class '<em>Named Element</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Named Element</em>'.
-     * @generated
-     */
-    NamedElement createNamedElement();
-
-    /**
-     * Returns a new object of class '<em>Node Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Node Trace</em>'.
-     * @generated
-     */
-    NodeTrace createNodeTrace();
-
-    /**
-     * Returns a new object of class '<em>Edge Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Edge Trace</em>'.
-     * @generated
-     */
-    EdgeTrace createEdgeTrace();
-
-    /**
-     * Returns a new object of class '<em>Generic Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Generic Trace</em>'.
-     * @generated
-     */
-    GenericTrace createGenericTrace();
-
-    /**
-     * Returns a new object of class '<em>Node Reference</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Node Reference</em>'.
-     * @generated
-     */
-    NodeReference createNodeReference();
-
-    /**
-     * Returns a new object of class '<em>Edge Reference</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Edge Reference</em>'.
-     * @generated
-     */
-    EdgeReference createEdgeReference();
-
-    /**
-     * Returns a new object of class '<em>Module Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Module Trace</em>'.
-     * @generated
-     */
-    ModuleTrace createModuleTrace();
-
-    /**
-     * Returns a new object of class '<em>Module Reference</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Module Reference</em>'.
-     * @generated
-     */
-    ModuleReference createModuleReference();
-
-    /**
-     * Returns a new object of class '<em>Type Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Type Trace</em>'.
-     * @generated
-     */
-    TypeTrace createTypeTrace();
-
-    /**
-     * Returns a new object of class '<em>Field Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Field Trace</em>'.
-     * @generated
-     */
-    FieldTrace createFieldTrace();
-
-    /**
-     * Returns a new object of class '<em>Method Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Method Trace</em>'.
-     * @generated
-     */
-    MethodTrace createMethodTrace();
-
-    /**
-     * Returns a new object of class '<em>Caller Callee Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Caller Callee Trace</em>'.
-     * @generated
-     */
-    CallerCalleeTrace createCallerCalleeTrace();
-
-    /**
-     * Returns a new object of class '<em>Model Element Trace</em>'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return a new object of class '<em>Model Element Trace</em>'.
-     * @generated
-     */
-    ModelElementTrace createModelElementTrace();
-
-    /**
-     * Returns the package supported by this factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the package supported by this factory.
-     * @generated
-     */
-    HypergraphPackage getHypergraphPackage();
-
-} //HypergraphFactory
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphPackage.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphPackage.java
deleted file mode 100644
index 4d04b2ff1b17e7bedab1ab9cadc775f582bd871b..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/HypergraphPackage.java
+++ /dev/null
@@ -1,1585 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Package</b> for the model.
- * It contains accessors for the meta objects to represent
- * <ul>
- *   <li>each class,</li>
- *   <li>each feature of each class,</li>
- *   <li>each operation of each class,</li>
- *   <li>each enum,</li>
- *   <li>and each data type</li>
- * </ul>
- * <!-- end-user-doc -->
- * @see org.oceandsl.hypergraph.HypergraphFactory
- * @model kind="package"
- * @generated
- */
-public interface HypergraphPackage extends EPackage {
-    /**
-     * The package name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNAME = "hypergraph";
-
-    /**
-     * The package namespace URI.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNS_URI = "http://evaluation.se.cs.cau.de/hypergraph";
-
-    /**
-     * The package namespace name.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    String eNS_PREFIX = "hypergraph";
-
-    /**
-     * The singleton instance of the package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    HypergraphPackage eINSTANCE = org.oceandsl.hypergraph.impl.HypergraphPackageImpl.init();
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.HypergraphImpl <em>Hypergraph</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.HypergraphImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getHypergraph()
-     * @generated
-     */
-    int HYPERGRAPH = 0;
-
-    /**
-     * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int HYPERGRAPH__NODES = 0;
-
-    /**
-     * The feature id for the '<em><b>Edges</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int HYPERGRAPH__EDGES = 1;
-
-    /**
-     * The number of structural features of the '<em>Hypergraph</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int HYPERGRAPH_FEATURE_COUNT = 2;
-
-    /**
-     * The number of operations of the '<em>Hypergraph</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int HYPERGRAPH_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.ModularHypergraphImpl <em>Modular Hypergraph</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.ModularHypergraphImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModularHypergraph()
-     * @generated
-     */
-    int MODULAR_HYPERGRAPH = 1;
-
-    /**
-     * The feature id for the '<em><b>Nodes</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULAR_HYPERGRAPH__NODES = HYPERGRAPH__NODES;
-
-    /**
-     * The feature id for the '<em><b>Edges</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULAR_HYPERGRAPH__EDGES = HYPERGRAPH__EDGES;
-
-    /**
-     * The feature id for the '<em><b>Modules</b></em>' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULAR_HYPERGRAPH__MODULES = HYPERGRAPH_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Modular Hypergraph</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULAR_HYPERGRAPH_FEATURE_COUNT = HYPERGRAPH_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Modular Hypergraph</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULAR_HYPERGRAPH_OPERATION_COUNT = HYPERGRAPH_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.NamedElementImpl <em>Named Element</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.NamedElementImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNamedElement()
-     * @generated
-     */
-    int NAMED_ELEMENT = 5;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NAMED_ELEMENT__NAME = 0;
-
-    /**
-     * The number of structural features of the '<em>Named Element</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NAMED_ELEMENT_FEATURE_COUNT = 1;
-
-    /**
-     * The number of operations of the '<em>Named Element</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NAMED_ELEMENT_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.ModuleImpl <em>Module</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.ModuleImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModule()
-     * @generated
-     */
-    int MODULE = 2;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE__NAME = NAMED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Nodes</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE__NODES = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE__DERIVED_FROM = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The feature id for the '<em><b>Kind</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE__KIND = NAMED_ELEMENT_FEATURE_COUNT + 2;
-
-    /**
-     * The number of structural features of the '<em>Module</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 3;
-
-    /**
-     * The number of operations of the '<em>Module</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.NodeImpl <em>Node</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.NodeImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNode()
-     * @generated
-     */
-    int NODE = 3;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE__NAME = NAMED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Edges</b></em>' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE__EDGES = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE__DERIVED_FROM = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Node</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Node</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.EdgeImpl <em>Edge</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.EdgeImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdge()
-     * @generated
-     */
-    int EDGE = 4;
-
-    /**
-     * The feature id for the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE__NAME = NAMED_ELEMENT__NAME;
-
-    /**
-     * The feature id for the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE__DERIVED_FROM = NAMED_ELEMENT_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Edge</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Edge</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.NodeReferenceImpl <em>Node Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.NodeReferenceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNodeReference()
-     * @generated
-     */
-    int NODE_REFERENCE = 9;
-
-    /**
-     * The number of structural features of the '<em>Node Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_REFERENCE_FEATURE_COUNT = 0;
-
-    /**
-     * The number of operations of the '<em>Node Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_REFERENCE_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.NodeTraceImpl <em>Node Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.NodeTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNodeTrace()
-     * @generated
-     */
-    int NODE_TRACE = 6;
-
-    /**
-     * The feature id for the '<em><b>Node</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_TRACE__NODE = NODE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Node Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_TRACE_FEATURE_COUNT = NODE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Node Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int NODE_TRACE_OPERATION_COUNT = NODE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.EdgeReferenceImpl <em>Edge Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.EdgeReferenceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdgeReference()
-     * @generated
-     */
-    int EDGE_REFERENCE = 10;
-
-    /**
-     * The number of structural features of the '<em>Edge Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_REFERENCE_FEATURE_COUNT = 0;
-
-    /**
-     * The number of operations of the '<em>Edge Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_REFERENCE_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.EdgeTraceImpl <em>Edge Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.EdgeTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdgeTrace()
-     * @generated
-     */
-    int EDGE_TRACE = 7;
-
-    /**
-     * The feature id for the '<em><b>Edge</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_TRACE__EDGE = EDGE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Edge Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_TRACE_FEATURE_COUNT = EDGE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Edge Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int EDGE_TRACE_OPERATION_COUNT = EDGE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.GenericTraceImpl <em>Generic Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.GenericTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getGenericTrace()
-     * @generated
-     */
-    int GENERIC_TRACE = 8;
-
-    /**
-     * The feature id for the '<em><b>Resource Id</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int GENERIC_TRACE__RESOURCE_ID = NODE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Generic Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int GENERIC_TRACE_FEATURE_COUNT = NODE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Generic Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int GENERIC_TRACE_OPERATION_COUNT = NODE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.ModuleReferenceImpl <em>Module Reference</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.ModuleReferenceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModuleReference()
-     * @generated
-     */
-    int MODULE_REFERENCE = 12;
-
-    /**
-     * The number of structural features of the '<em>Module Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_REFERENCE_FEATURE_COUNT = 0;
-
-    /**
-     * The number of operations of the '<em>Module Reference</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_REFERENCE_OPERATION_COUNT = 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.ModuleTraceImpl <em>Module Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.ModuleTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModuleTrace()
-     * @generated
-     */
-    int MODULE_TRACE = 11;
-
-    /**
-     * The feature id for the '<em><b>Module</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_TRACE__MODULE = MODULE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Module Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_TRACE_FEATURE_COUNT = MODULE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Module Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODULE_TRACE_OPERATION_COUNT = MODULE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.TypeTraceImpl <em>Type Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.TypeTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getTypeTrace()
-     * @generated
-     */
-    int TYPE_TRACE = 13;
-
-    /**
-     * The feature id for the '<em><b>Type</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int TYPE_TRACE__TYPE = MODULE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Type Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int TYPE_TRACE_FEATURE_COUNT = MODULE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Type Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int TYPE_TRACE_OPERATION_COUNT = MODULE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.FieldTraceImpl <em>Field Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.FieldTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getFieldTrace()
-     * @generated
-     */
-    int FIELD_TRACE = 14;
-
-    /**
-     * The feature id for the '<em><b>Field</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int FIELD_TRACE__FIELD = EDGE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Field Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int FIELD_TRACE_FEATURE_COUNT = EDGE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Field Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int FIELD_TRACE_OPERATION_COUNT = EDGE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.MethodTraceImpl <em>Method Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.MethodTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getMethodTrace()
-     * @generated
-     */
-    int METHOD_TRACE = 15;
-
-    /**
-     * The feature id for the '<em><b>Method</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int METHOD_TRACE__METHOD = NODE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Method Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int METHOD_TRACE_FEATURE_COUNT = NODE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Method Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int METHOD_TRACE_OPERATION_COUNT = NODE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl <em>Caller Callee Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getCallerCalleeTrace()
-     * @generated
-     */
-    int CALLER_CALLEE_TRACE = 16;
-
-    /**
-     * The feature id for the '<em><b>Caller</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CALLER_CALLEE_TRACE__CALLER = EDGE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The feature id for the '<em><b>Callee</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CALLER_CALLEE_TRACE__CALLEE = EDGE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of structural features of the '<em>Caller Callee Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CALLER_CALLEE_TRACE_FEATURE_COUNT = EDGE_REFERENCE_FEATURE_COUNT + 2;
-
-    /**
-     * The number of operations of the '<em>Caller Callee Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int CALLER_CALLEE_TRACE_OPERATION_COUNT = EDGE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.impl.ModelElementTraceImpl <em>Model Element Trace</em>}' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.impl.ModelElementTraceImpl
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModelElementTrace()
-     * @generated
-     */
-    int MODEL_ELEMENT_TRACE = 17;
-
-    /**
-     * The feature id for the '<em><b>Element</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODEL_ELEMENT_TRACE__ELEMENT = EDGE_REFERENCE_FEATURE_COUNT + 0;
-
-    /**
-     * The number of structural features of the '<em>Model Element Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODEL_ELEMENT_TRACE_FEATURE_COUNT = EDGE_REFERENCE_FEATURE_COUNT + 1;
-
-    /**
-     * The number of operations of the '<em>Model Element Trace</em>' class.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int MODEL_ELEMENT_TRACE_OPERATION_COUNT = EDGE_REFERENCE_OPERATION_COUNT + 0;
-
-    /**
-     * The meta object id for the '{@link org.oceandsl.hypergraph.EModuleKind <em>EModule Kind</em>}' enum.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.oceandsl.hypergraph.EModuleKind
-     * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEModuleKind()
-     * @generated
-     */
-    int EMODULE_KIND = 18;
-
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.Hypergraph <em>Hypergraph</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Hypergraph</em>'.
-     * @see org.oceandsl.hypergraph.Hypergraph
-     * @generated
-     */
-    EClass getHypergraph();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.oceandsl.hypergraph.Hypergraph#getNodes <em>Nodes</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Nodes</em>'.
-     * @see org.oceandsl.hypergraph.Hypergraph#getNodes()
-     * @see #getHypergraph()
-     * @generated
-     */
-    EReference getHypergraph_Nodes();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.oceandsl.hypergraph.Hypergraph#getEdges <em>Edges</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Edges</em>'.
-     * @see org.oceandsl.hypergraph.Hypergraph#getEdges()
-     * @see #getHypergraph()
-     * @generated
-     */
-    EReference getHypergraph_Edges();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.ModularHypergraph <em>Modular Hypergraph</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Modular Hypergraph</em>'.
-     * @see org.oceandsl.hypergraph.ModularHypergraph
-     * @generated
-     */
-    EClass getModularHypergraph();
-
-    /**
-     * Returns the meta object for the containment reference list '{@link org.oceandsl.hypergraph.ModularHypergraph#getModules <em>Modules</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference list '<em>Modules</em>'.
-     * @see org.oceandsl.hypergraph.ModularHypergraph#getModules()
-     * @see #getModularHypergraph()
-     * @generated
-     */
-    EReference getModularHypergraph_Modules();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.Module <em>Module</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Module</em>'.
-     * @see org.oceandsl.hypergraph.Module
-     * @generated
-     */
-    EClass getModule();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.oceandsl.hypergraph.Module#getNodes <em>Nodes</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Nodes</em>'.
-     * @see org.oceandsl.hypergraph.Module#getNodes()
-     * @see #getModule()
-     * @generated
-     */
-    EReference getModule_Nodes();
-
-    /**
-     * Returns the meta object for the containment reference '{@link org.oceandsl.hypergraph.Module#getDerivedFrom <em>Derived From</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference '<em>Derived From</em>'.
-     * @see org.oceandsl.hypergraph.Module#getDerivedFrom()
-     * @see #getModule()
-     * @generated
-     */
-    EReference getModule_DerivedFrom();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.Module#getKind <em>Kind</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Kind</em>'.
-     * @see org.oceandsl.hypergraph.Module#getKind()
-     * @see #getModule()
-     * @generated
-     */
-    EAttribute getModule_Kind();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.Node <em>Node</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Node</em>'.
-     * @see org.oceandsl.hypergraph.Node
-     * @generated
-     */
-    EClass getNode();
-
-    /**
-     * Returns the meta object for the reference list '{@link org.oceandsl.hypergraph.Node#getEdges <em>Edges</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference list '<em>Edges</em>'.
-     * @see org.oceandsl.hypergraph.Node#getEdges()
-     * @see #getNode()
-     * @generated
-     */
-    EReference getNode_Edges();
-
-    /**
-     * Returns the meta object for the containment reference '{@link org.oceandsl.hypergraph.Node#getDerivedFrom <em>Derived From</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference '<em>Derived From</em>'.
-     * @see org.oceandsl.hypergraph.Node#getDerivedFrom()
-     * @see #getNode()
-     * @generated
-     */
-    EReference getNode_DerivedFrom();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.Edge <em>Edge</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Edge</em>'.
-     * @see org.oceandsl.hypergraph.Edge
-     * @generated
-     */
-    EClass getEdge();
-
-    /**
-     * Returns the meta object for the containment reference '{@link org.oceandsl.hypergraph.Edge#getDerivedFrom <em>Derived From</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the containment reference '<em>Derived From</em>'.
-     * @see org.oceandsl.hypergraph.Edge#getDerivedFrom()
-     * @see #getEdge()
-     * @generated
-     */
-    EReference getEdge_DerivedFrom();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.NamedElement <em>Named Element</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Named Element</em>'.
-     * @see org.oceandsl.hypergraph.NamedElement
-     * @generated
-     */
-    EClass getNamedElement();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.NamedElement#getName <em>Name</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Name</em>'.
-     * @see org.oceandsl.hypergraph.NamedElement#getName()
-     * @see #getNamedElement()
-     * @generated
-     */
-    EAttribute getNamedElement_Name();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.NodeTrace <em>Node Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Node Trace</em>'.
-     * @see org.oceandsl.hypergraph.NodeTrace
-     * @generated
-     */
-    EClass getNodeTrace();
-
-    /**
-     * Returns the meta object for the reference '{@link org.oceandsl.hypergraph.NodeTrace#getNode <em>Node</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Node</em>'.
-     * @see org.oceandsl.hypergraph.NodeTrace#getNode()
-     * @see #getNodeTrace()
-     * @generated
-     */
-    EReference getNodeTrace_Node();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.EdgeTrace <em>Edge Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Edge Trace</em>'.
-     * @see org.oceandsl.hypergraph.EdgeTrace
-     * @generated
-     */
-    EClass getEdgeTrace();
-
-    /**
-     * Returns the meta object for the reference '{@link org.oceandsl.hypergraph.EdgeTrace#getEdge <em>Edge</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Edge</em>'.
-     * @see org.oceandsl.hypergraph.EdgeTrace#getEdge()
-     * @see #getEdgeTrace()
-     * @generated
-     */
-    EReference getEdgeTrace_Edge();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.GenericTrace <em>Generic Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Generic Trace</em>'.
-     * @see org.oceandsl.hypergraph.GenericTrace
-     * @generated
-     */
-    EClass getGenericTrace();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.GenericTrace#getResourceId <em>Resource Id</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Resource Id</em>'.
-     * @see org.oceandsl.hypergraph.GenericTrace#getResourceId()
-     * @see #getGenericTrace()
-     * @generated
-     */
-    EAttribute getGenericTrace_ResourceId();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.NodeReference <em>Node Reference</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Node Reference</em>'.
-     * @see org.oceandsl.hypergraph.NodeReference
-     * @generated
-     */
-    EClass getNodeReference();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.EdgeReference <em>Edge Reference</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Edge Reference</em>'.
-     * @see org.oceandsl.hypergraph.EdgeReference
-     * @generated
-     */
-    EClass getEdgeReference();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.ModuleTrace <em>Module Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Module Trace</em>'.
-     * @see org.oceandsl.hypergraph.ModuleTrace
-     * @generated
-     */
-    EClass getModuleTrace();
-
-    /**
-     * Returns the meta object for the reference '{@link org.oceandsl.hypergraph.ModuleTrace#getModule <em>Module</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Module</em>'.
-     * @see org.oceandsl.hypergraph.ModuleTrace#getModule()
-     * @see #getModuleTrace()
-     * @generated
-     */
-    EReference getModuleTrace_Module();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.ModuleReference <em>Module Reference</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Module Reference</em>'.
-     * @see org.oceandsl.hypergraph.ModuleReference
-     * @generated
-     */
-    EClass getModuleReference();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.TypeTrace <em>Type Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Type Trace</em>'.
-     * @see org.oceandsl.hypergraph.TypeTrace
-     * @generated
-     */
-    EClass getTypeTrace();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.TypeTrace#getType <em>Type</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Type</em>'.
-     * @see org.oceandsl.hypergraph.TypeTrace#getType()
-     * @see #getTypeTrace()
-     * @generated
-     */
-    EAttribute getTypeTrace_Type();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.FieldTrace <em>Field Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Field Trace</em>'.
-     * @see org.oceandsl.hypergraph.FieldTrace
-     * @generated
-     */
-    EClass getFieldTrace();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.FieldTrace#getField <em>Field</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Field</em>'.
-     * @see org.oceandsl.hypergraph.FieldTrace#getField()
-     * @see #getFieldTrace()
-     * @generated
-     */
-    EAttribute getFieldTrace_Field();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.MethodTrace <em>Method Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Method Trace</em>'.
-     * @see org.oceandsl.hypergraph.MethodTrace
-     * @generated
-     */
-    EClass getMethodTrace();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.MethodTrace#getMethod <em>Method</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Method</em>'.
-     * @see org.oceandsl.hypergraph.MethodTrace#getMethod()
-     * @see #getMethodTrace()
-     * @generated
-     */
-    EAttribute getMethodTrace_Method();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.CallerCalleeTrace <em>Caller Callee Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Caller Callee Trace</em>'.
-     * @see org.oceandsl.hypergraph.CallerCalleeTrace
-     * @generated
-     */
-    EClass getCallerCalleeTrace();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCaller <em>Caller</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Caller</em>'.
-     * @see org.oceandsl.hypergraph.CallerCalleeTrace#getCaller()
-     * @see #getCallerCalleeTrace()
-     * @generated
-     */
-    EAttribute getCallerCalleeTrace_Caller();
-
-    /**
-     * Returns the meta object for the attribute '{@link org.oceandsl.hypergraph.CallerCalleeTrace#getCallee <em>Callee</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute '<em>Callee</em>'.
-     * @see org.oceandsl.hypergraph.CallerCalleeTrace#getCallee()
-     * @see #getCallerCalleeTrace()
-     * @generated
-     */
-    EAttribute getCallerCalleeTrace_Callee();
-
-    /**
-     * Returns the meta object for class '{@link org.oceandsl.hypergraph.ModelElementTrace <em>Model Element Trace</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for class '<em>Model Element Trace</em>'.
-     * @see org.oceandsl.hypergraph.ModelElementTrace
-     * @generated
-     */
-    EClass getModelElementTrace();
-
-    /**
-     * Returns the meta object for the reference '{@link org.oceandsl.hypergraph.ModelElementTrace#getElement <em>Element</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the reference '<em>Element</em>'.
-     * @see org.oceandsl.hypergraph.ModelElementTrace#getElement()
-     * @see #getModelElementTrace()
-     * @generated
-     */
-    EReference getModelElementTrace_Element();
-
-    /**
-     * Returns the meta object for enum '{@link org.oceandsl.hypergraph.EModuleKind <em>EModule Kind</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for enum '<em>EModule Kind</em>'.
-     * @see org.oceandsl.hypergraph.EModuleKind
-     * @generated
-     */
-    EEnum getEModuleKind();
-
-    /**
-     * Returns the factory that creates the instances of the model.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the factory that creates the instances of the model.
-     * @generated
-     */
-    HypergraphFactory getHypergraphFactory();
-
-    /**
-     * <!-- begin-user-doc -->
-     * Defines literals for the meta objects that represent
-     * <ul>
-     *   <li>each class,</li>
-     *   <li>each feature of each class,</li>
-     *   <li>each operation of each class,</li>
-     *   <li>each enum,</li>
-     *   <li>and each data type</li>
-     * </ul>
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    interface Literals {
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.HypergraphImpl <em>Hypergraph</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.HypergraphImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getHypergraph()
-         * @generated
-         */
-        EClass HYPERGRAPH = eINSTANCE.getHypergraph();
-
-        /**
-         * The meta object literal for the '<em><b>Nodes</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference HYPERGRAPH__NODES = eINSTANCE.getHypergraph_Nodes();
-
-        /**
-         * The meta object literal for the '<em><b>Edges</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference HYPERGRAPH__EDGES = eINSTANCE.getHypergraph_Edges();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.ModularHypergraphImpl <em>Modular Hypergraph</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.ModularHypergraphImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModularHypergraph()
-         * @generated
-         */
-        EClass MODULAR_HYPERGRAPH = eINSTANCE.getModularHypergraph();
-
-        /**
-         * The meta object literal for the '<em><b>Modules</b></em>' containment reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference MODULAR_HYPERGRAPH__MODULES = eINSTANCE.getModularHypergraph_Modules();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.ModuleImpl <em>Module</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.ModuleImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModule()
-         * @generated
-         */
-        EClass MODULE = eINSTANCE.getModule();
-
-        /**
-         * The meta object literal for the '<em><b>Nodes</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference MODULE__NODES = eINSTANCE.getModule_Nodes();
-
-        /**
-         * The meta object literal for the '<em><b>Derived From</b></em>' containment reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference MODULE__DERIVED_FROM = eINSTANCE.getModule_DerivedFrom();
-
-        /**
-         * The meta object literal for the '<em><b>Kind</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute MODULE__KIND = eINSTANCE.getModule_Kind();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.NodeImpl <em>Node</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.NodeImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNode()
-         * @generated
-         */
-        EClass NODE = eINSTANCE.getNode();
-
-        /**
-         * The meta object literal for the '<em><b>Edges</b></em>' reference list feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference NODE__EDGES = eINSTANCE.getNode_Edges();
-
-        /**
-         * The meta object literal for the '<em><b>Derived From</b></em>' containment reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference NODE__DERIVED_FROM = eINSTANCE.getNode_DerivedFrom();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.EdgeImpl <em>Edge</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.EdgeImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdge()
-         * @generated
-         */
-        EClass EDGE = eINSTANCE.getEdge();
-
-        /**
-         * The meta object literal for the '<em><b>Derived From</b></em>' containment reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference EDGE__DERIVED_FROM = eINSTANCE.getEdge_DerivedFrom();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.NamedElementImpl <em>Named Element</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.NamedElementImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNamedElement()
-         * @generated
-         */
-        EClass NAMED_ELEMENT = eINSTANCE.getNamedElement();
-
-        /**
-         * The meta object literal for the '<em><b>Name</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.NodeTraceImpl <em>Node Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.NodeTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNodeTrace()
-         * @generated
-         */
-        EClass NODE_TRACE = eINSTANCE.getNodeTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Node</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference NODE_TRACE__NODE = eINSTANCE.getNodeTrace_Node();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.EdgeTraceImpl <em>Edge Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.EdgeTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdgeTrace()
-         * @generated
-         */
-        EClass EDGE_TRACE = eINSTANCE.getEdgeTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Edge</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference EDGE_TRACE__EDGE = eINSTANCE.getEdgeTrace_Edge();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.GenericTraceImpl <em>Generic Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.GenericTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getGenericTrace()
-         * @generated
-         */
-        EClass GENERIC_TRACE = eINSTANCE.getGenericTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Resource Id</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute GENERIC_TRACE__RESOURCE_ID = eINSTANCE.getGenericTrace_ResourceId();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.NodeReferenceImpl <em>Node Reference</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.NodeReferenceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getNodeReference()
-         * @generated
-         */
-        EClass NODE_REFERENCE = eINSTANCE.getNodeReference();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.EdgeReferenceImpl <em>Edge Reference</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.EdgeReferenceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEdgeReference()
-         * @generated
-         */
-        EClass EDGE_REFERENCE = eINSTANCE.getEdgeReference();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.ModuleTraceImpl <em>Module Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.ModuleTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModuleTrace()
-         * @generated
-         */
-        EClass MODULE_TRACE = eINSTANCE.getModuleTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Module</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference MODULE_TRACE__MODULE = eINSTANCE.getModuleTrace_Module();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.ModuleReferenceImpl <em>Module Reference</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.ModuleReferenceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModuleReference()
-         * @generated
-         */
-        EClass MODULE_REFERENCE = eINSTANCE.getModuleReference();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.TypeTraceImpl <em>Type Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.TypeTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getTypeTrace()
-         * @generated
-         */
-        EClass TYPE_TRACE = eINSTANCE.getTypeTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Type</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute TYPE_TRACE__TYPE = eINSTANCE.getTypeTrace_Type();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.FieldTraceImpl <em>Field Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.FieldTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getFieldTrace()
-         * @generated
-         */
-        EClass FIELD_TRACE = eINSTANCE.getFieldTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Field</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute FIELD_TRACE__FIELD = eINSTANCE.getFieldTrace_Field();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.MethodTraceImpl <em>Method Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.MethodTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getMethodTrace()
-         * @generated
-         */
-        EClass METHOD_TRACE = eINSTANCE.getMethodTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Method</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute METHOD_TRACE__METHOD = eINSTANCE.getMethodTrace_Method();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl <em>Caller Callee Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getCallerCalleeTrace()
-         * @generated
-         */
-        EClass CALLER_CALLEE_TRACE = eINSTANCE.getCallerCalleeTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Caller</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute CALLER_CALLEE_TRACE__CALLER = eINSTANCE.getCallerCalleeTrace_Caller();
-
-        /**
-         * The meta object literal for the '<em><b>Callee</b></em>' attribute feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EAttribute CALLER_CALLEE_TRACE__CALLEE = eINSTANCE.getCallerCalleeTrace_Callee();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.impl.ModelElementTraceImpl <em>Model Element Trace</em>}' class.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.impl.ModelElementTraceImpl
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getModelElementTrace()
-         * @generated
-         */
-        EClass MODEL_ELEMENT_TRACE = eINSTANCE.getModelElementTrace();
-
-        /**
-         * The meta object literal for the '<em><b>Element</b></em>' reference feature.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @generated
-         */
-        EReference MODEL_ELEMENT_TRACE__ELEMENT = eINSTANCE.getModelElementTrace_Element();
-
-        /**
-         * The meta object literal for the '{@link org.oceandsl.hypergraph.EModuleKind <em>EModule Kind</em>}' enum.
-         * <!-- begin-user-doc -->
-         * <!-- end-user-doc -->
-         * @see org.oceandsl.hypergraph.EModuleKind
-         * @see org.oceandsl.hypergraph.impl.HypergraphPackageImpl#getEModuleKind()
-         * @generated
-         */
-        EEnum EMODULE_KIND = eINSTANCE.getEModuleKind();
-
-    }
-
-} //HypergraphPackage
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/MethodTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/MethodTrace.java
deleted file mode 100644
index 41ab7266966db61433750eafc81956abed438683..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/MethodTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Method Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.MethodTrace#getMethod <em>Method</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getMethodTrace()
- * @model
- * @generated
- */
-public interface MethodTrace extends NodeReference {
-    /**
-     * Returns the value of the '<em><b>Method</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Method</em>' attribute.
-     * @see #setMethod(Object)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getMethodTrace_Method()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Object getMethod();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.MethodTrace#getMethod <em>Method</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Method</em>' attribute.
-     * @see #getMethod()
-     * @generated
-     */
-    void setMethod(Object value);
-
-} // MethodTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModelElementTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModelElementTrace.java
deleted file mode 100644
index c0f8217cc389f68413cc2aeeaffc215447dc9b6b..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModelElementTrace.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Model Element Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.ModelElementTrace#getElement <em>Element</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getModelElementTrace()
- * @model
- * @generated
- */
-public interface ModelElementTrace extends EdgeReference, ModuleReference, NodeReference {
-    /**
-     * Returns the value of the '<em><b>Element</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Element</em>' reference.
-     * @see #setElement(EObject)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModelElementTrace_Element()
-     * @model transient="true"
-     * @generated
-     */
-    EObject getElement();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.ModelElementTrace#getElement <em>Element</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Element</em>' reference.
-     * @see #getElement()
-     * @generated
-     */
-    void setElement(EObject value);
-
-} // ModelElementTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModularHypergraph.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModularHypergraph.java
deleted file mode 100644
index add8ae7d6311f518766affcb70ee03be2daa0703..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModularHypergraph.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Modular Hypergraph</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.ModularHypergraph#getModules <em>Modules</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getModularHypergraph()
- * @model
- * @generated
- */
-public interface ModularHypergraph extends Hypergraph {
-    /**
-     * Returns the value of the '<em><b>Modules</b></em>' containment reference list.
-     * The list contents are of type {@link org.oceandsl.hypergraph.Module}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Modules</em>' containment reference list.
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModularHypergraph_Modules()
-     * @model containment="true"
-     * @generated
-     */
-    EList<org.oceandsl.hypergraph.Module> getModules();
-
-} // ModularHypergraph
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Module.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Module.java
deleted file mode 100644
index 8e6ed5357151021485792345632ba5936665e2dd..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Module.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Module</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.Module#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.Module#getDerivedFrom <em>Derived From</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.Module#getKind <em>Kind</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getModule()
- * @model
- * @generated
- */
-public interface Module extends NamedElement {
-    /**
-     * Returns the value of the '<em><b>Nodes</b></em>' reference list.
-     * The list contents are of type {@link org.oceandsl.hypergraph.Node}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Nodes</em>' reference list.
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModule_Nodes()
-     * @model
-     * @generated
-     */
-    EList<Node> getNodes();
-
-    /**
-     * Returns the value of the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Derived From</em>' containment reference.
-     * @see #setDerivedFrom(ModuleReference)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModule_DerivedFrom()
-     * @model containment="true"
-     * @generated
-     */
-    ModuleReference getDerivedFrom();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.Module#getDerivedFrom <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Derived From</em>' containment reference.
-     * @see #getDerivedFrom()
-     * @generated
-     */
-    void setDerivedFrom(ModuleReference value);
-
-    /**
-     * Returns the value of the '<em><b>Kind</b></em>' attribute.
-     * The literals are from the enumeration {@link org.oceandsl.hypergraph.EModuleKind}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Kind</em>' attribute.
-     * @see org.oceandsl.hypergraph.EModuleKind
-     * @see #setKind(EModuleKind)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModule_Kind()
-     * @model required="true"
-     * @generated
-     */
-    EModuleKind getKind();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.Module#getKind <em>Kind</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Kind</em>' attribute.
-     * @see org.oceandsl.hypergraph.EModuleKind
-     * @see #getKind()
-     * @generated
-     */
-    void setKind(EModuleKind value);
-
-} // Module
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleReference.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleReference.java
deleted file mode 100644
index a40b299fdd27ea6f0f04187c2da1c44f69c9b5ab..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleReference.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Module Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getModuleReference()
- * @model
- * @generated
- */
-public interface ModuleReference extends EObject {
-} // ModuleReference
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleTrace.java
deleted file mode 100644
index 3f86c59fd9e2be8a0d282cc1ef999dd643e20e6a..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/ModuleTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Module Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.ModuleTrace#getModule <em>Module</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getModuleTrace()
- * @model
- * @generated
- */
-public interface ModuleTrace extends ModuleReference {
-    /**
-     * Returns the value of the '<em><b>Module</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Module</em>' reference.
-     * @see #setModule(org.oceandsl.hypergraph.Module)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getModuleTrace_Module()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    org.oceandsl.hypergraph.Module getModule();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.ModuleTrace#getModule <em>Module</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Module</em>' reference.
-     * @see #getModule()
-     * @generated
-     */
-    void setModule(org.oceandsl.hypergraph.Module value);
-
-} // ModuleTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NamedElement.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NamedElement.java
deleted file mode 100644
index 002d661cfe76ccec3408cb5eb9d625c50c22ac40..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NamedElement.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Named Element</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.NamedElement#getName <em>Name</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getNamedElement()
- * @model
- * @generated
- */
-public interface NamedElement extends EObject {
-    /**
-     * Returns the value of the '<em><b>Name</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Name</em>' attribute.
-     * @see #setName(String)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getNamedElement_Name()
-     * @model required="true"
-     * @generated
-     */
-    String getName();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.NamedElement#getName <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Name</em>' attribute.
-     * @see #getName()
-     * @generated
-     */
-    void setName(String value);
-
-} // NamedElement
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Node.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Node.java
deleted file mode 100644
index 3d6724fe93be1f87f1a4437ab07316af21c46070..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/Node.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.common.util.EList;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.Node#getEdges <em>Edges</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.Node#getDerivedFrom <em>Derived From</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getNode()
- * @model
- * @generated
- */
-public interface Node extends NamedElement {
-    /**
-     * Returns the value of the '<em><b>Edges</b></em>' reference list.
-     * The list contents are of type {@link org.oceandsl.hypergraph.Edge}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Edges</em>' reference list.
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getNode_Edges()
-     * @model
-     * @generated
-     */
-    EList<Edge> getEdges();
-
-    /**
-     * Returns the value of the '<em><b>Derived From</b></em>' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Derived From</em>' containment reference.
-     * @see #setDerivedFrom(NodeReference)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getNode_DerivedFrom()
-     * @model containment="true" required="true"
-     * @generated
-     */
-    NodeReference getDerivedFrom();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.Node#getDerivedFrom <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Derived From</em>' containment reference.
-     * @see #getDerivedFrom()
-     * @generated
-     */
-    void setDerivedFrom(NodeReference value);
-
-} // Node
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeReference.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeReference.java
deleted file mode 100644
index a4c40c260fc90d8faba44915f5e55e6804e0ffd6..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeReference.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-import org.eclipse.emf.ecore.EObject;
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getNodeReference()
- * @model
- * @generated
- */
-public interface NodeReference extends EObject {
-} // NodeReference
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeTrace.java
deleted file mode 100644
index e0057a1f2fc2876e1d0e2a54cec9b2551b47be69..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/NodeTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Node Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.NodeTrace#getNode <em>Node</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getNodeTrace()
- * @model
- * @generated
- */
-public interface NodeTrace extends NodeReference {
-    /**
-     * Returns the value of the '<em><b>Node</b></em>' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Node</em>' reference.
-     * @see #setNode(Node)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getNodeTrace_Node()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Node getNode();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.NodeTrace#getNode <em>Node</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Node</em>' reference.
-     * @see #getNode()
-     * @generated
-     */
-    void setNode(Node value);
-
-} // NodeTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/TypeTrace.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/TypeTrace.java
deleted file mode 100644
index 63402a5f9baa328ed6c30ef55653055ce78e3cae..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/TypeTrace.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph;
-
-
-/**
- * <!-- begin-user-doc -->
- * A representation of the model object '<em><b>Type Trace</b></em>'.
- * <!-- end-user-doc -->
- *
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.TypeTrace#getType <em>Type</em>}</li>
- * </ul>
- *
- * @see org.oceandsl.hypergraph.HypergraphPackage#getTypeTrace()
- * @model
- * @generated
- */
-public interface TypeTrace extends ModuleReference, NodeReference {
-    /**
-     * Returns the value of the '<em><b>Type</b></em>' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Type</em>' attribute.
-     * @see #setType(Object)
-     * @see org.oceandsl.hypergraph.HypergraphPackage#getTypeTrace_Type()
-     * @model required="true" transient="true"
-     * @generated
-     */
-    Object getType();
-
-    /**
-     * Sets the value of the '{@link org.oceandsl.hypergraph.TypeTrace#getType <em>Type</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param value the new value of the '<em>Type</em>' attribute.
-     * @see #getType()
-     * @generated
-     */
-    void setType(Object value);
-
-} // TypeTrace
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/CallerCalleeTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/CallerCalleeTraceImpl.java
deleted file mode 100644
index 70feea8fdd81d4d45f76fada92dd1824dbf3708a..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/CallerCalleeTraceImpl.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.CallerCalleeTrace;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Caller Callee Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl#getCaller <em>Caller</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.impl.CallerCalleeTraceImpl#getCallee <em>Callee</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class CallerCalleeTraceImpl extends EdgeReferenceImpl implements CallerCalleeTrace {
-    /**
-     * The default value of the '{@link #getCaller() <em>Caller</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCaller()
-     * @generated
-     * @ordered
-     */
-    protected static final Object CALLER_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getCaller() <em>Caller</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCaller()
-     * @generated
-     * @ordered
-     */
-    protected Object caller = CALLER_EDEFAULT;
-
-    /**
-     * The default value of the '{@link #getCallee() <em>Callee</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCallee()
-     * @generated
-     * @ordered
-     */
-    protected static final Object CALLEE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getCallee() <em>Callee</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getCallee()
-     * @generated
-     * @ordered
-     */
-    protected Object callee = CALLEE_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected CallerCalleeTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.CALLER_CALLEE_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Object getCaller() {
-        return caller;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setCaller(Object newCaller) {
-        Object oldCaller = caller;
-        caller = newCaller;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.CALLER_CALLEE_TRACE__CALLER, oldCaller, caller));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Object getCallee() {
-        return callee;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setCallee(Object newCallee) {
-        Object oldCallee = callee;
-        callee = newCallee;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.CALLER_CALLEE_TRACE__CALLEE, oldCallee, callee));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLER:
-                return getCaller();
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLEE:
-                return getCallee();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLER:
-                setCaller(newValue);
-                return;
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLEE:
-                setCallee(newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLER:
-                setCaller(CALLER_EDEFAULT);
-                return;
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLEE:
-                setCallee(CALLEE_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLER:
-                return CALLER_EDEFAULT == null ? caller != null : !CALLER_EDEFAULT.equals(caller);
-            case HypergraphPackage.CALLER_CALLEE_TRACE__CALLEE:
-                return CALLEE_EDEFAULT == null ? callee != null : !CALLEE_EDEFAULT.equals(callee);
-        }
-        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(" (caller: ");
-        result.append(caller);
-        result.append(", callee: ");
-        result.append(callee);
-        result.append(')');
-        return result.toString();
-    }
-
-} //CallerCalleeTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeImpl.java
deleted file mode 100644
index 462b5b767fabba536e5681ac1477417a92edc0bf..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeImpl.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Edge</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.EdgeImpl#getDerivedFrom <em>Derived From</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EdgeImpl extends NamedElementImpl implements Edge {
-    /**
-     * The cached value of the '{@link #getDerivedFrom() <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getDerivedFrom()
-     * @generated
-     * @ordered
-     */
-    protected EdgeReference derivedFrom;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected EdgeImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.EDGE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EdgeReference getDerivedFrom() {
-        return derivedFrom;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetDerivedFrom(EdgeReference newDerivedFrom, NotificationChain msgs) {
-        EdgeReference oldDerivedFrom = derivedFrom;
-        derivedFrom = newDerivedFrom;
-        if (eNotificationRequired()) {
-            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HypergraphPackage.EDGE__DERIVED_FROM, oldDerivedFrom, newDerivedFrom);
-            if (msgs == null) msgs = notification; else msgs.add(notification);
-        }
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setDerivedFrom(EdgeReference newDerivedFrom) {
-        if (newDerivedFrom != derivedFrom) {
-            NotificationChain msgs = null;
-            if (derivedFrom != null)
-                msgs = ((InternalEObject)derivedFrom).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.EDGE__DERIVED_FROM, null, msgs);
-            if (newDerivedFrom != null)
-                msgs = ((InternalEObject)newDerivedFrom).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.EDGE__DERIVED_FROM, null, msgs);
-            msgs = basicSetDerivedFrom(newDerivedFrom, msgs);
-            if (msgs != null) msgs.dispatch();
-        }
-        else if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.EDGE__DERIVED_FROM, newDerivedFrom, newDerivedFrom));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE__DERIVED_FROM:
-                return basicSetDerivedFrom(null, 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 HypergraphPackage.EDGE__DERIVED_FROM:
-                return getDerivedFrom();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE__DERIVED_FROM:
-                setDerivedFrom((EdgeReference)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE__DERIVED_FROM:
-                setDerivedFrom((EdgeReference)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE__DERIVED_FROM:
-                return derivedFrom != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //EdgeImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeReferenceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeReferenceImpl.java
deleted file mode 100644
index 2b971cf9e43265b4818dbcdc7a7bdffacee908bf..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeReferenceImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Edge Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class EdgeReferenceImpl extends MinimalEObjectImpl.Container implements EdgeReference {
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected EdgeReferenceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.EDGE_REFERENCE;
-    }
-
-} //EdgeReferenceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeTraceImpl.java
deleted file mode 100644
index e2397c326725b30062600326fd2ee5e3303301c3..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/EdgeTraceImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-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;
-
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeTrace;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Edge Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.EdgeTraceImpl#getEdge <em>Edge</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class EdgeTraceImpl extends EdgeReferenceImpl implements EdgeTrace {
-    /**
-     * The cached value of the '{@link #getEdge() <em>Edge</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getEdge()
-     * @generated
-     * @ordered
-     */
-    protected Edge edge;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected EdgeTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.EDGE_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Edge getEdge() {
-        if (edge != null && edge.eIsProxy()) {
-            InternalEObject oldEdge = (InternalEObject)edge;
-            edge = (Edge)eResolveProxy(oldEdge);
-            if (edge != oldEdge) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, HypergraphPackage.EDGE_TRACE__EDGE, oldEdge, edge));
-            }
-        }
-        return edge;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Edge basicGetEdge() {
-        return edge;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setEdge(Edge newEdge) {
-        Edge oldEdge = edge;
-        edge = newEdge;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.EDGE_TRACE__EDGE, oldEdge, edge));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE_TRACE__EDGE:
-                if (resolve) return getEdge();
-                return basicGetEdge();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE_TRACE__EDGE:
-                setEdge((Edge)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE_TRACE__EDGE:
-                setEdge((Edge)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.EDGE_TRACE__EDGE:
-                return edge != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //EdgeTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/FieldTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/FieldTraceImpl.java
deleted file mode 100644
index 83844215621d04924f7af6fd7ca4c2bae53ec6a6..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/FieldTraceImpl.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.FieldTrace;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Field Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.FieldTraceImpl#getField <em>Field</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class FieldTraceImpl extends EdgeReferenceImpl implements FieldTrace {
-    /**
-     * The default value of the '{@link #getField() <em>Field</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getField()
-     * @generated
-     * @ordered
-     */
-    protected static final Object FIELD_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getField() <em>Field</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getField()
-     * @generated
-     * @ordered
-     */
-    protected Object field = FIELD_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected FieldTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.FIELD_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Object getField() {
-        return field;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setField(Object newField) {
-        Object oldField = field;
-        field = newField;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.FIELD_TRACE__FIELD, oldField, field));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.FIELD_TRACE__FIELD:
-                return getField();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.FIELD_TRACE__FIELD:
-                setField(newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.FIELD_TRACE__FIELD:
-                setField(FIELD_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.FIELD_TRACE__FIELD:
-                return FIELD_EDEFAULT == null ? field != null : !FIELD_EDEFAULT.equals(field);
-        }
-        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(" (field: ");
-        result.append(field);
-        result.append(')');
-        return result.toString();
-    }
-
-} //FieldTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/GenericTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/GenericTraceImpl.java
deleted file mode 100644
index d81f0318c28d5fc50fff3df614b795810fecc89e..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/GenericTraceImpl.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.GenericTrace;
-import org.oceandsl.hypergraph.HypergraphPackage;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Generic Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.GenericTraceImpl#getResourceId <em>Resource Id</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class GenericTraceImpl extends NodeReferenceImpl implements GenericTrace {
-    /**
-     * The default value of the '{@link #getResourceId() <em>Resource Id</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getResourceId()
-     * @generated
-     * @ordered
-     */
-    protected static final String RESOURCE_ID_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getResourceId() <em>Resource Id</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getResourceId()
-     * @generated
-     * @ordered
-     */
-    protected String resourceId = RESOURCE_ID_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected GenericTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.GENERIC_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getResourceId() {
-        return resourceId;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setResourceId(String newResourceId) {
-        String oldResourceId = resourceId;
-        resourceId = newResourceId;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.GENERIC_TRACE__RESOURCE_ID, oldResourceId, resourceId));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.GENERIC_TRACE__RESOURCE_ID:
-                return getResourceId();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.GENERIC_TRACE__RESOURCE_ID:
-                setResourceId((String)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.GENERIC_TRACE__RESOURCE_ID:
-                setResourceId(RESOURCE_ID_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.GENERIC_TRACE__RESOURCE_ID:
-                return RESOURCE_ID_EDEFAULT == null ? resourceId != null : !RESOURCE_ID_EDEFAULT.equals(resourceId);
-        }
-        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(" (resourceId: ");
-        result.append(resourceId);
-        result.append(')');
-        return result.toString();
-    }
-
-} //GenericTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphFactoryImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphFactoryImpl.java
deleted file mode 100644
index d2d77a87160681995238967df1411dbaff6db2c2..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphFactoryImpl.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EDataType;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.impl.EFactoryImpl;
-
-import org.eclipse.emf.ecore.plugin.EcorePlugin;
-
-import org.oceandsl.hypergraph.CallerCalleeTrace;
-import org.oceandsl.hypergraph.EModuleKind;
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.EdgeTrace;
-import org.oceandsl.hypergraph.FieldTrace;
-import org.oceandsl.hypergraph.GenericTrace;
-import org.oceandsl.hypergraph.Hypergraph;
-import org.oceandsl.hypergraph.HypergraphFactory;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.MethodTrace;
-import org.oceandsl.hypergraph.ModelElementTrace;
-import org.oceandsl.hypergraph.ModularHypergraph;
-import org.oceandsl.hypergraph.ModuleReference;
-import org.oceandsl.hypergraph.ModuleTrace;
-import org.oceandsl.hypergraph.NamedElement;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeReference;
-import org.oceandsl.hypergraph.NodeTrace;
-import org.oceandsl.hypergraph.TypeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Factory</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class HypergraphFactoryImpl extends EFactoryImpl implements HypergraphFactory {
-    /**
-     * Creates the default factory implementation.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public static HypergraphFactory init() {
-        try {
-            HypergraphFactory theHypergraphFactory = (HypergraphFactory)EPackage.Registry.INSTANCE.getEFactory(HypergraphPackage.eNS_URI);
-            if (theHypergraphFactory != null) {
-                return theHypergraphFactory;
-            }
-        }
-        catch (Exception exception) {
-            EcorePlugin.INSTANCE.log(exception);
-        }
-        return new HypergraphFactoryImpl();
-    }
-
-    /**
-     * Creates an instance of the factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public HypergraphFactoryImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EObject create(EClass eClass) {
-        switch (eClass.getClassifierID()) {
-            case HypergraphPackage.HYPERGRAPH: return createHypergraph();
-            case HypergraphPackage.MODULAR_HYPERGRAPH: return createModularHypergraph();
-            case HypergraphPackage.MODULE: return createModule();
-            case HypergraphPackage.NODE: return createNode();
-            case HypergraphPackage.EDGE: return createEdge();
-            case HypergraphPackage.NAMED_ELEMENT: return createNamedElement();
-            case HypergraphPackage.NODE_TRACE: return createNodeTrace();
-            case HypergraphPackage.EDGE_TRACE: return createEdgeTrace();
-            case HypergraphPackage.GENERIC_TRACE: return createGenericTrace();
-            case HypergraphPackage.NODE_REFERENCE: return createNodeReference();
-            case HypergraphPackage.EDGE_REFERENCE: return createEdgeReference();
-            case HypergraphPackage.MODULE_TRACE: return createModuleTrace();
-            case HypergraphPackage.MODULE_REFERENCE: return createModuleReference();
-            case HypergraphPackage.TYPE_TRACE: return createTypeTrace();
-            case HypergraphPackage.FIELD_TRACE: return createFieldTrace();
-            case HypergraphPackage.METHOD_TRACE: return createMethodTrace();
-            case HypergraphPackage.CALLER_CALLEE_TRACE: return createCallerCalleeTrace();
-            case HypergraphPackage.MODEL_ELEMENT_TRACE: return createModelElementTrace();
-            default:
-                throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object createFromString(EDataType eDataType, String initialValue) {
-        switch (eDataType.getClassifierID()) {
-            case HypergraphPackage.EMODULE_KIND:
-                return createEModuleKindFromString(eDataType, initialValue);
-            default:
-                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public String convertToString(EDataType eDataType, Object instanceValue) {
-        switch (eDataType.getClassifierID()) {
-            case HypergraphPackage.EMODULE_KIND:
-                return convertEModuleKindToString(eDataType, instanceValue);
-            default:
-                throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
-        }
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Hypergraph createHypergraph() {
-        HypergraphImpl hypergraph = new HypergraphImpl();
-        return hypergraph;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ModularHypergraph createModularHypergraph() {
-        ModularHypergraphImpl modularHypergraph = new ModularHypergraphImpl();
-        return modularHypergraph;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public org.oceandsl.hypergraph.Module createModule() {
-        ModuleImpl module = new ModuleImpl();
-        return module;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Node createNode() {
-        NodeImpl node = new NodeImpl();
-        return node;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Edge createEdge() {
-        EdgeImpl edge = new EdgeImpl();
-        return edge;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NamedElement createNamedElement() {
-        NamedElementImpl namedElement = new NamedElementImpl();
-        return namedElement;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NodeTrace createNodeTrace() {
-        NodeTraceImpl nodeTrace = new NodeTraceImpl();
-        return nodeTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EdgeTrace createEdgeTrace() {
-        EdgeTraceImpl edgeTrace = new EdgeTraceImpl();
-        return edgeTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public GenericTrace createGenericTrace() {
-        GenericTraceImpl genericTrace = new GenericTraceImpl();
-        return genericTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NodeReference createNodeReference() {
-        NodeReferenceImpl nodeReference = new NodeReferenceImpl();
-        return nodeReference;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EdgeReference createEdgeReference() {
-        EdgeReferenceImpl edgeReference = new EdgeReferenceImpl();
-        return edgeReference;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ModuleTrace createModuleTrace() {
-        ModuleTraceImpl moduleTrace = new ModuleTraceImpl();
-        return moduleTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ModuleReference createModuleReference() {
-        ModuleReferenceImpl moduleReference = new ModuleReferenceImpl();
-        return moduleReference;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public TypeTrace createTypeTrace() {
-        TypeTraceImpl typeTrace = new TypeTraceImpl();
-        return typeTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public FieldTrace createFieldTrace() {
-        FieldTraceImpl fieldTrace = new FieldTraceImpl();
-        return fieldTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public MethodTrace createMethodTrace() {
-        MethodTraceImpl methodTrace = new MethodTraceImpl();
-        return methodTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public CallerCalleeTrace createCallerCalleeTrace() {
-        CallerCalleeTraceImpl callerCalleeTrace = new CallerCalleeTraceImpl();
-        return callerCalleeTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ModelElementTrace createModelElementTrace() {
-        ModelElementTraceImpl modelElementTrace = new ModelElementTraceImpl();
-        return modelElementTrace;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EModuleKind createEModuleKindFromString(EDataType eDataType, String initialValue) {
-        EModuleKind result = EModuleKind.get(initialValue);
-        if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
-        return result;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String convertEModuleKindToString(EDataType eDataType, Object instanceValue) {
-        return instanceValue == null ? null : instanceValue.toString();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public HypergraphPackage getHypergraphPackage() {
-        return (HypergraphPackage)getEPackage();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @deprecated
-     * @generated
-     */
-    @Deprecated
-    public static HypergraphPackage getPackage() {
-        return HypergraphPackage.eINSTANCE;
-    }
-
-} //HypergraphFactoryImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphImpl.java
deleted file mode 100644
index 878e88efc1d91dc16015c752d514e1f5c9ba2183..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphImpl.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import java.util.Collection;
-
-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.MinimalEObjectImpl;
-
-import org.eclipse.emf.ecore.util.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.Hypergraph;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Hypergraph</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.HypergraphImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.impl.HypergraphImpl#getEdges <em>Edges</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class HypergraphImpl extends MinimalEObjectImpl.Container implements Hypergraph {
-    /**
-     * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getNodes()
-     * @generated
-     * @ordered
-     */
-    protected EList<Node> nodes;
-
-    /**
-     * The cached value of the '{@link #getEdges() <em>Edges</em>}' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getEdges()
-     * @generated
-     * @ordered
-     */
-    protected EList<Edge> edges;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected HypergraphImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.HYPERGRAPH;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Node> getNodes() {
-        if (nodes == null) {
-            nodes = new EObjectContainmentEList<Node>(Node.class, this, HypergraphPackage.HYPERGRAPH__NODES);
-        }
-        return nodes;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Edge> getEdges() {
-        if (edges == null) {
-            edges = new EObjectContainmentEList<Edge>(Edge.class, this, HypergraphPackage.HYPERGRAPH__EDGES);
-        }
-        return edges;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case HypergraphPackage.HYPERGRAPH__NODES:
-                return ((InternalEList<?>)getNodes()).basicRemove(otherEnd, msgs);
-            case HypergraphPackage.HYPERGRAPH__EDGES:
-                return ((InternalEList<?>)getEdges()).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 HypergraphPackage.HYPERGRAPH__NODES:
-                return getNodes();
-            case HypergraphPackage.HYPERGRAPH__EDGES:
-                return getEdges();
-        }
-        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 HypergraphPackage.HYPERGRAPH__NODES:
-                getNodes().clear();
-                getNodes().addAll((Collection<? extends Node>)newValue);
-                return;
-            case HypergraphPackage.HYPERGRAPH__EDGES:
-                getEdges().clear();
-                getEdges().addAll((Collection<? extends Edge>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.HYPERGRAPH__NODES:
-                getNodes().clear();
-                return;
-            case HypergraphPackage.HYPERGRAPH__EDGES:
-                getEdges().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.HYPERGRAPH__NODES:
-                return nodes != null && !nodes.isEmpty();
-            case HypergraphPackage.HYPERGRAPH__EDGES:
-                return edges != null && !edges.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //HypergraphImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphPackageImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphPackageImpl.java
deleted file mode 100644
index 9b0908c97c1b43faff80cddc3a1b7e5d23a9e306..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/HypergraphPackageImpl.java
+++ /dev/null
@@ -1,789 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.ecore.EAttribute;
-import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.EEnum;
-import org.eclipse.emf.ecore.EPackage;
-import org.eclipse.emf.ecore.EReference;
-
-import org.eclipse.emf.ecore.impl.EPackageImpl;
-
-import org.oceandsl.hypergraph.CallerCalleeTrace;
-import org.oceandsl.hypergraph.EModuleKind;
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.EdgeTrace;
-import org.oceandsl.hypergraph.FieldTrace;
-import org.oceandsl.hypergraph.GenericTrace;
-import org.oceandsl.hypergraph.Hypergraph;
-import org.oceandsl.hypergraph.HypergraphFactory;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.MethodTrace;
-import org.oceandsl.hypergraph.ModelElementTrace;
-import org.oceandsl.hypergraph.ModularHypergraph;
-import org.oceandsl.hypergraph.ModuleReference;
-import org.oceandsl.hypergraph.ModuleTrace;
-import org.oceandsl.hypergraph.NamedElement;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeReference;
-import org.oceandsl.hypergraph.NodeTrace;
-import org.oceandsl.hypergraph.TypeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model <b>Package</b>.
- * <!-- end-user-doc -->
- * @generated
- */
-public class HypergraphPackageImpl extends EPackageImpl implements HypergraphPackage {
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass hypergraphEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass modularHypergraphEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass moduleEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass nodeEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass edgeEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass namedElementEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass nodeTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass edgeTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass genericTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass nodeReferenceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass edgeReferenceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass moduleTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass moduleReferenceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass typeTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass fieldTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass methodTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass callerCalleeTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EClass modelElementTraceEClass = null;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private EEnum eModuleKindEEnum = null;
-
-    /**
-     * Creates an instance of the model <b>Package</b>, registered with
-     * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
-     * package URI value.
-     * <p>Note: the correct way to create the package is via the static
-     * factory method {@link #init init()}, which also performs
-     * initialization of the package, or returns the registered package,
-     * if one already exists.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see org.eclipse.emf.ecore.EPackage.Registry
-     * @see org.oceandsl.hypergraph.HypergraphPackage#eNS_URI
-     * @see #init()
-     * @generated
-     */
-    private HypergraphPackageImpl() {
-        super(eNS_URI, HypergraphFactory.eINSTANCE);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private static boolean isInited = false;
-
-    /**
-     * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
-     *
-     * <p>This method is used to initialize {@link HypergraphPackage#eINSTANCE} when that field is accessed.
-     * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #eNS_URI
-     * @see #createPackageContents()
-     * @see #initializePackageContents()
-     * @generated
-     */
-    public static HypergraphPackage init() {
-        if (isInited) return (HypergraphPackage)EPackage.Registry.INSTANCE.getEPackage(HypergraphPackage.eNS_URI);
-
-        // Obtain or create and register package
-        Object registeredHypergraphPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
-        HypergraphPackageImpl theHypergraphPackage = registeredHypergraphPackage instanceof HypergraphPackageImpl ? (HypergraphPackageImpl)registeredHypergraphPackage : new HypergraphPackageImpl();
-
-        isInited = true;
-
-        // Create package meta-data objects
-        theHypergraphPackage.createPackageContents();
-
-        // Initialize created meta-data
-        theHypergraphPackage.initializePackageContents();
-
-        // Mark meta-data to indicate it can't be changed
-        theHypergraphPackage.freeze();
-
-        // Update the registry and return the package
-        EPackage.Registry.INSTANCE.put(HypergraphPackage.eNS_URI, theHypergraphPackage);
-        return theHypergraphPackage;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getHypergraph() {
-        return hypergraphEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getHypergraph_Nodes() {
-        return (EReference)hypergraphEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getHypergraph_Edges() {
-        return (EReference)hypergraphEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getModularHypergraph() {
-        return modularHypergraphEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getModularHypergraph_Modules() {
-        return (EReference)modularHypergraphEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getModule() {
-        return moduleEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getModule_Nodes() {
-        return (EReference)moduleEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getModule_DerivedFrom() {
-        return (EReference)moduleEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getModule_Kind() {
-        return (EAttribute)moduleEClass.getEStructuralFeatures().get(2);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getNode() {
-        return nodeEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getNode_Edges() {
-        return (EReference)nodeEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getNode_DerivedFrom() {
-        return (EReference)nodeEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getEdge() {
-        return edgeEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getEdge_DerivedFrom() {
-        return (EReference)edgeEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getNamedElement() {
-        return namedElementEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getNamedElement_Name() {
-        return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getNodeTrace() {
-        return nodeTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getNodeTrace_Node() {
-        return (EReference)nodeTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getEdgeTrace() {
-        return edgeTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getEdgeTrace_Edge() {
-        return (EReference)edgeTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getGenericTrace() {
-        return genericTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getGenericTrace_ResourceId() {
-        return (EAttribute)genericTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getNodeReference() {
-        return nodeReferenceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getEdgeReference() {
-        return edgeReferenceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getModuleTrace() {
-        return moduleTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getModuleTrace_Module() {
-        return (EReference)moduleTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getModuleReference() {
-        return moduleReferenceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getTypeTrace() {
-        return typeTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getTypeTrace_Type() {
-        return (EAttribute)typeTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getFieldTrace() {
-        return fieldTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getFieldTrace_Field() {
-        return (EAttribute)fieldTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getMethodTrace() {
-        return methodTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getMethodTrace_Method() {
-        return (EAttribute)methodTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getCallerCalleeTrace() {
-        return callerCalleeTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getCallerCalleeTrace_Caller() {
-        return (EAttribute)callerCalleeTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EAttribute getCallerCalleeTrace_Callee() {
-        return (EAttribute)callerCalleeTraceEClass.getEStructuralFeatures().get(1);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EClass getModelElementTrace() {
-        return modelElementTraceEClass;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EReference getModelElementTrace_Element() {
-        return (EReference)modelElementTraceEClass.getEStructuralFeatures().get(0);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EEnum getEModuleKind() {
-        return eModuleKindEEnum;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public HypergraphFactory getHypergraphFactory() {
-        return (HypergraphFactory)getEFactoryInstance();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private boolean isCreated = false;
-
-    /**
-     * Creates the meta-model objects for the package.  This method is
-     * guarded to have no affect on any invocation but its first.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void createPackageContents() {
-        if (isCreated) return;
-        isCreated = true;
-
-        // Create classes and their features
-        hypergraphEClass = createEClass(HYPERGRAPH);
-        createEReference(hypergraphEClass, HYPERGRAPH__NODES);
-        createEReference(hypergraphEClass, HYPERGRAPH__EDGES);
-
-        modularHypergraphEClass = createEClass(MODULAR_HYPERGRAPH);
-        createEReference(modularHypergraphEClass, MODULAR_HYPERGRAPH__MODULES);
-
-        moduleEClass = createEClass(MODULE);
-        createEReference(moduleEClass, MODULE__NODES);
-        createEReference(moduleEClass, MODULE__DERIVED_FROM);
-        createEAttribute(moduleEClass, MODULE__KIND);
-
-        nodeEClass = createEClass(NODE);
-        createEReference(nodeEClass, NODE__EDGES);
-        createEReference(nodeEClass, NODE__DERIVED_FROM);
-
-        edgeEClass = createEClass(EDGE);
-        createEReference(edgeEClass, EDGE__DERIVED_FROM);
-
-        namedElementEClass = createEClass(NAMED_ELEMENT);
-        createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
-
-        nodeTraceEClass = createEClass(NODE_TRACE);
-        createEReference(nodeTraceEClass, NODE_TRACE__NODE);
-
-        edgeTraceEClass = createEClass(EDGE_TRACE);
-        createEReference(edgeTraceEClass, EDGE_TRACE__EDGE);
-
-        genericTraceEClass = createEClass(GENERIC_TRACE);
-        createEAttribute(genericTraceEClass, GENERIC_TRACE__RESOURCE_ID);
-
-        nodeReferenceEClass = createEClass(NODE_REFERENCE);
-
-        edgeReferenceEClass = createEClass(EDGE_REFERENCE);
-
-        moduleTraceEClass = createEClass(MODULE_TRACE);
-        createEReference(moduleTraceEClass, MODULE_TRACE__MODULE);
-
-        moduleReferenceEClass = createEClass(MODULE_REFERENCE);
-
-        typeTraceEClass = createEClass(TYPE_TRACE);
-        createEAttribute(typeTraceEClass, TYPE_TRACE__TYPE);
-
-        fieldTraceEClass = createEClass(FIELD_TRACE);
-        createEAttribute(fieldTraceEClass, FIELD_TRACE__FIELD);
-
-        methodTraceEClass = createEClass(METHOD_TRACE);
-        createEAttribute(methodTraceEClass, METHOD_TRACE__METHOD);
-
-        callerCalleeTraceEClass = createEClass(CALLER_CALLEE_TRACE);
-        createEAttribute(callerCalleeTraceEClass, CALLER_CALLEE_TRACE__CALLER);
-        createEAttribute(callerCalleeTraceEClass, CALLER_CALLEE_TRACE__CALLEE);
-
-        modelElementTraceEClass = createEClass(MODEL_ELEMENT_TRACE);
-        createEReference(modelElementTraceEClass, MODEL_ELEMENT_TRACE__ELEMENT);
-
-        // Create enums
-        eModuleKindEEnum = createEEnum(EMODULE_KIND);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    private boolean isInitialized = false;
-
-    /**
-     * Complete the initialization of the package and its meta-model.  This
-     * method is guarded to have no affect on any invocation but its first.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void initializePackageContents() {
-        if (isInitialized) return;
-        isInitialized = true;
-
-        // Initialize package
-        setName(eNAME);
-        setNsPrefix(eNS_PREFIX);
-        setNsURI(eNS_URI);
-
-        // Create type parameters
-
-        // Set bounds for type parameters
-
-        // Add supertypes to classes
-        modularHypergraphEClass.getESuperTypes().add(this.getHypergraph());
-        moduleEClass.getESuperTypes().add(this.getNamedElement());
-        nodeEClass.getESuperTypes().add(this.getNamedElement());
-        edgeEClass.getESuperTypes().add(this.getNamedElement());
-        nodeTraceEClass.getESuperTypes().add(this.getNodeReference());
-        edgeTraceEClass.getESuperTypes().add(this.getEdgeReference());
-        genericTraceEClass.getESuperTypes().add(this.getNodeReference());
-        genericTraceEClass.getESuperTypes().add(this.getEdgeReference());
-        genericTraceEClass.getESuperTypes().add(this.getModuleReference());
-        moduleTraceEClass.getESuperTypes().add(this.getModuleReference());
-        typeTraceEClass.getESuperTypes().add(this.getModuleReference());
-        typeTraceEClass.getESuperTypes().add(this.getNodeReference());
-        fieldTraceEClass.getESuperTypes().add(this.getEdgeReference());
-        methodTraceEClass.getESuperTypes().add(this.getNodeReference());
-        callerCalleeTraceEClass.getESuperTypes().add(this.getEdgeReference());
-        modelElementTraceEClass.getESuperTypes().add(this.getEdgeReference());
-        modelElementTraceEClass.getESuperTypes().add(this.getModuleReference());
-        modelElementTraceEClass.getESuperTypes().add(this.getNodeReference());
-
-        // Initialize classes, features, and operations; add parameters
-        initEClass(hypergraphEClass, Hypergraph.class, "Hypergraph", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getHypergraph_Nodes(), this.getNode(), null, "nodes", null, 0, -1, Hypergraph.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-        initEReference(getHypergraph_Edges(), this.getEdge(), null, "edges", null, 0, -1, Hypergraph.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(modularHypergraphEClass, ModularHypergraph.class, "ModularHypergraph", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getModularHypergraph_Modules(), this.getModule(), null, "modules", null, 0, -1, ModularHypergraph.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(moduleEClass, org.oceandsl.hypergraph.Module.class, "Module", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getModule_Nodes(), this.getNode(), null, "nodes", null, 0, -1, org.oceandsl.hypergraph.Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-        initEReference(getModule_DerivedFrom(), this.getModuleReference(), null, "derivedFrom", null, 0, 1, org.oceandsl.hypergraph.Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-        initEAttribute(getModule_Kind(), this.getEModuleKind(), "kind", null, 1, 1, org.oceandsl.hypergraph.Module.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getNode_Edges(), this.getEdge(), null, "edges", null, 0, -1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-        initEReference(getNode_DerivedFrom(), this.getNodeReference(), null, "derivedFrom", null, 1, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(edgeEClass, Edge.class, "Edge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getEdge_DerivedFrom(), this.getEdgeReference(), null, "derivedFrom", null, 1, 1, Edge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(namedElementEClass, NamedElement.class, "NamedElement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, NamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(nodeTraceEClass, NodeTrace.class, "NodeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getNodeTrace_Node(), this.getNode(), null, "node", null, 1, 1, NodeTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(edgeTraceEClass, EdgeTrace.class, "EdgeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getEdgeTrace_Edge(), this.getEdge(), null, "edge", null, 1, 1, EdgeTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(genericTraceEClass, GenericTrace.class, "GenericTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getGenericTrace_ResourceId(), ecorePackage.getEString(), "resourceId", null, 1, 1, GenericTrace.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(nodeReferenceEClass, NodeReference.class, "NodeReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-        initEClass(edgeReferenceEClass, EdgeReference.class, "EdgeReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-        initEClass(moduleTraceEClass, ModuleTrace.class, "ModuleTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getModuleTrace_Module(), this.getModule(), null, "module", null, 1, 1, ModuleTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(moduleReferenceEClass, ModuleReference.class, "ModuleReference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-
-        initEClass(typeTraceEClass, TypeTrace.class, "TypeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getTypeTrace_Type(), ecorePackage.getEJavaObject(), "type", null, 1, 1, TypeTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(fieldTraceEClass, FieldTrace.class, "FieldTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getFieldTrace_Field(), ecorePackage.getEJavaObject(), "field", null, 1, 1, FieldTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(methodTraceEClass, MethodTrace.class, "MethodTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getMethodTrace_Method(), ecorePackage.getEJavaObject(), "method", null, 1, 1, MethodTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(callerCalleeTraceEClass, CallerCalleeTrace.class, "CallerCalleeTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEAttribute(getCallerCalleeTrace_Caller(), ecorePackage.getEJavaObject(), "caller", null, 1, 1, CallerCalleeTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-        initEAttribute(getCallerCalleeTrace_Callee(), ecorePackage.getEJavaObject(), "callee", null, 1, 1, CallerCalleeTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        initEClass(modelElementTraceEClass, ModelElementTrace.class, "ModelElementTrace", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
-        initEReference(getModelElementTrace_Element(), ecorePackage.getEObject(), null, "element", null, 0, 1, ModelElementTrace.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
-
-        // Initialize enums and add enum literals
-        initEEnum(eModuleKindEEnum, EModuleKind.class, "EModuleKind");
-        addEEnumLiteral(eModuleKindEEnum, EModuleKind.SYSTEM);
-        addEEnumLiteral(eModuleKindEEnum, EModuleKind.FRAMEWORK);
-        addEEnumLiteral(eModuleKindEEnum, EModuleKind.ANONYMOUS);
-        addEEnumLiteral(eModuleKindEEnum, EModuleKind.INTERFACE);
-
-        // Create resource
-        createResource(eNS_URI);
-    }
-
-} //HypergraphPackageImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/MethodTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/MethodTraceImpl.java
deleted file mode 100644
index 966ee38d544086931a176ec00312f6bfb642ee18..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/MethodTraceImpl.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.MethodTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Method Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.MethodTraceImpl#getMethod <em>Method</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class MethodTraceImpl extends NodeReferenceImpl implements MethodTrace {
-    /**
-     * The default value of the '{@link #getMethod() <em>Method</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getMethod()
-     * @generated
-     * @ordered
-     */
-    protected static final Object METHOD_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getMethod() <em>Method</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getMethod()
-     * @generated
-     * @ordered
-     */
-    protected Object method = METHOD_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected MethodTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.METHOD_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Object getMethod() {
-        return method;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setMethod(Object newMethod) {
-        Object oldMethod = method;
-        method = newMethod;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.METHOD_TRACE__METHOD, oldMethod, method));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.METHOD_TRACE__METHOD:
-                return getMethod();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.METHOD_TRACE__METHOD:
-                setMethod(newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.METHOD_TRACE__METHOD:
-                setMethod(METHOD_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.METHOD_TRACE__METHOD:
-                return METHOD_EDEFAULT == null ? method != null : !METHOD_EDEFAULT.equals(method);
-        }
-        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(" (method: ");
-        result.append(method);
-        result.append(')');
-        return result.toString();
-    }
-
-} //MethodTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModelElementTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModelElementTraceImpl.java
deleted file mode 100644
index 507b0c909121d09836e89009ad746ab9b4c2fb57..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModelElementTraceImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-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.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.ModelElementTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Model Element Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModelElementTraceImpl#getElement <em>Element</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ModelElementTraceImpl extends EdgeReferenceImpl implements ModelElementTrace {
-    /**
-     * The cached value of the '{@link #getElement() <em>Element</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getElement()
-     * @generated
-     * @ordered
-     */
-    protected EObject element;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ModelElementTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.MODEL_ELEMENT_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EObject getElement() {
-        if (element != null && element.eIsProxy()) {
-            InternalEObject oldElement = (InternalEObject)element;
-            element = eResolveProxy(oldElement);
-            if (element != oldElement) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT, oldElement, element));
-            }
-        }
-        return element;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EObject basicGetElement() {
-        return element;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setElement(EObject newElement) {
-        EObject oldElement = element;
-        element = newElement;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT, oldElement, element));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT:
-                if (resolve) return getElement();
-                return basicGetElement();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT:
-                setElement((EObject)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT:
-                setElement((EObject)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODEL_ELEMENT_TRACE__ELEMENT:
-                return element != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //ModelElementTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModularHypergraphImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModularHypergraphImpl.java
deleted file mode 100644
index b1979fa17cf41c348d9e92116b0d47c9065e630a..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModularHypergraphImpl.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import java.util.Collection;
-
-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.EObjectContainmentEList;
-import org.eclipse.emf.ecore.util.InternalEList;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.ModularHypergraph;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Modular Hypergraph</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModularHypergraphImpl#getModules <em>Modules</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ModularHypergraphImpl extends HypergraphImpl implements ModularHypergraph {
-    /**
-     * The cached value of the '{@link #getModules() <em>Modules</em>}' containment reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getModules()
-     * @generated
-     * @ordered
-     */
-    protected EList<org.oceandsl.hypergraph.Module> modules;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ModularHypergraphImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.MODULAR_HYPERGRAPH;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<org.oceandsl.hypergraph.Module> getModules() {
-        if (modules == null) {
-            modules = new EObjectContainmentEList<org.oceandsl.hypergraph.Module>(org.oceandsl.hypergraph.Module.class, this, HypergraphPackage.MODULAR_HYPERGRAPH__MODULES);
-        }
-        return modules;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case HypergraphPackage.MODULAR_HYPERGRAPH__MODULES:
-                return ((InternalEList<?>)getModules()).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 HypergraphPackage.MODULAR_HYPERGRAPH__MODULES:
-                return getModules();
-        }
-        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 HypergraphPackage.MODULAR_HYPERGRAPH__MODULES:
-                getModules().clear();
-                getModules().addAll((Collection<? extends org.oceandsl.hypergraph.Module>)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULAR_HYPERGRAPH__MODULES:
-                getModules().clear();
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULAR_HYPERGRAPH__MODULES:
-                return modules != null && !modules.isEmpty();
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //ModularHypergraphImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleImpl.java
deleted file mode 100644
index 729c12b13bccc371901e9bc7fffc3c11de210bb5..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleImpl.java
+++ /dev/null
@@ -1,285 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import java.util.Collection;
-
-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.EObjectResolvingEList;
-
-import org.oceandsl.hypergraph.EModuleKind;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.ModuleReference;
-import org.oceandsl.hypergraph.Node;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Module</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModuleImpl#getNodes <em>Nodes</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModuleImpl#getDerivedFrom <em>Derived From</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModuleImpl#getKind <em>Kind</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ModuleImpl extends NamedElementImpl implements org.oceandsl.hypergraph.Module {
-    /**
-     * The cached value of the '{@link #getNodes() <em>Nodes</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getNodes()
-     * @generated
-     * @ordered
-     */
-    protected EList<Node> nodes;
-
-    /**
-     * The cached value of the '{@link #getDerivedFrom() <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getDerivedFrom()
-     * @generated
-     * @ordered
-     */
-    protected ModuleReference derivedFrom;
-
-    /**
-     * The default value of the '{@link #getKind() <em>Kind</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getKind()
-     * @generated
-     * @ordered
-     */
-    protected static final EModuleKind KIND_EDEFAULT = EModuleKind.SYSTEM;
-
-    /**
-     * The cached value of the '{@link #getKind() <em>Kind</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getKind()
-     * @generated
-     * @ordered
-     */
-    protected EModuleKind kind = KIND_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ModuleImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.MODULE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Node> getNodes() {
-        if (nodes == null) {
-            nodes = new EObjectResolvingEList<Node>(Node.class, this, HypergraphPackage.MODULE__NODES);
-        }
-        return nodes;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public ModuleReference getDerivedFrom() {
-        return derivedFrom;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetDerivedFrom(ModuleReference newDerivedFrom, NotificationChain msgs) {
-        ModuleReference oldDerivedFrom = derivedFrom;
-        derivedFrom = newDerivedFrom;
-        if (eNotificationRequired()) {
-            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HypergraphPackage.MODULE__DERIVED_FROM, oldDerivedFrom, newDerivedFrom);
-            if (msgs == null) msgs = notification; else msgs.add(notification);
-        }
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setDerivedFrom(ModuleReference newDerivedFrom) {
-        if (newDerivedFrom != derivedFrom) {
-            NotificationChain msgs = null;
-            if (derivedFrom != null)
-                msgs = ((InternalEObject)derivedFrom).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.MODULE__DERIVED_FROM, null, msgs);
-            if (newDerivedFrom != null)
-                msgs = ((InternalEObject)newDerivedFrom).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.MODULE__DERIVED_FROM, null, msgs);
-            msgs = basicSetDerivedFrom(newDerivedFrom, msgs);
-            if (msgs != null) msgs.dispatch();
-        }
-        else if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.MODULE__DERIVED_FROM, newDerivedFrom, newDerivedFrom));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EModuleKind getKind() {
-        return kind;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setKind(EModuleKind newKind) {
-        EModuleKind oldKind = kind;
-        kind = newKind == null ? KIND_EDEFAULT : newKind;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.MODULE__KIND, oldKind, kind));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE__DERIVED_FROM:
-                return basicSetDerivedFrom(null, 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 HypergraphPackage.MODULE__NODES:
-                return getNodes();
-            case HypergraphPackage.MODULE__DERIVED_FROM:
-                return getDerivedFrom();
-            case HypergraphPackage.MODULE__KIND:
-                return getKind();
-        }
-        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 HypergraphPackage.MODULE__NODES:
-                getNodes().clear();
-                getNodes().addAll((Collection<? extends Node>)newValue);
-                return;
-            case HypergraphPackage.MODULE__DERIVED_FROM:
-                setDerivedFrom((ModuleReference)newValue);
-                return;
-            case HypergraphPackage.MODULE__KIND:
-                setKind((EModuleKind)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE__NODES:
-                getNodes().clear();
-                return;
-            case HypergraphPackage.MODULE__DERIVED_FROM:
-                setDerivedFrom((ModuleReference)null);
-                return;
-            case HypergraphPackage.MODULE__KIND:
-                setKind(KIND_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE__NODES:
-                return nodes != null && !nodes.isEmpty();
-            case HypergraphPackage.MODULE__DERIVED_FROM:
-                return derivedFrom != null;
-            case HypergraphPackage.MODULE__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(" (kind: ");
-        result.append(kind);
-        result.append(')');
-        return result.toString();
-    }
-
-} //ModuleImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleReferenceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleReferenceImpl.java
deleted file mode 100644
index 1b842c0f3b928fc593a98b8a501b293e89b64fbf..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleReferenceImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.ModuleReference;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Module Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class ModuleReferenceImpl extends MinimalEObjectImpl.Container implements ModuleReference {
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ModuleReferenceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.MODULE_REFERENCE;
-    }
-
-} //ModuleReferenceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleTraceImpl.java
deleted file mode 100644
index 37f87c8cac3bccf163c452fae667d42afd6221c5..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/ModuleTraceImpl.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-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;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.ModuleTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Module Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.ModuleTraceImpl#getModule <em>Module</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class ModuleTraceImpl extends ModuleReferenceImpl implements ModuleTrace {
-    /**
-     * The cached value of the '{@link #getModule() <em>Module</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getModule()
-     * @generated
-     * @ordered
-     */
-    protected org.oceandsl.hypergraph.Module module;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected ModuleTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.MODULE_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public org.oceandsl.hypergraph.Module getModule() {
-        if (module != null && module.eIsProxy()) {
-            InternalEObject oldModule = (InternalEObject)module;
-            module = (org.oceandsl.hypergraph.Module)eResolveProxy(oldModule);
-            if (module != oldModule) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, HypergraphPackage.MODULE_TRACE__MODULE, oldModule, module));
-            }
-        }
-        return module;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public org.oceandsl.hypergraph.Module basicGetModule() {
-        return module;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setModule(org.oceandsl.hypergraph.Module newModule) {
-        org.oceandsl.hypergraph.Module oldModule = module;
-        module = newModule;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.MODULE_TRACE__MODULE, oldModule, module));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE_TRACE__MODULE:
-                if (resolve) return getModule();
-                return basicGetModule();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE_TRACE__MODULE:
-                setModule((org.oceandsl.hypergraph.Module)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE_TRACE__MODULE:
-                setModule((org.oceandsl.hypergraph.Module)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.MODULE_TRACE__MODULE:
-                return module != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //ModuleTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NamedElementImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NamedElementImpl.java
deleted file mode 100644
index 918453e153d84b655ec653e81fa2d3e8f3bad088..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NamedElementImpl.java
+++ /dev/null
@@ -1,163 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.NamedElement;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Named Element</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.NamedElementImpl#getName <em>Name</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement {
-    /**
-     * The default value of the '{@link #getName() <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected static final String NAME_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getName()
-     * @generated
-     * @ordered
-     */
-    protected String name = NAME_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected NamedElementImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.NAMED_ELEMENT;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setName(String newName) {
-        String oldName = name;
-        name = newName;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.NAMED_ELEMENT__NAME, oldName, name));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.NAMED_ELEMENT__NAME:
-                return getName();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.NAMED_ELEMENT__NAME:
-                setName((String)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NAMED_ELEMENT__NAME:
-                setName(NAME_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NAMED_ELEMENT__NAME:
-                return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
-        }
-        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(" (name: ");
-        result.append(name);
-        result.append(')');
-        return result.toString();
-    }
-
-} //NamedElementImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeImpl.java
deleted file mode 100644
index 0672903506fdf0a07292270da326779f90773bfb..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeImpl.java
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import java.util.Collection;
-
-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.EObjectResolvingEList;
-
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeReference;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.NodeImpl#getEdges <em>Edges</em>}</li>
- *   <li>{@link org.oceandsl.hypergraph.impl.NodeImpl#getDerivedFrom <em>Derived From</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NodeImpl extends NamedElementImpl implements Node {
-    /**
-     * The cached value of the '{@link #getEdges() <em>Edges</em>}' reference list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getEdges()
-     * @generated
-     * @ordered
-     */
-    protected EList<Edge> edges;
-
-    /**
-     * The cached value of the '{@link #getDerivedFrom() <em>Derived From</em>}' containment reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getDerivedFrom()
-     * @generated
-     * @ordered
-     */
-    protected NodeReference derivedFrom;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected NodeImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.NODE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public EList<Edge> getEdges() {
-        if (edges == null) {
-            edges = new EObjectResolvingEList<Edge>(Edge.class, this, HypergraphPackage.NODE__EDGES);
-        }
-        return edges;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NodeReference getDerivedFrom() {
-        return derivedFrom;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public NotificationChain basicSetDerivedFrom(NodeReference newDerivedFrom, NotificationChain msgs) {
-        NodeReference oldDerivedFrom = derivedFrom;
-        derivedFrom = newDerivedFrom;
-        if (eNotificationRequired()) {
-            ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, HypergraphPackage.NODE__DERIVED_FROM, oldDerivedFrom, newDerivedFrom);
-            if (msgs == null) msgs = notification; else msgs.add(notification);
-        }
-        return msgs;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setDerivedFrom(NodeReference newDerivedFrom) {
-        if (newDerivedFrom != derivedFrom) {
-            NotificationChain msgs = null;
-            if (derivedFrom != null)
-                msgs = ((InternalEObject)derivedFrom).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.NODE__DERIVED_FROM, null, msgs);
-            if (newDerivedFrom != null)
-                msgs = ((InternalEObject)newDerivedFrom).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - HypergraphPackage.NODE__DERIVED_FROM, null, msgs);
-            msgs = basicSetDerivedFrom(newDerivedFrom, msgs);
-            if (msgs != null) msgs.dispatch();
-        }
-        else if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.NODE__DERIVED_FROM, newDerivedFrom, newDerivedFrom));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
-        switch (featureID) {
-            case HypergraphPackage.NODE__DERIVED_FROM:
-                return basicSetDerivedFrom(null, 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 HypergraphPackage.NODE__EDGES:
-                return getEdges();
-            case HypergraphPackage.NODE__DERIVED_FROM:
-                return getDerivedFrom();
-        }
-        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 HypergraphPackage.NODE__EDGES:
-                getEdges().clear();
-                getEdges().addAll((Collection<? extends Edge>)newValue);
-                return;
-            case HypergraphPackage.NODE__DERIVED_FROM:
-                setDerivedFrom((NodeReference)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NODE__EDGES:
-                getEdges().clear();
-                return;
-            case HypergraphPackage.NODE__DERIVED_FROM:
-                setDerivedFrom((NodeReference)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NODE__EDGES:
-                return edges != null && !edges.isEmpty();
-            case HypergraphPackage.NODE__DERIVED_FROM:
-                return derivedFrom != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //NodeImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeReferenceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeReferenceImpl.java
deleted file mode 100644
index 56dc92ed5279db3f5748733b1c8917e9946e0def..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeReferenceImpl.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.NodeReference;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node Reference</b></em>'.
- * <!-- end-user-doc -->
- *
- * @generated
- */
-public class NodeReferenceImpl extends MinimalEObjectImpl.Container implements NodeReference {
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected NodeReferenceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.NODE_REFERENCE;
-    }
-
-} //NodeReferenceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeTraceImpl.java
deleted file mode 100644
index 9c7e49826f20e40643000f406e7a55930afc2c93..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/NodeTraceImpl.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-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;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Node Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.NodeTraceImpl#getNode <em>Node</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class NodeTraceImpl extends NodeReferenceImpl implements NodeTrace {
-    /**
-     * The cached value of the '{@link #getNode() <em>Node</em>}' reference.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getNode()
-     * @generated
-     * @ordered
-     */
-    protected Node node;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected NodeTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.NODE_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Node getNode() {
-        if (node != null && node.eIsProxy()) {
-            InternalEObject oldNode = (InternalEObject)node;
-            node = (Node)eResolveProxy(oldNode);
-            if (node != oldNode) {
-                if (eNotificationRequired())
-                    eNotify(new ENotificationImpl(this, Notification.RESOLVE, HypergraphPackage.NODE_TRACE__NODE, oldNode, node));
-            }
-        }
-        return node;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Node basicGetNode() {
-        return node;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setNode(Node newNode) {
-        Node oldNode = node;
-        node = newNode;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.NODE_TRACE__NODE, oldNode, node));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.NODE_TRACE__NODE:
-                if (resolve) return getNode();
-                return basicGetNode();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.NODE_TRACE__NODE:
-                setNode((Node)newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NODE_TRACE__NODE:
-                setNode((Node)null);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.NODE_TRACE__NODE:
-                return node != null;
-        }
-        return super.eIsSet(featureID);
-    }
-
-} //NodeTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/TypeTraceImpl.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/TypeTraceImpl.java
deleted file mode 100644
index 8c95de5485e9bfcdaedcc65e834fc9bcc0eecc61..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/impl/TypeTraceImpl.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.impl;
-
-import org.eclipse.emf.common.notify.Notification;
-
-import org.eclipse.emf.ecore.EClass;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
-
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.TypeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * An implementation of the model object '<em><b>Type Trace</b></em>'.
- * <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- *   <li>{@link org.oceandsl.hypergraph.impl.TypeTraceImpl#getType <em>Type</em>}</li>
- * </ul>
- *
- * @generated
- */
-public class TypeTraceImpl extends ModuleReferenceImpl implements TypeTrace {
-    /**
-     * The default value of the '{@link #getType() <em>Type</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getType()
-     * @generated
-     * @ordered
-     */
-    protected static final Object TYPE_EDEFAULT = null;
-
-    /**
-     * The cached value of the '{@link #getType() <em>Type</em>}' attribute.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getType()
-     * @generated
-     * @ordered
-     */
-    protected Object type = TYPE_EDEFAULT;
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected TypeTraceImpl() {
-        super();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    protected EClass eStaticClass() {
-        return HypergraphPackage.Literals.TYPE_TRACE;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public Object getType() {
-        return type;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public void setType(Object newType) {
-        Object oldType = type;
-        type = newType;
-        if (eNotificationRequired())
-            eNotify(new ENotificationImpl(this, Notification.SET, HypergraphPackage.TYPE_TRACE__TYPE, oldType, type));
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public Object eGet(int featureID, boolean resolve, boolean coreType) {
-        switch (featureID) {
-            case HypergraphPackage.TYPE_TRACE__TYPE:
-                return getType();
-        }
-        return super.eGet(featureID, resolve, coreType);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eSet(int featureID, Object newValue) {
-        switch (featureID) {
-            case HypergraphPackage.TYPE_TRACE__TYPE:
-                setType(newValue);
-                return;
-        }
-        super.eSet(featureID, newValue);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void eUnset(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.TYPE_TRACE__TYPE:
-                setType(TYPE_EDEFAULT);
-                return;
-        }
-        super.eUnset(featureID);
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean eIsSet(int featureID) {
-        switch (featureID) {
-            case HypergraphPackage.TYPE_TRACE__TYPE:
-                return TYPE_EDEFAULT == null ? type != null : !TYPE_EDEFAULT.equals(type);
-        }
-        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(" (type: ");
-        result.append(type);
-        result.append(')');
-        return result.toString();
-    }
-
-} //TypeTraceImpl
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphAdapterFactory.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphAdapterFactory.java
deleted file mode 100644
index 2b0aa3a550775fd2c84b785bb41862cb7b5ceb9e..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphAdapterFactory.java
+++ /dev/null
@@ -1,443 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.util;
-
-import org.eclipse.emf.common.notify.Adapter;
-import org.eclipse.emf.common.notify.Notifier;
-
-import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
-
-import org.eclipse.emf.ecore.EObject;
-
-import org.oceandsl.hypergraph.CallerCalleeTrace;
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.EdgeTrace;
-import org.oceandsl.hypergraph.FieldTrace;
-import org.oceandsl.hypergraph.GenericTrace;
-import org.oceandsl.hypergraph.Hypergraph;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.MethodTrace;
-import org.oceandsl.hypergraph.ModelElementTrace;
-import org.oceandsl.hypergraph.ModularHypergraph;
-import org.oceandsl.hypergraph.ModuleReference;
-import org.oceandsl.hypergraph.ModuleTrace;
-import org.oceandsl.hypergraph.NamedElement;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeReference;
-import org.oceandsl.hypergraph.NodeTrace;
-import org.oceandsl.hypergraph.TypeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Adapter Factory</b> for the model.
- * It provides an adapter <code>createXXX</code> method for each class of the model.
- * <!-- end-user-doc -->
- * @see org.oceandsl.hypergraph.HypergraphPackage
- * @generated
- */
-public class HypergraphAdapterFactory extends AdapterFactoryImpl {
-    /**
-     * The cached model package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected static HypergraphPackage modelPackage;
-
-    /**
-     * Creates an instance of the adapter factory.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public HypergraphAdapterFactory() {
-        if (modelPackage == null) {
-            modelPackage = HypergraphPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Returns whether this factory is applicable for the type of the object.
-     * <!-- begin-user-doc -->
-     * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
-     * <!-- end-user-doc -->
-     * @return whether this factory is applicable for the type of the object.
-     * @generated
-     */
-    @Override
-    public boolean isFactoryForType(Object object) {
-        if (object == modelPackage) {
-            return true;
-        }
-        if (object instanceof EObject) {
-            return ((EObject)object).eClass().getEPackage() == modelPackage;
-        }
-        return false;
-    }
-
-    /**
-     * The switch that delegates to the <code>createXXX</code> methods.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected HypergraphSwitch<Adapter> modelSwitch =
-        new HypergraphSwitch<Adapter>() {
-            @Override
-            public Adapter caseHypergraph(Hypergraph object) {
-                return createHypergraphAdapter();
-            }
-            @Override
-            public Adapter caseModularHypergraph(ModularHypergraph object) {
-                return createModularHypergraphAdapter();
-            }
-            @Override
-            public Adapter caseModule(org.oceandsl.hypergraph.Module object) {
-                return createModuleAdapter();
-            }
-            @Override
-            public Adapter caseNode(Node object) {
-                return createNodeAdapter();
-            }
-            @Override
-            public Adapter caseEdge(Edge object) {
-                return createEdgeAdapter();
-            }
-            @Override
-            public Adapter caseNamedElement(NamedElement object) {
-                return createNamedElementAdapter();
-            }
-            @Override
-            public Adapter caseNodeTrace(NodeTrace object) {
-                return createNodeTraceAdapter();
-            }
-            @Override
-            public Adapter caseEdgeTrace(EdgeTrace object) {
-                return createEdgeTraceAdapter();
-            }
-            @Override
-            public Adapter caseGenericTrace(GenericTrace object) {
-                return createGenericTraceAdapter();
-            }
-            @Override
-            public Adapter caseNodeReference(NodeReference object) {
-                return createNodeReferenceAdapter();
-            }
-            @Override
-            public Adapter caseEdgeReference(EdgeReference object) {
-                return createEdgeReferenceAdapter();
-            }
-            @Override
-            public Adapter caseModuleTrace(ModuleTrace object) {
-                return createModuleTraceAdapter();
-            }
-            @Override
-            public Adapter caseModuleReference(ModuleReference object) {
-                return createModuleReferenceAdapter();
-            }
-            @Override
-            public Adapter caseTypeTrace(TypeTrace object) {
-                return createTypeTraceAdapter();
-            }
-            @Override
-            public Adapter caseFieldTrace(FieldTrace object) {
-                return createFieldTraceAdapter();
-            }
-            @Override
-            public Adapter caseMethodTrace(MethodTrace object) {
-                return createMethodTraceAdapter();
-            }
-            @Override
-            public Adapter caseCallerCalleeTrace(CallerCalleeTrace object) {
-                return createCallerCalleeTraceAdapter();
-            }
-            @Override
-            public Adapter caseModelElementTrace(ModelElementTrace object) {
-                return createModelElementTraceAdapter();
-            }
-            @Override
-            public Adapter defaultCase(EObject object) {
-                return createEObjectAdapter();
-            }
-        };
-
-    /**
-     * Creates an adapter for the <code>target</code>.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param target the object to adapt.
-     * @return the adapter for the <code>target</code>.
-     * @generated
-     */
-    @Override
-    public Adapter createAdapter(Notifier target) {
-        return modelSwitch.doSwitch((EObject)target);
-    }
-
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.Hypergraph <em>Hypergraph</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.oceandsl.hypergraph.Hypergraph
-     * @generated
-     */
-    public Adapter createHypergraphAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.ModularHypergraph <em>Modular Hypergraph</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.oceandsl.hypergraph.ModularHypergraph
-     * @generated
-     */
-    public Adapter createModularHypergraphAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.Module <em>Module</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.oceandsl.hypergraph.Module
-     * @generated
-     */
-    public Adapter createModuleAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.Node <em>Node</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.oceandsl.hypergraph.Node
-     * @generated
-     */
-    public Adapter createNodeAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.Edge <em>Edge</em>}'.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null so that we can easily ignore cases;
-     * it's useful to ignore a case when inheritance will catch all the cases anyway.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @see org.oceandsl.hypergraph.Edge
-     * @generated
-     */
-    public Adapter createEdgeAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.NamedElement <em>Named Element</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.oceandsl.hypergraph.NamedElement
-     * @generated
-     */
-    public Adapter createNamedElementAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.NodeTrace <em>Node Trace</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.oceandsl.hypergraph.NodeTrace
-     * @generated
-     */
-    public Adapter createNodeTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.EdgeTrace <em>Edge Trace</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.oceandsl.hypergraph.EdgeTrace
-     * @generated
-     */
-    public Adapter createEdgeTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.GenericTrace <em>Generic Trace</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.oceandsl.hypergraph.GenericTrace
-     * @generated
-     */
-    public Adapter createGenericTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.NodeReference <em>Node Reference</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.oceandsl.hypergraph.NodeReference
-     * @generated
-     */
-    public Adapter createNodeReferenceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.EdgeReference <em>Edge Reference</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.oceandsl.hypergraph.EdgeReference
-     * @generated
-     */
-    public Adapter createEdgeReferenceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.ModuleTrace <em>Module Trace</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.oceandsl.hypergraph.ModuleTrace
-     * @generated
-     */
-    public Adapter createModuleTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.ModuleReference <em>Module Reference</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.oceandsl.hypergraph.ModuleReference
-     * @generated
-     */
-    public Adapter createModuleReferenceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.TypeTrace <em>Type Trace</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.oceandsl.hypergraph.TypeTrace
-     * @generated
-     */
-    public Adapter createTypeTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.FieldTrace <em>Field Trace</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.oceandsl.hypergraph.FieldTrace
-     * @generated
-     */
-    public Adapter createFieldTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.MethodTrace <em>Method Trace</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.oceandsl.hypergraph.MethodTrace
-     * @generated
-     */
-    public Adapter createMethodTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.CallerCalleeTrace <em>Caller Callee Trace</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.oceandsl.hypergraph.CallerCalleeTrace
-     * @generated
-     */
-    public Adapter createCallerCalleeTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for an object of class '{@link org.oceandsl.hypergraph.ModelElementTrace <em>Model Element Trace</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.oceandsl.hypergraph.ModelElementTrace
-     * @generated
-     */
-    public Adapter createModelElementTraceAdapter() {
-        return null;
-    }
-
-    /**
-     * Creates a new adapter for the default case.
-     * <!-- begin-user-doc -->
-     * This default implementation returns null.
-     * <!-- end-user-doc -->
-     * @return the new adapter.
-     * @generated
-     */
-    public Adapter createEObjectAdapter() {
-        return null;
-    }
-
-} //HypergraphAdapterFactory
diff --git a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphSwitch.java b/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphSwitch.java
deleted file mode 100644
index aa2c1fb00bd1a95514ad88cf72501cfcb4422a8b..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/gen/java/org/oceandsl/hypergraph/util/HypergraphSwitch.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/**
- */
-package org.oceandsl.hypergraph.util;
-
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.EPackage;
-
-import org.eclipse.emf.ecore.util.Switch;
-
-import org.oceandsl.hypergraph.CallerCalleeTrace;
-import org.oceandsl.hypergraph.Edge;
-import org.oceandsl.hypergraph.EdgeReference;
-import org.oceandsl.hypergraph.EdgeTrace;
-import org.oceandsl.hypergraph.FieldTrace;
-import org.oceandsl.hypergraph.GenericTrace;
-import org.oceandsl.hypergraph.Hypergraph;
-import org.oceandsl.hypergraph.HypergraphPackage;
-import org.oceandsl.hypergraph.MethodTrace;
-import org.oceandsl.hypergraph.ModelElementTrace;
-import org.oceandsl.hypergraph.ModularHypergraph;
-import org.oceandsl.hypergraph.ModuleReference;
-import org.oceandsl.hypergraph.ModuleTrace;
-import org.oceandsl.hypergraph.NamedElement;
-import org.oceandsl.hypergraph.Node;
-import org.oceandsl.hypergraph.NodeReference;
-import org.oceandsl.hypergraph.NodeTrace;
-import org.oceandsl.hypergraph.TypeTrace;
-
-/**
- * <!-- begin-user-doc -->
- * The <b>Switch</b> for the model's inheritance hierarchy.
- * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
- * to invoke the <code>caseXXX</code> method for each class of the model,
- * starting with the actual class of the object
- * and proceeding up the inheritance hierarchy
- * until a non-null result is returned,
- * which is the result of the switch.
- * <!-- end-user-doc -->
- * @see org.oceandsl.hypergraph.HypergraphPackage
- * @generated
- */
-public class HypergraphSwitch<T> extends Switch<T> {
-    /**
-     * The cached model package
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    protected static HypergraphPackage modelPackage;
-
-    /**
-     * Creates an instance of the switch.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    public HypergraphSwitch() {
-        if (modelPackage == null) {
-            modelPackage = HypergraphPackage.eINSTANCE;
-        }
-    }
-
-    /**
-     * Checks whether this is a switch for the given package.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @param ePackage the package in question.
-     * @return whether this is a switch for the given package.
-     * @generated
-     */
-    @Override
-    protected boolean isSwitchFor(EPackage ePackage) {
-        return ePackage == modelPackage;
-    }
-
-    /**
-     * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the first non-null result returned by a <code>caseXXX</code> call.
-     * @generated
-     */
-    @Override
-    protected T doSwitch(int classifierID, EObject theEObject) {
-        switch (classifierID) {
-            case HypergraphPackage.HYPERGRAPH: {
-                Hypergraph hypergraph = (Hypergraph)theEObject;
-                T result = caseHypergraph(hypergraph);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.MODULAR_HYPERGRAPH: {
-                ModularHypergraph modularHypergraph = (ModularHypergraph)theEObject;
-                T result = caseModularHypergraph(modularHypergraph);
-                if (result == null) result = caseHypergraph(modularHypergraph);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.MODULE: {
-                org.oceandsl.hypergraph.Module module = (org.oceandsl.hypergraph.Module)theEObject;
-                T result = caseModule(module);
-                if (result == null) result = caseNamedElement(module);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.NODE: {
-                Node node = (Node)theEObject;
-                T result = caseNode(node);
-                if (result == null) result = caseNamedElement(node);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.EDGE: {
-                Edge edge = (Edge)theEObject;
-                T result = caseEdge(edge);
-                if (result == null) result = caseNamedElement(edge);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.NAMED_ELEMENT: {
-                NamedElement namedElement = (NamedElement)theEObject;
-                T result = caseNamedElement(namedElement);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.NODE_TRACE: {
-                NodeTrace nodeTrace = (NodeTrace)theEObject;
-                T result = caseNodeTrace(nodeTrace);
-                if (result == null) result = caseNodeReference(nodeTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.EDGE_TRACE: {
-                EdgeTrace edgeTrace = (EdgeTrace)theEObject;
-                T result = caseEdgeTrace(edgeTrace);
-                if (result == null) result = caseEdgeReference(edgeTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.GENERIC_TRACE: {
-                GenericTrace genericTrace = (GenericTrace)theEObject;
-                T result = caseGenericTrace(genericTrace);
-                if (result == null) result = caseNodeReference(genericTrace);
-                if (result == null) result = caseEdgeReference(genericTrace);
-                if (result == null) result = caseModuleReference(genericTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.NODE_REFERENCE: {
-                NodeReference nodeReference = (NodeReference)theEObject;
-                T result = caseNodeReference(nodeReference);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.EDGE_REFERENCE: {
-                EdgeReference edgeReference = (EdgeReference)theEObject;
-                T result = caseEdgeReference(edgeReference);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.MODULE_TRACE: {
-                ModuleTrace moduleTrace = (ModuleTrace)theEObject;
-                T result = caseModuleTrace(moduleTrace);
-                if (result == null) result = caseModuleReference(moduleTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.MODULE_REFERENCE: {
-                ModuleReference moduleReference = (ModuleReference)theEObject;
-                T result = caseModuleReference(moduleReference);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.TYPE_TRACE: {
-                TypeTrace typeTrace = (TypeTrace)theEObject;
-                T result = caseTypeTrace(typeTrace);
-                if (result == null) result = caseModuleReference(typeTrace);
-                if (result == null) result = caseNodeReference(typeTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.FIELD_TRACE: {
-                FieldTrace fieldTrace = (FieldTrace)theEObject;
-                T result = caseFieldTrace(fieldTrace);
-                if (result == null) result = caseEdgeReference(fieldTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.METHOD_TRACE: {
-                MethodTrace methodTrace = (MethodTrace)theEObject;
-                T result = caseMethodTrace(methodTrace);
-                if (result == null) result = caseNodeReference(methodTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.CALLER_CALLEE_TRACE: {
-                CallerCalleeTrace callerCalleeTrace = (CallerCalleeTrace)theEObject;
-                T result = caseCallerCalleeTrace(callerCalleeTrace);
-                if (result == null) result = caseEdgeReference(callerCalleeTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            case HypergraphPackage.MODEL_ELEMENT_TRACE: {
-                ModelElementTrace modelElementTrace = (ModelElementTrace)theEObject;
-                T result = caseModelElementTrace(modelElementTrace);
-                if (result == null) result = caseEdgeReference(modelElementTrace);
-                if (result == null) result = caseModuleReference(modelElementTrace);
-                if (result == null) result = caseNodeReference(modelElementTrace);
-                if (result == null) result = defaultCase(theEObject);
-                return result;
-            }
-            default: return defaultCase(theEObject);
-        }
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Hypergraph</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>Hypergraph</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseHypergraph(Hypergraph object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Modular Hypergraph</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>Modular Hypergraph</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseModularHypergraph(ModularHypergraph object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Module</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>Module</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseModule(org.oceandsl.hypergraph.Module object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Node</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Node</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseNode(Node object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Edge</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>Edge</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseEdge(Edge object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Named Element</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>Named Element</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseNamedElement(NamedElement object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Node Trace</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>Node Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseNodeTrace(NodeTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Edge Trace</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>Edge Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseEdgeTrace(EdgeTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Generic Trace</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>Generic Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseGenericTrace(GenericTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Node Reference</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>Node Reference</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseNodeReference(NodeReference object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Edge Reference</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>Edge Reference</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseEdgeReference(EdgeReference object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Module Trace</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>Module Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseModuleTrace(ModuleTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Module Reference</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>Module Reference</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseModuleReference(ModuleReference object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Type Trace</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>Type Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseTypeTrace(TypeTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Field Trace</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>Field Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseFieldTrace(FieldTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Method Trace</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>Method Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseMethodTrace(MethodTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Caller Callee Trace</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>Caller Callee Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseCallerCalleeTrace(CallerCalleeTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>Model Element Trace</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>Model Element Trace</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
-     * @generated
-     */
-    public T caseModelElementTrace(ModelElementTrace object) {
-        return null;
-    }
-
-    /**
-     * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
-     * <!-- begin-user-doc -->
-     * This implementation returns null;
-     * returning a non-null result will terminate the switch, but this is the last case anyway.
-     * <!-- end-user-doc -->
-     * @param object the target of the switch.
-     * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
-     * @see #doSwitch(org.eclipse.emf.ecore.EObject)
-     * @generated
-     */
-    @Override
-    public T defaultCase(EObject object) {
-        return null;
-    }
-
-} //HypergraphSwitch
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/package-info.java b/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/package-info.java
deleted file mode 100644
index 2b777b7171d0b51be652c21e5d8c8811f1cdac3a..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/sinks/package-info.java
+++ /dev/null
@@ -1 +0,0 @@
-package org.oceandsl.architecture.model.stages.sinks;
\ No newline at end of file
diff --git a/tools/create-architecture-model/src/main/model/Hypergraph.ecore b/tools/create-architecture-model/src/main/model/Hypergraph.ecore
deleted file mode 100644
index 4d1b7cf3b8eec685f78a50c85acbc16be85ea339..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/main/model/Hypergraph.ecore
+++ /dev/null
@@ -1,85 +0,0 @@
-<?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="hypergraph" nsURI="http://evaluation.se.cs.cau.de/hypergraph"
-    nsPrefix="hypergraph">
-  <eClassifiers xsi:type="ecore:EClass" name="Hypergraph">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
-        eType="#//Node" containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="edges" upperBound="-1"
-        eType="#//Edge" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModularHypergraph" eSuperTypes="#//Hypergraph">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="modules" upperBound="-1"
-        eType="#//Module" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Module" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="nodes" upperBound="-1"
-        eType="#//Node"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="derivedFrom" eType="#//ModuleReference"
-        containment="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" lowerBound="1" eType="#//EModuleKind"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EEnum" name="EModuleKind">
-    <eLiterals name="SYSTEM"/>
-    <eLiterals name="FRAMEWORK" value="1"/>
-    <eLiterals name="ANONYMOUS" value="2"/>
-    <eLiterals name="INTERFACE" value="3"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Node" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="edges" upperBound="-1"
-        eType="#//Edge"/>
-    <eStructuralFeatures xsi:type="ecore:EReference" name="derivedFrom" lowerBound="1"
-        eType="#//NodeReference" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="Edge" eSuperTypes="#//NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="derivedFrom" lowerBound="1"
-        eType="#//EdgeReference" containment="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NamedElement">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NodeTrace" eSuperTypes="#//NodeReference">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="node" lowerBound="1" eType="#//Node"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="EdgeTrace" eSuperTypes="#//EdgeReference">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="edge" lowerBound="1" eType="#//Edge"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="GenericTrace" eSuperTypes="#//NodeReference #//EdgeReference #//ModuleReference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resourceId" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="NodeReference"/>
-  <eClassifiers xsi:type="ecore:EClass" name="EdgeReference"/>
-  <eClassifiers xsi:type="ecore:EClass" name="ModuleTrace" eSuperTypes="#//ModuleReference">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="module" lowerBound="1"
-        eType="#//Module" transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModuleReference"/>
-  <eClassifiers xsi:type="ecore:EClass" name="TypeTrace" eSuperTypes="#//ModuleReference #//NodeReference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="FieldTrace" eSuperTypes="#//EdgeReference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="field" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="MethodTrace" eSuperTypes="#//NodeReference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="method" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="CallerCalleeTrace" eSuperTypes="#//EdgeReference">
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="caller" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
-        transient="true"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="callee" lowerBound="1"
-        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaObject"
-        transient="true"/>
-  </eClassifiers>
-  <eClassifiers xsi:type="ecore:EClass" name="ModelElementTrace" eSuperTypes="#//EdgeReference #//ModuleReference #//NodeReference">
-    <eStructuralFeatures xsi:type="ecore:EReference" name="element" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject"
-        transient="true"/>
-  </eClassifiers>
-</ecore:EPackage>
diff --git a/tools/create-architecture-model/src/main/model/Hypergraph.genmodel b/tools/create-architecture-model/src/main/model/Hypergraph.genmodel
deleted file mode 100644
index 17317255d9018d31fe7eac42b3f3ac74b1f1f0ce..0000000000000000000000000000000000000000
--- a/tools/create-architecture-model/src/main/model/Hypergraph.genmodel
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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" modelDirectory="/create-architecture-model/src/gen/java" editDirectory="/create-architecture-model/src/gen/java"
-    modelPluginID="create-architecture-model" modelName="Hypergraph" rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container"
-    importerID="org.eclipse.emf.importer.ecore" complianceLevel="5.0" copyrightFields="false"
-    operationReflection="true" importOrganizing="true">
-  <foreignModel>Hypergraph.ecore</foreignModel>
-  <genPackages prefix="Hypergraph" basePackage="org.oceandsl" disposableProviderFactory="true"
-      ecorePackage="Hypergraph.ecore#/">
-    <genEnums typeSafeEnumCompatible="false" ecoreEnum="Hypergraph.ecore#//EModuleKind">
-      <genEnumLiterals ecoreEnumLiteral="Hypergraph.ecore#//EModuleKind/SYSTEM"/>
-      <genEnumLiterals ecoreEnumLiteral="Hypergraph.ecore#//EModuleKind/FRAMEWORK"/>
-      <genEnumLiterals ecoreEnumLiteral="Hypergraph.ecore#//EModuleKind/ANONYMOUS"/>
-      <genEnumLiterals ecoreEnumLiteral="Hypergraph.ecore#//EModuleKind/INTERFACE"/>
-    </genEnums>
-    <genClasses ecoreClass="Hypergraph.ecore#//Hypergraph">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Hypergraph/nodes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Hypergraph/edges"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//ModularHypergraph">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//ModularHypergraph/modules"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//Module">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Module/nodes"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Module/derivedFrom"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//Module/kind"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//Node">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Node/edges"/>
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Node/derivedFrom"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//Edge">
-      <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//Edge/derivedFrom"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//NamedElement">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//NamedElement/name"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//NodeTrace">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//NodeTrace/node"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//EdgeTrace">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//EdgeTrace/edge"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//GenericTrace">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//GenericTrace/resourceId"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//NodeReference"/>
-    <genClasses ecoreClass="Hypergraph.ecore#//EdgeReference"/>
-    <genClasses ecoreClass="Hypergraph.ecore#//ModuleTrace">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//ModuleTrace/module"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//ModuleReference"/>
-    <genClasses ecoreClass="Hypergraph.ecore#//TypeTrace">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//TypeTrace/type"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//FieldTrace">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//FieldTrace/field"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//MethodTrace">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//MethodTrace/method"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//CallerCalleeTrace">
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//CallerCalleeTrace/caller"/>
-      <genFeatures createChild="false" ecoreFeature="ecore:EAttribute Hypergraph.ecore#//CallerCalleeTrace/callee"/>
-    </genClasses>
-    <genClasses ecoreClass="Hypergraph.ecore#//ModelElementTrace">
-      <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference Hypergraph.ecore#//ModelElementTrace/element"/>
-    </genClasses>
-  </genPackages>
-</genmodel:GenModel>
diff --git a/tools/dar/build.gradle b/tools/dar/build.gradle
index 1ae07e7c47a8adf444d8d89d84049f5f913f63f7..d1f542a8335edd118632a655c5b2ee271bf510a0 100644
--- a/tools/dar/build.gradle
+++ b/tools/dar/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.16.0'
diff --git a/tools/dar/src/main/java/org/oceandsl/tools/dar/DynamicArchitectureRecoveryMain.java b/tools/dar/src/main/java/org/oceandsl/tools/dar/DynamicArchitectureRecoveryMain.java
index adac2925e74a380037daacb9f52f8a75caeffe81..ff09694711408fb52bf973ad2969b44c15f44e74 100644
--- a/tools/dar/src/main/java/org/oceandsl/tools/dar/DynamicArchitectureRecoveryMain.java
+++ b/tools/dar/src/main/java/org/oceandsl/tools/dar/DynamicArchitectureRecoveryMain.java
@@ -21,8 +21,8 @@ import java.nio.file.Files;
 
 import com.beust.jcommander.JCommander;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.slf4j.LoggerFactory;
 
 import kieker.analysis.stage.model.ModelRepository;
@@ -55,7 +55,7 @@ public class DynamicArchitectureRecoveryMain extends AbstractService<TeetimeConf
     @Override
     protected TeetimeConfiguration createTeetimeConfiguration() throws ConfigurationException {
         try {
-            this.repository = ArchitectureModelManagementFactory.createModelRepository(
+            this.repository = ArchitectureModelManagementUtils.createModelRepository(
                     this.parameterConfiguration.getExperimentName(),
                     this.parameterConfiguration.getComponentMapFiles() != null);
 
@@ -105,7 +105,7 @@ public class DynamicArchitectureRecoveryMain extends AbstractService<TeetimeConf
     @Override
     protected void shutdownService() {
         try {
-            ArchitectureModelManagementFactory.writeModelRepository(this.parameterConfiguration.getOutputDirectory(),
+            ArchitectureModelManagementUtils.writeModelRepository(this.parameterConfiguration.getOutputDirectory(),
                     this.repository);
         } catch (final IOException e) {
             this.logger.error("Error saving model: {}", e.getLocalizedMessage());
diff --git a/tools/dar/src/main/java/org/oceandsl/tools/dar/MapBasedSignatureCleaner.java b/tools/dar/src/main/java/org/oceandsl/tools/dar/MapBasedSignatureCleaner.java
index 69ae508e48fd7a23b1c4f4e0f15f19b542898b6b..f7e75d33f070591a0a0c1902da07730de7edf39c 100644
--- a/tools/dar/src/main/java/org/oceandsl/tools/dar/MapBasedSignatureCleaner.java
+++ b/tools/dar/src/main/java/org/oceandsl/tools/dar/MapBasedSignatureCleaner.java
@@ -15,15 +15,15 @@
  ***************************************************************************/
 package org.oceandsl.tools.dar;
 
-import java.io.BufferedReader;
 import java.io.IOException;
-import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.oceandsl.analysis.utils.MapFileReader;
+import org.oceandsl.analysis.utils.StringValueConverter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -39,26 +39,16 @@ public class MapBasedSignatureCleaner extends AbstractSignatureCleaner {
 
     private final Map<String, String> componentMap = new HashMap<>();
 
-    public MapBasedSignatureCleaner(final List<Path> componentMapFiles, final boolean caseInsensitive)
-            throws IOException {
+    public MapBasedSignatureCleaner(final List<Path> componentMapFiles, final boolean caseInsensitive,
+            final String separator) throws IOException {
         super(caseInsensitive);
         for (final Path componentMapFile : componentMapFiles) {
             this.logger.info("Reading map file {}", componentMapFile.toString());
-            final BufferedReader reader = Files.newBufferedReader(componentMapFile);
-            String line;
-            while ((line = reader.readLine()) != null) {
-                final String[] values = line.split(";");
-                if (values.length == 2) {
-                    // 0 = component name
-                    // 1 = file name
-                    // 2 = function name
-                    this.componentMap.put(this.convertToLowerCase(this.removeTrailingUnderscore(values[1].trim())),
-                            this.convertToLowerCase(this.removeTrailingUnderscore(values[0].trim())));
-                } else {
-                    this.logger.error("Entry incomplete '{}'", line.trim());
-                }
-            }
-            reader.close();
+
+            final MapFileReader<String, String> mapFileReader = new MapFileReader<String, String>(componentMapFile,
+                    separator, this.componentMap, new StringValueConverter(caseInsensitive, 1),
+                    new StringValueConverter(caseInsensitive, 0));
+            mapFileReader.read();
         }
     }
 
diff --git a/tools/dar/src/main/java/org/oceandsl/tools/dar/TeetimeConfiguration.java b/tools/dar/src/main/java/org/oceandsl/tools/dar/TeetimeConfiguration.java
index 0528abacdb54eecd2379ac4dfa6937aaafe43099..e688326c57863f879beb6115c1c39443e8cfb476 100644
--- a/tools/dar/src/main/java/org/oceandsl/tools/dar/TeetimeConfiguration.java
+++ b/tools/dar/src/main/java/org/oceandsl/tools/dar/TeetimeConfiguration.java
@@ -22,9 +22,9 @@ import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.oceandsl.analysis.RewriteBeforeAndAfterEventsStage;
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
-import org.oceandsl.architecture.model.stages.CountEventsStage;
+import org.oceandsl.analysis.stages.dynamic.RewriteBeforeAndAfterEventsStage;
+import org.oceandsl.analysis.stages.generic.CountEventsStage;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.slf4j.Logger;
 
 import kieker.analysis.signature.AbstractSignatureCleaner;
@@ -88,7 +88,7 @@ public class TeetimeConfiguration extends Configuration {
         if (parameterConfiguration.getComponentMapFiles() != null) {
             logger.info("Map based component definition");
             componentSignatureCleaner = new MapBasedSignatureCleaner(parameterConfiguration.getComponentMapFiles(),
-                    parameterConfiguration.getCaseInsensitive());
+                    parameterConfiguration.getCaseInsensitive(), ";");
             operationSignatureCleaner = new MapBasedOperationSignatureCleaner(
                     parameterConfiguration.getCaseInsensitive());
         } else {
diff --git a/tools/mop/build.gradle b/tools/mop/build.gradle
index be36e854d34b3b6cb93dfe6285164cce436e1017..1eb42aeabb8f004d01cd28736c711943fd5e6eee 100644
--- a/tools/mop/build.gradle
+++ b/tools/mop/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
diff --git a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelProcessor.java b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelProcessor.java
index 4be74e1239f6adf271e0ffff03d67638c81e8645..2a37c95e30495eae12b4eb1befd3238cee337c3d 100644
--- a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelProcessor.java
+++ b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelProcessor.java
@@ -15,7 +15,7 @@
  ***************************************************************************/
 package org.oceandsl.tools.mop.stages;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
 import org.oceandsl.tools.mop.merge.ModelRepositoryMerger;
 
 import kieker.analysis.stage.model.ModelRepository;
@@ -35,7 +35,7 @@ public class ModelProcessor extends AbstractConsumerStage<ModelRepository> {
     int task = 0;
 
     public ModelProcessor(final String repositoryName) {
-        this.lastModel = ArchitectureModelManagementFactory.createModelRepository(repositoryName);
+        this.lastModel = ArchitectureModelManagementUtils.createModelRepository(repositoryName);
     }
 
     @Override
diff --git a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelRepositoryReaderStage.java b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelRepositoryReaderStage.java
index 858a870fb433412848996e1ea3bb6d741113f7c8..36e2e1fd4a6cbbd102cf518742fb07a9f6d03fcf 100644
--- a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelRepositoryReaderStage.java
+++ b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelRepositoryReaderStage.java
@@ -17,7 +17,7 @@ package org.oceandsl.tools.mop.stages;
 
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
 
 import kieker.analysis.stage.model.ModelRepository;
 import teetime.stage.basic.AbstractTransformation;
@@ -30,7 +30,7 @@ public class ModelRepositoryReaderStage extends AbstractTransformation<Path, Mod
 
     @Override
     protected void execute(final Path element) throws Exception {
-        this.outputPort.send(ArchitectureModelManagementFactory.loadModelRepository(element));
+        this.outputPort.send(ArchitectureModelManagementUtils.loadModelRepository(element));
     }
 
 }
diff --git a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelSink.java b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelSink.java
index eec2ec4387b054d3c367c6461e55dc2901ee520f..2d7c13f3dfe0d41d6f38e52ef0e37e366c9e9a72 100644
--- a/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelSink.java
+++ b/tools/mop/src/main/java/org/oceandsl/tools/mop/stages/ModelSink.java
@@ -17,7 +17,7 @@ package org.oceandsl.tools.mop.stages;
 
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
 
 import kieker.analysis.stage.model.ModelRepository;
 import teetime.framework.AbstractConsumerStage;
@@ -36,7 +36,7 @@ public class ModelSink extends AbstractConsumerStage<ModelRepository> {
 
     @Override
     protected void execute(final ModelRepository element) throws Exception {
-        ArchitectureModelManagementFactory.writeModelRepository(this.outputPath, element);
+        ArchitectureModelManagementUtils.writeModelRepository(this.outputPath, element);
     }
 
 }
diff --git a/tools/mvis/build.gradle b/tools/mvis/build.gradle
index 51d5232bbebd6265626c49094272faa600554c16..1eb812785e6cb1dbf2fb3b3e96f00d79d2f3b179 100644
--- a/tools/mvis/build.gradle
+++ b/tools/mvis/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore.xmi:2.16.0'
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/EOutputGraph.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/EOutputGraph.java
index 9b99f84c2dc80bf2caa531d9e12e308e80338eb3..be0fec39b23011090076349bfca37c091f6ea144 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/EOutputGraph.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/EOutputGraph.java
@@ -16,8 +16,10 @@
 package org.oceandsl.tools.mvis;
 
 /**
- * @author Reiner Jung
+ * Different supported graph outputs.
  *
+ * @author Reiner Jung
+ * @since 1.1
  */
 public enum EOutputGraph {
     DOT_OP, GRAPHML, DOT_COMPONENT
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphGenerationConverter.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphGenerationConverter.java
index c4c1e16d08f95337207079e481b4c2a28ad859d0..84a57c609074303a7cdcf3b96d726fe1d0784476 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphGenerationConverter.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphGenerationConverter.java
@@ -20,8 +20,10 @@ import com.beust.jcommander.IStringConverter;
 import org.oceandsl.tools.mvis.stages.graph.EGraphGenerationMode;
 
 /**
- * @author reiner
+ * Convert command line parameter strings to @{link EGraphGenerationMode}s.
  *
+ * @author Reiner Jung
+ * @since 1.1
  */
 public class GraphGenerationConverter implements IStringConverter<EGraphGenerationMode> {
 
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphTypeConverter.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphTypeConverter.java
index 4b25a9e9769ab1cb1f976c7446505f7e4e8e1bea..c5e2cbe4fa7ec7971231f036735232283c3fb9b6 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphTypeConverter.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/GraphTypeConverter.java
@@ -19,7 +19,7 @@ import com.beust.jcommander.IStringConverter;
 
 /**
  * @author Reiner Jung
- * @since 1.0
+ * @since 1.1
  *
  */
 public class GraphTypeConverter implements IStringConverter<EOutputGraph> {
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ModelVisualizationMain.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ModelVisualizationMain.java
index 9b09f1cab9fb4893af7f19efa212d26d737b1598..a20632b22985558095bb3492ed8a3abfa30406e8 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ModelVisualizationMain.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ModelVisualizationMain.java
@@ -21,7 +21,7 @@ import java.nio.file.Files;
 
 import com.beust.jcommander.JCommander;
 
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.oceandsl.tools.mvis.stages.graph.EGraphGenerationMode;
 import org.slf4j.LoggerFactory;
 
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/TeetimeConfiguration.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/TeetimeConfiguration.java
index 34306c7f3b27c52c5a5d0b45032cc202ea87242d..63c54c4b45f32d09ecb4b2e56164632d01fef610 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/TeetimeConfiguration.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/TeetimeConfiguration.java
@@ -17,13 +17,13 @@ package org.oceandsl.tools.mvis;
 
 import java.io.IOException;
 
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
-import org.oceandsl.architecture.model.stages.ModelRepositoryProducerStage;
-import org.oceandsl.architecture.model.stages.sinks.TableCSVSink;
-import org.oceandsl.architecture.model.stages.utils.DedicatedFileNameMapper;
+import org.oceandsl.analysis.stages.generic.TableCSVSink;
+import org.oceandsl.analysis.stages.model.ModelRepositoryProducerStage;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.oceandsl.tools.mvis.graph.ColorAssemblyLevelComponentDependencyGraphBuilderFactory;
 import org.oceandsl.tools.mvis.graph.ColorAssemblyLevelOperationDependencyGraphBuilderFactory;
 import org.oceandsl.tools.mvis.graph.ColoredDotExportConfigurationFactory;
+import org.oceandsl.tools.mvis.graph.DedicatedFileNameMapper;
 import org.oceandsl.tools.mvis.graph.IColorDependencyGraphBuilderConfiguration;
 import org.oceandsl.tools.mvis.stages.entropy.AllenDeployedArchitectureGraphStage;
 import org.oceandsl.tools.mvis.stages.entropy.ComputeAllenComplexityMetrics;
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelComponentDependencyGraphBuilder.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelComponentDependencyGraphBuilder.java
index d06dcb86c157239f20c0b9cde130a8d06abb5146..300f4b6ca476442728334551f6fe236035257323 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelComponentDependencyGraphBuilder.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelComponentDependencyGraphBuilder.java
@@ -15,7 +15,6 @@
  ***************************************************************************/
 package org.oceandsl.tools.mvis.graph;
 
-import org.oceandsl.tools.mvis.ExtraConstants;
 import org.oceandsl.tools.mvis.stages.graph.IGraphElementSelector;
 
 import kieker.analysis.graph.IVertex;
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelOperationDependencyGraphBuilder.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelOperationDependencyGraphBuilder.java
index 6ad9c37701cc75e4d7375648c32d9218d3e5f3c2..3ed8dc42099a4f1fe8b7693a17b6f27eee9a2ae9 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelOperationDependencyGraphBuilder.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColorAssemblyLevelOperationDependencyGraphBuilder.java
@@ -15,7 +15,6 @@
  ***************************************************************************/
 package org.oceandsl.tools.mvis.graph;
 
-import org.oceandsl.tools.mvis.ExtraConstants;
 import org.oceandsl.tools.mvis.stages.graph.IGraphElementSelector;
 
 import kieker.analysis.graph.IEdge;
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColoredDotExportConfigurationFactory.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColoredDotExportConfigurationFactory.java
index dba6b64ffb2eeb0699769ceab29a52a096231f70..5b199577788ec377618619d85e760d6587c94830 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColoredDotExportConfigurationFactory.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ColoredDotExportConfigurationFactory.java
@@ -17,8 +17,6 @@ package org.oceandsl.tools.mvis.graph;
 
 import java.util.Collection;
 
-import org.oceandsl.tools.mvis.ExtraConstants;
-
 import kieker.analysis.graph.IElement;
 import kieker.analysis.graph.IVertex;
 import kieker.analysis.graph.dependency.PropertyConstants;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DedicatedFileNameMapper.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DedicatedFileNameMapper.java
similarity index 97%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DedicatedFileNameMapper.java
rename to tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DedicatedFileNameMapper.java
index 68f75639e161d0ee7df22eb0d0000e3aa7cfd06e..dd454c85b31fa25a6c954797e9226fda2a251105 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DedicatedFileNameMapper.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DedicatedFileNameMapper.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages.utils;
+package org.oceandsl.tools.mvis.graph;
 
 import java.nio.file.Path;
 import java.util.function.Function;
diff --git a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DotExportConfigurationFactory.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DotExportConfigurationFactory.java
similarity index 99%
rename from tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DotExportConfigurationFactory.java
rename to tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DotExportConfigurationFactory.java
index 20e604e0587a7f03035c1a23c86c5e25f55aa5dd..8040f94e0dc05c6b223c4881b9d3c48e1d983cdd 100644
--- a/tools/create-architecture-model/src/main/java/org/oceandsl/architecture/model/stages/utils/DotExportConfigurationFactory.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/DotExportConfigurationFactory.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.architecture.model.stages.utils;
+package org.oceandsl.tools.mvis.graph;
 
 import java.util.Collection;
 
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ExtraConstants.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ExtraConstants.java
similarity index 96%
rename from tools/mvis/src/main/java/org/oceandsl/tools/mvis/ExtraConstants.java
rename to tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ExtraConstants.java
index 3d9f1fe00e63189ae9517793f186c4f2738da60d..269d6b79538d842019b5635ca3c054bad07ac9d2 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/ExtraConstants.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/graph/ExtraConstants.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package org.oceandsl.tools.mvis;
+package org.oceandsl.tools.mvis.graph;
 
 /**
  * @author Reiner Jung
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/ModuleNodeCountCouplingStage.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/ModuleNodeCountCouplingStage.java
index 841e71226942a40822e21b4eedc4b635d19febed..d061dd2510a15b3dbd7c37e622f02b58bf722392 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/ModuleNodeCountCouplingStage.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/ModuleNodeCountCouplingStage.java
@@ -15,9 +15,9 @@
  ***************************************************************************/
 package org.oceandsl.tools.mvis.stages.metrics;
 
-import org.oceandsl.architecture.model.data.table.LongValueHandler;
-import org.oceandsl.architecture.model.data.table.StringValueHandler;
-import org.oceandsl.architecture.model.data.table.Table;
+import org.oceandsl.analysis.stages.staticdata.data.LongValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.StringValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.Table;
 
 import kieker.analysis.graph.Direction;
 import kieker.analysis.graph.IEdge;
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/NumberOfCallsStage.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/NumberOfCallsStage.java
index 9aa55c30a9563d75eaf338322d19d8065c79675e..587854cff7e68ccebe9fefed44cfc1915a78667e 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/NumberOfCallsStage.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/NumberOfCallsStage.java
@@ -19,10 +19,10 @@ import java.util.Map.Entry;
 
 import org.eclipse.emf.common.util.EMap;
 import org.eclipse.emf.ecore.EObject;
-import org.oceandsl.architecture.model.data.table.LongValueHandler;
-import org.oceandsl.architecture.model.data.table.StringValueHandler;
-import org.oceandsl.architecture.model.data.table.Table;
-import org.oceandsl.architecture.model.stages.utils.RepositoryUtils;
+import org.oceandsl.analysis.architecture.model.RepositoryUtils;
+import org.oceandsl.analysis.stages.staticdata.data.LongValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.StringValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.Table;
 
 import kieker.analysis.stage.model.ModelRepository;
 import kieker.model.analysismodel.deployment.DeployedOperation;
diff --git a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/OperationNodeCountCouplingStage.java b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/OperationNodeCountCouplingStage.java
index a5207f4c38ef3675f85382c99c7cc58bae859088..121e885918532cce048d2afbd47a1d122023dc04 100644
--- a/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/OperationNodeCountCouplingStage.java
+++ b/tools/mvis/src/main/java/org/oceandsl/tools/mvis/stages/metrics/OperationNodeCountCouplingStage.java
@@ -15,9 +15,9 @@
  ***************************************************************************/
 package org.oceandsl.tools.mvis.stages.metrics;
 
-import org.oceandsl.architecture.model.data.table.LongValueHandler;
-import org.oceandsl.architecture.model.data.table.StringValueHandler;
-import org.oceandsl.architecture.model.data.table.Table;
+import org.oceandsl.analysis.stages.staticdata.data.LongValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.StringValueHandler;
+import org.oceandsl.analysis.stages.staticdata.data.Table;
 
 import kieker.analysis.graph.Direction;
 import kieker.analysis.graph.IEdge;
diff --git a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CSVWriterStage.java b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CSVWriterStage.java
index 88d7430a583f1820b208a059108c83577dece607..0f00670a09ef114dea913ee40c05754adb0250f6 100644
--- a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CSVWriterStage.java
+++ b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CSVWriterStage.java
@@ -21,7 +21,7 @@ import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import teetime.framework.AbstractConsumerStage;
 
diff --git a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CorrectCallsStage.java b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CorrectCallsStage.java
index 877d2875546fb3823adccb6d0a99a734a38fd657..8e2e040991f6170b544a11aaabe68f369b2b0449 100644
--- a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CorrectCallsStage.java
+++ b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/CorrectCallsStage.java
@@ -18,7 +18,7 @@ package org.oceandsl.pp.log;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import teetime.framework.AbstractStage;
 import teetime.framework.InputPort;
diff --git a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/FixStaticLogTeetimeConfiguration.java b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/FixStaticLogTeetimeConfiguration.java
index 7cbb6da56a047ad271e446f3fe232ec184433ee9..fcfb21dc3fe75e1d70f0eff132552ea6753e43fe 100644
--- a/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/FixStaticLogTeetimeConfiguration.java
+++ b/tools/pp-static-log/src/main/java/org/oceandsl/pp/log/FixStaticLogTeetimeConfiguration.java
@@ -17,7 +17,7 @@ package org.oceandsl.pp.log;
 
 import java.io.IOException;
 
-import org.oceandsl.analysis.CSVFunctionCallReaderStage;
+import org.oceandsl.analysis.stages.staticdata.CSVFunctionCallReaderStage;
 
 import teetime.framework.Configuration;
 
diff --git a/tools/relabel/build.gradle b/tools/relabel/build.gradle
index a030bd27e2bc4f082d695a13cd0a6dd130fdf629..daa174b252d363ec197ab07eb3eac2e9a6ac3866 100644
--- a/tools/relabel/build.gradle
+++ b/tools/relabel/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
diff --git a/tools/relabel/src/main/java/org/oceandsl/tools/relable/ModelRepositoryWriterStage.java b/tools/relabel/src/main/java/org/oceandsl/tools/relable/ModelRepositoryWriterStage.java
index a1151b232794611ba04266f6f99c1d83eda7d4eb..1c3969909cf1a2a0cd4a82e78052375bd3e11bac 100644
--- a/tools/relabel/src/main/java/org/oceandsl/tools/relable/ModelRepositoryWriterStage.java
+++ b/tools/relabel/src/main/java/org/oceandsl/tools/relable/ModelRepositoryWriterStage.java
@@ -17,7 +17,7 @@ package org.oceandsl.tools.relable;
 
 import java.nio.file.Path;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
 
 import kieker.analysis.stage.model.ModelRepository;
 import teetime.framework.AbstractConsumerStage;
@@ -39,7 +39,7 @@ public class ModelRepositoryWriterStage extends AbstractConsumerStage<ModelRepos
 
     @Override
     protected void execute(final ModelRepository element) throws Exception {
-        ArchitectureModelManagementFactory.writeModelRepository(this.outputDirectory, element);
+        ArchitectureModelManagementUtils.writeModelRepository(this.outputDirectory, element);
     }
 
 }
diff --git a/tools/relabel/src/main/java/org/oceandsl/tools/relable/TeetimeConfiguration.java b/tools/relabel/src/main/java/org/oceandsl/tools/relable/TeetimeConfiguration.java
index b4c7b07f30bb32acdca390f2b7f4c3c3717b15df..6711ba7163f03824dc97dfcb6ec1d7946d800e66 100644
--- a/tools/relabel/src/main/java/org/oceandsl/tools/relable/TeetimeConfiguration.java
+++ b/tools/relabel/src/main/java/org/oceandsl/tools/relable/TeetimeConfiguration.java
@@ -1,6 +1,6 @@
 package org.oceandsl.tools.relable;
 
-import org.oceandsl.architecture.model.stages.ModelRepositoryProducerStage;
+import org.oceandsl.analysis.stages.model.ModelRepositoryProducerStage;
 
 import teetime.framework.Configuration;
 
diff --git a/tools/rewrite-log-entries/src/main/java/org/oceandsl/log/rewriter/TeetimeConfiguration.java b/tools/rewrite-log-entries/src/main/java/org/oceandsl/log/rewriter/TeetimeConfiguration.java
index 2c86ce92df9cdeaff67948f527c65c609a96a9fd..79a37ea2b3cd54f5469ac10b177207bdb323028a 100644
--- a/tools/rewrite-log-entries/src/main/java/org/oceandsl/log/rewriter/TeetimeConfiguration.java
+++ b/tools/rewrite-log-entries/src/main/java/org/oceandsl/log/rewriter/TeetimeConfiguration.java
@@ -5,7 +5,7 @@ package org.oceandsl.log.rewriter;
 
 import java.io.IOException;
 
-import org.oceandsl.analysis.RewriteBeforeAndAfterEventsStage;
+import org.oceandsl.analysis.stages.dynamic.RewriteBeforeAndAfterEventsStage;
 
 import kieker.analysis.sink.DataSinkStage;
 import kieker.tools.source.LogsReaderCompositeStage;
diff --git a/tools/sar/build.gradle b/tools/sar/build.gradle
index a161a35309882050570c31af6d63cbe2f98ddf6a..8e870a97a0b80f66ac9d83162d9fb35806ebdb97 100644
--- a/tools/sar/build.gradle
+++ b/tools/sar/build.gradle
@@ -14,7 +14,6 @@ plugins {
 dependencies {
     implementation project(':common')
     implementation project(':analysis')
-    implementation project(':tools:create-architecture-model')
     
     // https://mvnrepository.com/artifact/org.eclipse.emf/org.eclipse.emf.ecore
     implementation 'org.eclipse.emf:org.eclipse.emf.ecore:2.23.0'
@@ -27,6 +26,10 @@ dependencies {
     implementation 'jakarta.xml.bind:jakarta.xml.bind-api:2.3.3'
     implementation 'com.sun.xml.bind:jaxb-impl:2.3.3'
     implementation 'org.apache.commons:commons-compress:1.20'
+    
+    testImplementation 'junit:junit:4.13'
+    testImplementation 'org.hamcrest:hamcrest-all:1.3'
+    testImplementation "org.mockito:mockito-core:3.+"
 }
 
 application {
diff --git a/tools/sar/hs_err_pid172691.log b/tools/sar/hs_err_pid172691.log
new file mode 100644
index 0000000000000000000000000000000000000000..7ca4382006718fbc0551ac7ad423ccf028287240
--- /dev/null
+++ b/tools/sar/hs_err_pid172691.log
@@ -0,0 +1,40 @@
+#
+# A fatal error has been detected by the Java Runtime Environment:
+#
+#  SIGSEGV (0xb) at pc=0x00007fa890fae31e, pid=172691, tid=172707
+#
+# JRE version: OpenJDK Runtime Environment (11.0.11+9) (build 11.0.11+9-Ubuntu-0ubuntu2)
+# Java VM: OpenJDK 64-Bit Server VM (11.0.11+9-Ubuntu-0ubuntu2, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
+# Problematic frame:
+# C  [libjimage.so+0x331e]
+#
+# Core dump will be written. Default location: Core dumps may be processed with "/usr/share/apport/apport %p %s %c %d %P %E" (or dumping to /home/reiner/Projects/OceanDSL/oceandsl-tools/tools/sar/core.172691)
+#
+# If you would like to submit a bug report, please visit:
+#   https://bugs.launchpad.net/ubuntu/+source/openjdk-lts
+#
+
+---------------  S U M M A R Y ------------
+
+Command Line: -agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:42583 -javaagent:/home/reiner/eclipse/dsl-2020-09/eclipse/configuration/org.eclipse.osgi/1081/0/.cp/lib/javaagent-shaded.jar -Dfile.encoding=UTF-8 org.oceandsl.tools.sar.StaticArchitectureRecoveryMain -i /home/reiner/Projects/OceanDSL/experiments/static-uvic/uvic-callgraph.csv -j /home/reiner/Projects/OceanDSL/oceandsl-tools/dataflow.csv -f /home/reiner/Projects/OceanDSL/experiments/static-uvic/uvic-functionnames.csv /home/reiner/Projects/OceanDSL/experiments/static-uvic/additional-functionnames.csv -o /home/reiner/temp/model-sar/ -l static -E demo -H node1 -c
+
+Host: Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz, 4 cores, 7G, Ubuntu 21.04
+Time: Sat Sep 25 00:10:38 2021 CEST elapsed time: 7189.507873 seconds (0d 1h 59m 49s)
+
+---------------  T H R E A D  ---------------
+
+Current thread (0x00007fa888185800):  JavaThread "Signal Dispatcher" daemon [_thread_in_vm, id=172707, stack(0x00007fa86803f000,0x00007fa868140000)]
+
+Stack: [0x00007fa86803f000,0x00007fa868140000],  sp=0x00007fa86813d170,  free space=1016k
+Native frames: (J=compiled Java code, A=aot compiled Java code, j=interpreted, Vv=VM code, C=native code)
+C  [libjimage.so+0x331e]
+C  [libjimage.so+0x3fd2]
+C  [libjimage.so+0x44d1]  JIMAGE_FindResource+0xf1
+V  [libjvm.so+0x5af541]
+V  [libjvm.so+0x5b1da1]
+V  [libjvm.so+0xde49bd]
+V  [libjvm.so+0xde34fa]
+V  [libjvm.so+0xde5c2b]
+V  [libjvm.so+0x662169]
+V  [libjvm.so+0x84b176]
+j  jdk.internal.misc.Signal.dispatch(I)V+25 java.base@11.0.11
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/StaticArchitectureRecoveryMain.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/StaticArchitectureRecoveryMain.java
index 66617923f9cee82ae9d383f8e1dd6dc721d51309..9b83a869831bf59dcd1c928415a3b743110f238b 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/StaticArchitectureRecoveryMain.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/StaticArchitectureRecoveryMain.java
@@ -22,8 +22,8 @@ import java.nio.file.Path;
 import com.beust.jcommander.JCommander;
 import com.beust.jcommander.ParameterException;
 
-import org.oceandsl.architecture.model.ArchitectureModelManagementFactory;
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.architecture.model.ArchitectureModelManagementUtils;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -84,7 +84,7 @@ public class StaticArchitectureRecoveryMain {
      *            printed to the debug log about what application is running.
      */
     private void execute(final JCommander commander, final String label) throws ConfigurationException {
-    	this.repository = ArchitectureModelManagementFactory.createModelRepository(
+    	this.repository = ArchitectureModelManagementUtils.createModelRepository(
                 this.settings.getExperimentName(), this.settings.getComponentMapFiles() != null);
     	
         if (this.settings.getOperationCallInputFile() != null)
@@ -223,7 +223,7 @@ public class StaticArchitectureRecoveryMain {
 
     private void shutdownService() {
         try {
-            ArchitectureModelManagementFactory.writeModelRepository(this.settings.getOutputDirectory(),
+            ArchitectureModelManagementUtils.writeModelRepository(this.settings.getOutputDirectory(),
                     this.repository);
         } catch (final IOException e) {
             this.logger.error("Error saving model: {}", e.getLocalizedMessage());
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeCallConfiguration.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeCallConfiguration.java
index 7f7003364d907e7f9b05310a5d48d2c49f91d2ab..d842efb624598660e6ec968ae52ea96e426459f0 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeCallConfiguration.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeCallConfiguration.java
@@ -19,12 +19,12 @@ import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
-import org.oceandsl.analysis.CSVFunctionCallReaderStage;
-import org.oceandsl.analysis.CallerCallee;
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
-import org.oceandsl.architecture.model.stages.CSVMapperStage;
-import org.oceandsl.architecture.model.stages.CountUniqueCallsStage;
-import org.oceandsl.architecture.model.stages.OperationCallFixPathStage;
+import org.oceandsl.analysis.stages.model.CountUniqueCallsStage;
+import org.oceandsl.analysis.stages.staticdata.CSVFunctionCallReaderStage;
+import org.oceandsl.analysis.stages.staticdata.CSVMapperStage;
+import org.oceandsl.analysis.stages.staticdata.OperationCallFixPathStage;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.oceandsl.tools.sar.stages.FileBasedCleanupComponentSignatureStage;
 import org.oceandsl.tools.sar.stages.MapBasedCleanupComponentSignatureStage;
 import org.oceandsl.tools.sar.stages.OperationAndCall4StaticDataStage;
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeDataflowConfiguration.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeDataflowConfiguration.java
index f9599de0407b5eb907086e9c2cc906a96dfbc592..a4511c0d5fa7530d6d088534f9f0c8d9f01700b9 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeDataflowConfiguration.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/TeetimeDataflowConfiguration.java
@@ -17,7 +17,7 @@ package org.oceandsl.tools.sar;
 
 import java.io.IOException;
 
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 import org.oceandsl.tools.sar.stages.dataflow.AssemblyModelDataflowAssemblerStage;
 import org.oceandsl.tools.sar.stages.dataflow.CSVDataflowReaderStage;
 import org.oceandsl.tools.sar.stages.dataflow.CountUniqueDataflowCallsStage;
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/AbstractCleanupComponentSignatureStage.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/AbstractCleanupComponentSignatureStage.java
index fa255ba6356cfa769a0d4ae89214e6520b1f1681..6cfeb5a65da01f1b16301fdd4d008badb7e47a45 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/AbstractCleanupComponentSignatureStage.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/AbstractCleanupComponentSignatureStage.java
@@ -15,7 +15,7 @@
  ***************************************************************************/
 package org.oceandsl.tools.sar.stages;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import teetime.stage.basic.AbstractFilter;
 
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStage.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStage.java
index a9b80f206c5dc6261b02a951c92e42d4166b37fb..5fd4d18f381ded1aab777f24d2c2ba2eb198f495 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStage.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStage.java
@@ -19,10 +19,10 @@ import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
 
 /**
- * Remove the directory name portion of class signatures.
+ * Remove the directory name portion of "class" signatures.
  *
  * @author Reiner Jung
  * @since 1.1
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStage.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStage.java
index 53c271703df0d0291bab43028bec515e7800d381..bf3ed4f1633a2a856721f34cbcad63459bd45607 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStage.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStage.java
@@ -15,7 +15,6 @@
  ***************************************************************************/
 package org.oceandsl.tools.sar.stages;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.PrintWriter;
 import java.nio.file.Files;
@@ -25,7 +24,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.oceandsl.architecture.model.data.table.ValueConversionErrorException;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
+import org.oceandsl.analysis.utils.MapFileReader;
+import org.oceandsl.analysis.utils.StringValueConverter;
 
 /**
  * @author Reiner Jung
@@ -46,31 +47,11 @@ public class MapBasedCleanupComponentSignatureStage extends AbstractCleanupCompo
         }
         for (final Path componentMapFile : componentMapFiles) {
             this.logger.info("Reading map file {}", componentMapFile.toString());
-            final BufferedReader reader = Files.newBufferedReader(componentMapFile);
-            String line;
-            while ((line = reader.readLine()) != null) {
-                final String[] values = line.split(separator);
-                if (values.length == 2) {
-                    // 0 = component name
-                    // 1 = file name
-                    this.componentMap.put(this.convertToLowerCase(values[1].trim()),
-                            this.convertToLowerCase(values[0].trim().toLowerCase()));
-                } else {
-                    this.logger.error("Entry incomplete '{}'", line.trim());
-                }
-            }
-            reader.close();
-        }
-    }
-
-    private String convertToLowerCase(final String string) {
-        String value;
-        if (string.endsWith("_")) {
-            value = string.substring(0, string.length() - 1);
-        } else {
-            value = string;
+            final MapFileReader<String, String> mapFileReader = new MapFileReader<String, String>(componentMapFile,
+                    separator, this.componentMap, new StringValueConverter(caseInsensitive, 1),
+                    new StringValueConverter(caseInsensitive, 0));
+            mapFileReader.read();
         }
-        return this.caseInsensitive ? value.toLowerCase() : value;
     }
 
     @Override
@@ -79,8 +60,8 @@ public class MapBasedCleanupComponentSignatureStage extends AbstractCleanupCompo
             return signature;
         } else {
             final Path path = Paths.get(signature);
-            final String filename = this.convertToLowerCase(path.getName(path.getNameCount() - 1).toString());
-            final String result = this.componentMap.get(filename);
+            final String filename = path.getName(path.getNameCount() - 1).toString();
+            final String result = this.componentMap.get(this.caseInsensitive ? filename.toLowerCase() : filename);
             if (result != null) {
                 return result;
             } else {
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStage.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStage.java
index ab6feadd725a2691bf68c31e9079cd76495aacdc..dfb99869dcbbf5e9ce6b86d9cf6ba34a065139e1 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStage.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStage.java
@@ -17,7 +17,7 @@ package org.oceandsl.tools.sar.stages;
 
 import java.time.Duration;
 
-import org.oceandsl.analysis.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
 
 import kieker.analysis.stage.model.data.CallEvent;
 import kieker.analysis.stage.model.data.OperationEvent;
@@ -25,6 +25,11 @@ import teetime.framework.AbstractConsumerStage;
 import teetime.framework.OutputPort;
 
 /**
+ * Transform @{link CallerCallee}s to @{link OperationEvent}s and @{CallEvent}s on model level. The
+ * stage outputs two @{link OperationEvent}s and one @{link CallEvent}s for each @{CallerCallee}
+ * event. It is used to convert static caller-callee data to operation and call data compatible with
+ * the dynamic architecture reconstruction.
+ *
  * @author Reiner Jung
  * @since 1.1
  */
diff --git a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/dataflow/CountUniqueDataflowCallsStage.java b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/dataflow/CountUniqueDataflowCallsStage.java
index 295dd5720dd97a73d78dfbac33c8f875a8b7eaa0..d929303424641006e4c4a47db66845be7af861e8 100644
--- a/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/dataflow/CountUniqueDataflowCallsStage.java
+++ b/tools/sar/src/main/java/org/oceandsl/tools/sar/stages/dataflow/CountUniqueDataflowCallsStage.java
@@ -20,7 +20,7 @@ import java.util.function.Function;
 
 import org.eclipse.emf.common.util.EMap;
 import org.eclipse.emf.ecore.EObject;
-import org.oceandsl.architecture.model.stages.CountUniqueCallsStage;
+import org.oceandsl.analysis.stages.model.CountUniqueCallsStage;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStageTest.java b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStageTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..9cb7d269a39d18631c73a6aa131ec5db8a1e32e2
--- /dev/null
+++ b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/FileBasedCleanupComponentSignatureStageTest.java
@@ -0,0 +1,55 @@
+package org.oceandsl.tools.sar.stages;
+
+import java.io.IOException;
+
+import org.hamcrest.MatcherAssert;
+import org.junit.Test;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
+import org.oceandsl.analysis.stages.staticdata.data.ValueConversionErrorException;
+
+import teetime.framework.test.StageTester;
+
+public class FileBasedCleanupComponentSignatureStageTest {
+
+    private static final String SOURCE_PATH = "source/path/First";
+    private static final String CALLER = "Caller()";
+    private static final String TARGET_PATH = "target/path/Second";
+    private static final String CALLEE = "Callee()";
+
+    @Test
+    public void testConversionWithLowerCase() throws IOException, ValueConversionErrorException {
+        final FileBasedCleanupComponentSignatureStage stage = new FileBasedCleanupComponentSignatureStage(true);
+
+        final CallerCallee callerCallee = new CallerCallee(FileBasedCleanupComponentSignatureStageTest.SOURCE_PATH,
+                FileBasedCleanupComponentSignatureStageTest.CALLER,
+                FileBasedCleanupComponentSignatureStageTest.TARGET_PATH,
+                FileBasedCleanupComponentSignatureStageTest.CALLEE);
+
+        final CallerCallee resultCallerCallee = new CallerCallee("first",
+                FileBasedCleanupComponentSignatureStageTest.CALLER, "second",
+                FileBasedCleanupComponentSignatureStageTest.CALLEE);
+
+        StageTester.test(stage).and().send(callerCallee).to(stage.getInputPort()).start();
+
+        MatcherAssert.assertThat(stage.getOutputPort(), StageTester.produces(resultCallerCallee));
+    }
+
+    @Test
+    public void testConversionWithoutLowerCase() throws IOException, ValueConversionErrorException {
+        final FileBasedCleanupComponentSignatureStage stage = new FileBasedCleanupComponentSignatureStage(false);
+
+        final CallerCallee callerCallee = new CallerCallee(FileBasedCleanupComponentSignatureStageTest.SOURCE_PATH,
+                FileBasedCleanupComponentSignatureStageTest.CALLER,
+                FileBasedCleanupComponentSignatureStageTest.TARGET_PATH,
+                FileBasedCleanupComponentSignatureStageTest.CALLEE);
+
+        final CallerCallee resultCallerCallee = new CallerCallee("First",
+                FileBasedCleanupComponentSignatureStageTest.CALLER, "Second",
+                FileBasedCleanupComponentSignatureStageTest.CALLEE);
+
+        StageTester.test(stage).and().send(callerCallee).to(stage.getInputPort()).start();
+
+        MatcherAssert.assertThat(stage.getOutputPort(), StageTester.produces(resultCallerCallee));
+    }
+
+}
diff --git a/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStageTest.java b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStageTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..afb82fcdbb11c9c06230f6f18752b20438a16356
--- /dev/null
+++ b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/MapBasedCleanupComponentSignatureStageTest.java
@@ -0,0 +1,37 @@
+/***************************************************************************
+ * Copyright (C) 2021 OceanDSL (https://oceandsl.uni-kiel.de)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ***************************************************************************/
+package org.oceandsl.tools.sar.stages;
+
+import org.junit.Test;
+
+public class MapBasedCleanupComponentSignatureStageTest {
+
+    @Test
+    public void cleanupCaseInsensitive() {
+    }
+
+    @Test
+    public void cleanupCaseSensitive() {
+    }
+
+    @Test
+    public void cleanupCaseInsensitiveMissingEntry() {
+    }
+
+    @Test
+    public void cleanupCaseSensitiveMissingEntry() {
+    }
+}
diff --git a/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStageTest.java b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStageTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..a65ab4ce58833879db4917dcdd0d117907379c2d
--- /dev/null
+++ b/tools/sar/src/test/java/org/oceandsl/tools/sar/stages/OperationAndCall4StaticDataStageTest.java
@@ -0,0 +1,42 @@
+package org.oceandsl.tools.sar.stages;
+
+import java.time.Duration;
+
+import org.hamcrest.MatcherAssert;
+import org.junit.Test;
+import org.oceandsl.analysis.stages.staticdata.data.CallerCallee;
+
+import kieker.analysis.stage.model.data.CallEvent;
+import kieker.analysis.stage.model.data.OperationEvent;
+import teetime.framework.test.StageTester;
+
+public class OperationAndCall4StaticDataStageTest {
+
+    private static final String HOSTNAME = "test";
+    private static final String SOURCE_PATH = "source/path";
+    private static final String CALLER = "caller()";
+    private static final String TARGET_PATH = "target/path";
+    private static final String CALLEE = "callee()";
+
+    @Test
+    public void testExecuteCallerCallee() {
+        final OperationAndCall4StaticDataStage stage = new OperationAndCall4StaticDataStage(
+                OperationAndCall4StaticDataStageTest.HOSTNAME);
+
+        final CallerCallee callerCallee = new CallerCallee(OperationAndCall4StaticDataStageTest.SOURCE_PATH,
+                OperationAndCall4StaticDataStageTest.CALLER, OperationAndCall4StaticDataStageTest.TARGET_PATH,
+                OperationAndCall4StaticDataStageTest.CALLEE);
+        final OperationEvent firstOp = new OperationEvent(OperationAndCall4StaticDataStageTest.HOSTNAME,
+                OperationAndCall4StaticDataStageTest.SOURCE_PATH, OperationAndCall4StaticDataStageTest.CALLER);
+        final OperationEvent secondOp = new OperationEvent(OperationAndCall4StaticDataStageTest.HOSTNAME,
+                OperationAndCall4StaticDataStageTest.TARGET_PATH, OperationAndCall4StaticDataStageTest.CALLEE);
+
+        final CallEvent call = new CallEvent(firstOp, secondOp, Duration.ZERO);
+
+        StageTester.test(stage).and().send(callerCallee).to(stage.getInputPort()).start();
+
+        MatcherAssert.assertThat(stage.getOperationOutputPort(), StageTester.produces(firstOp, secondOp));
+        MatcherAssert.assertThat(stage.getCallOutputPort(), StageTester.produces(call));
+    }
+
+}