Merge branch 'sreiser/develop' of https://git.eclipse.org/r/app4mc/org.eclipse.app4mc.addon.transformation into sreiser/develop

Signed-off-by: Sebastian Reiser <Sebastian.Reiser@de.bosch.com>
diff --git a/framework/examples/app4mc.example.transform.cust.product/CustTransformation.product b/framework/examples/app4mc.example.transform.cust.product/CustTransformation.product
index d855cfc..3486641 100644
--- a/framework/examples/app4mc.example.transform.cust.product/CustTransformation.product
+++ b/framework/examples/app4mc.example.transform.cust.product/CustTransformation.product
@@ -9,7 +9,7 @@
    <launcherArgs>
       <programArgs>--properties &quot;${project_loc:/app4mc.example.transform.cust.product}/customInput.properties&quot; -console
       </programArgs>
-      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dlog4j.configuration=headless_log4j.xml
+      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -40,11 +40,12 @@
       <plugin id="org.apache.felix.gogo.runtime"/>
       <plugin id="org.apache.felix.gogo.shell"/>
       <plugin id="org.apache.felix.scr"/>
-      <plugin id="org.apache.log4j"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
       <plugin id="org.eclipse.app4mc.transformation"/>
-      <plugin id="org.eclipse.app4mc.transformation.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.transformation.starter"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file"/>
       <plugin id="org.eclipse.emf.common"/>
       <plugin id="org.eclipse.emf.ecore"/>
       <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
@@ -58,14 +59,14 @@
       <plugin id="org.eclipse.osgi.util"/>
       <plugin id="org.eclipse.xtext.xbase.lib"/>
       <plugin id="org.slf4j.api"/>
-      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
    </plugins>
 
    <configurations>
       <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console" autoStart="true" startLevel="3" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file" autoStart="true" startLevel="3" />
       <plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <property name="log4j.configuration" value="headless_log4j.xml" />
       <property name="app4mctransformation.log.level" value="debug" />
    </configurations>
 
diff --git a/framework/examples/app4mc.example.transform.m2m/META-INF/MANIFEST.MF b/framework/examples/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
index f8916b2..0503d13 100644
--- a/framework/examples/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
+++ b/framework/examples/app4mc.example.transform.m2m/META-INF/MANIFEST.MF
@@ -10,17 +10,14 @@
 Automatic-Module-Name: app4mc.example.transform.m2m
 Import-Package: com.google.inject;version="1.3.0",
  com.google.inject.util;version="1.3.0",
- javax.inject;version="1.0.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.starter,
  org.eclipse.app4mc.transformation.transformers,
  org.eclipse.app4mc.transformation.util,
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
  org.osgi.service.component;version="1.4.0",
- org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: .
 Service-Component: OSGI-INF/app4mc.example.transform.m2m.configuration.AmaltheaModel2ModelTransformationDefinition.xml,
- OSGI-INF/app4mc.example.transform.m2m.configuration.M2MTransformationConfig.xml,
  OSGI-INF/app4mc.example.transform.m2m.transformers.ExampleModel2ModelTransformer.xml
diff --git a/framework/examples/app4mc.example.transform.m2m/OSGI-INF/app4mc.example.transform.m2m.configuration.M2MTransformationConfig.xml b/framework/examples/app4mc.example.transform.m2m/OSGI-INF/app4mc.example.transform.m2m.configuration.M2MTransformationConfig.xml
deleted file mode 100644
index 2594218..0000000
--- a/framework/examples/app4mc.example.transform.m2m/OSGI-INF/app4mc.example.transform.m2m.configuration.M2MTransformationConfig.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="app4mc.example.transform.m2m.configuration.M2MTransformationConfig">
-   <property name="transformation" value="Amalthea2SampleModel"/>
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.executiontype.IModelToModelConfig"/>
-   </service>
-   <implementation class="app4mc.example.transform.m2m.configuration.M2MTransformationConfig"/>
-</scr:component>
\ No newline at end of file
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/configuration/M2MTransformationConfig.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/configuration/M2MTransformationConfig.java
deleted file mode 100644
index 1306d9b..0000000
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/configuration/M2MTransformationConfig.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2m.configuration;
-
-import java.util.Map;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToModelConfig;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import app4mc.example.transform.m2m.loader.AmaltheaMultiFileLoader;
-import app4mc.example.transform.m2m.loader.IMultiFileLoader;
-import app4mc.example.transform.samplemodel.SampleModelPackage;
-
-@Component(
-		configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-		configurationPolicy = ConfigurationPolicy.REQUIRE,
-		property = { ServiceConstants.TRANSFORMATION_PROPERTY + "=Amalthea2SampleModel" },
-		service = IModelToModelConfig.class)
-
-public class M2MTransformationConfig implements IModelToModelConfig {
-
-	private static final Logger LOG = LoggerFactory.getLogger(M2MTransformationConfig.class);
-
-	private IMultiFileLoader amaltheaMultiFileLoader = new AmaltheaMultiFileLoader();
-
-	private String folderPath;
-
-	@Activate
-	void activate(Map<String, ?> properties) {
-		folderPath = (String) properties.get("input_models_folder");
-	}
-
-	public ResourceSet getInputResourceSet() {
-
-		if (folderPath != null) {
-
-			ResourceSet resourceSet = amaltheaMultiFileLoader.loadMultipleFiles(folderPath);
-
-			if (resourceSet.getResources().isEmpty()) {
-				LOG.error("No Amalthea model files are loaded. Verify if the model version is : {}",
-						AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
-			}
-
-			return resourceSet;
-		} else {
-			LOG.error("Input_models_folder parameter not set",
-					new NullPointerException("input_models_folder property not set"));
-		}
-
-		return null;
-	}
-
-	public ResourceSet getOuputResourceSet() {
-
-		ResourceSet outputRurceSet = new ResourceSetImpl();
-
-		outputRurceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
-				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
-
-		outputRurceSet.getPackageRegistry().put(SampleModelPackage.eNS_URI, SampleModelPackage.eINSTANCE);
-
-		return outputRurceSet;
-	}
-
-}
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/AmaltheaMultiFileLoader.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/AmaltheaMultiFileLoader.java
deleted file mode 100644
index cfd15ee..0000000
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/AmaltheaMultiFileLoader.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2m.loader;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.app4mc.amalthea.model.Amalthea;
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceFactory;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceSetImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * AmaltheaMultiFileLoader
- * 
- * Should be replaced by standard AmaltheaLoader (APP4MC version > 1.0.0)
- *
- */
-public class AmaltheaMultiFileLoader implements IMultiFileLoader {
-
-	private static final Logger LOG = LoggerFactory.getLogger(AmaltheaMultiFileLoader.class);
-
-	public ResourceSet loadMultipleFiles(String directoryPath) {
-
-		File folder = new File(directoryPath);
-
-		if (folder.isDirectory()) {
-			File[] listFiles = folder.listFiles((file, name) -> name.endsWith(".amxmi"));
-
-			ResourceSet resourceSet = initializeResourceSet();
-			loadMultipleFiles(resourceSet, listFiles);
-			return resourceSet;
-		}
-
-		return new ResourceSetImpl();
-
-	}
-
-	private List<Amalthea> loadMultipleFiles(ResourceSet resourceSet, File[] listFiles) {
-
-		List<Amalthea> models = new ArrayList<>();
-
-		for (File amxmiFile : listFiles) {
-
-			final Resource res = resourceSet.createResource(URI.createURI("file:////" + amxmiFile.getAbsolutePath()));
-			try {
-				res.load(null);
-				for (final EObject content : res.getContents()) {
-					if (content instanceof Amalthea) {
-						models.add((Amalthea) content);
-					}
-				}
-			} catch (IOException e) {
-				LOG.error(e.getMessage(),e);
-			}
-		}
-		return models;
-	}
-
-	private static ResourceSet initializeResourceSet() {
-		final AmaltheaResourceSetImpl resSet = new AmaltheaResourceSetImpl();
-		resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
-		AmaltheaPackage.eINSTANCE.eClass(); // register the package
-
-		return resSet;
-	}
-
-}
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/IMultiFileLoader.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/IMultiFileLoader.java
deleted file mode 100644
index e00a7d6..0000000
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/loader/IMultiFileLoader.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2m.loader;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-public interface IMultiFileLoader {
-
-	public ResourceSet loadMultipleFiles(String directoryPath);
-}
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/ExampleModel2ModelTransformer.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/ExampleModel2ModelTransformer.java
index d212993..d0b3fc3 100644
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/ExampleModel2ModelTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/ExampleModel2ModelTransformer.java
@@ -24,28 +24,27 @@
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amalthea.model.HWModel;
 import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.transformers.Model2ModelRootTransformer;
-import org.eclipse.app4mc.transformation.util.PropertyUtil;
+import org.eclipse.app4mc.transformation.util.TransformationGuiceModule;
 import org.eclipse.emf.common.util.URI;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
+import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
+import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
 import org.eclipse.xtext.xbase.lib.CollectionLiterals;
 import org.eclipse.xtext.xbase.lib.Exceptions;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
-import com.google.inject.util.Modules;
 
 import app4mc.example.transform.m2m.transformers.hw.ExampleHwTransformer;
 import app4mc.example.transform.samplemodel.Model;
 import app4mc.example.transform.samplemodel.SampleModelFactory;
+import app4mc.example.transform.samplemodel.SampleModelPackage;
 
 @Component(
 	configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
@@ -53,47 +52,54 @@
 	property = { ServiceConstants.TRANSFORMATION_PROPERTY + "=Amalthea2SampleModel" },
 	service = Model2ModelRootTransformer.class
 )
-
 public class ExampleModel2ModelTransformer extends Model2ModelRootTransformer {
-	private static final Logger LOG = LoggerFactory.getLogger(ExampleModel2ModelTransformer.class);
 
 	/**
 	 * - Factory initialization
 	 */
 	private static final SampleModelFactory outputModelFactory = SampleModelFactory.eINSTANCE;
 	
-	private String outputFolder;
 	private final HashMap<ArrayList<?>, Model> transformCache = CollectionLiterals.newHashMap();
-
+	
 	@Activate
-	void activate(final Map<String, ?> properties) {
-		LOG.debug("ExampleModel2ModelTransformer activated");
-
-		outputFolder = PropertyUtil.getProperty(TransformationConstants.M2M_OUTPUT_FOLDER, properties);
+	@Override
+	protected void activate(final Map<String, ?> properties) {
+		super.activate(properties);
 	}
 
 	@Override
-	public void m2mTransformation(final ResourceSet inputResourceSet, final ResourceSet outputResourceSet) {
+	public ResourceSet getOutputResourceSet() {
+
+		ResourceSet outputResourceSet = new ResourceSetImpl();
+
+		outputResourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
+				.put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl());
+
+		outputResourceSet.getPackageRegistry().put(SampleModelPackage.eNS_URI, SampleModelPackage.eINSTANCE);
+
+		return outputResourceSet;
+	}
+
+	@Override
+	public void m2mTransformation() {
 		try {
-			Injector injector = Guice.createInjector(Modules.EMPTY_MODULE);
-			
+			Injector injector = Guice.createInjector(new TransformationGuiceModule(logger));
+
 			ExampleHwTransformer hardwareTransformer = injector.getInstance(ExampleHwTransformer.class);
 			
-			LOG.debug("ExampleHwTransformer : {}", Integer.valueOf(hardwareTransformer.hashCode()));
-
 			int fileIndex = 1;
-			for (final Resource inputResource : inputResourceSet.getResources()) {
+			for (final Resource inputResource : getInputResourceSet(getInputFolder(), logger).getResources()) {
 				for (final EObject content : inputResource.getContents()) {
 
-					LOG.info("Processing file : {}", inputResource.getURI());
+					logger.info("Processing file : {0}", inputResource.getURI());
 
 					final Model simulationModelRoot = transform((Amalthea) content, hardwareTransformer);
-					URI uri = URI.createFileURI(outputFolder + File.separator + Integer.valueOf(fileIndex++) + ".root");
-					final Resource outputResource = outputResourceSet.createResource(uri);
+					URI uri = URI.createFileURI(getOutputFolder() + File.separator + Integer.valueOf(fileIndex++) + ".root");
+					final Resource outputResource = getOutputResourceSet().createResource(uri);
 					outputResource.getContents().add(simulationModelRoot);
 					outputResource.save(null);
 
-					LOG.info("Transformed model file generated at : {}", uri);
+					logger.info("Transformed model file generated at : {0}", uri);
 				}
 			}
 		} catch (IOException e) {
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleHwTransformer.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleHwTransformer.java
index ccc08e0..99ef97d 100644
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleHwTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleHwTransformer.java
@@ -22,8 +22,7 @@
 import org.eclipse.app4mc.amalthea.model.Memory;
 import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
 import org.eclipse.app4mc.amalthea.model.StructureType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
@@ -32,7 +31,9 @@
 
 @Singleton
 public class ExampleHwTransformer {
-	private static final Logger LOG = LoggerFactory.getLogger(ExampleHwTransformer.class);
+	
+	@Inject
+	private SessionLogger logger;
 
 	@Inject
 	private ExampleMemoryTransformer memoryTransformer;
@@ -81,7 +82,7 @@
 		} else if (hwModule instanceof ProcessingUnit) {
 			ProcessingUnit amPU = (ProcessingUnit) hwModule;
 
-			LOG.info("Transforming PU : {}", amPU);
+			logger.info("Transforming PU : {0}", amPU);
 			processingUnitTransformer.transfrom(amPU, outputModel);
 		}
 	}
diff --git a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleProcessingUnitTransformer.java b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleProcessingUnitTransformer.java
index d9657b4..09595d5 100644
--- a/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleProcessingUnitTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2m/src/app4mc/example/transform/m2m/transformers/hw/ExampleProcessingUnitTransformer.java
@@ -21,8 +21,7 @@
 import org.eclipse.app4mc.amalthea.model.Cache;
 import org.eclipse.app4mc.amalthea.model.HwAccessElement;
 import org.eclipse.app4mc.amalthea.model.ProcessingUnit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
@@ -31,7 +30,9 @@
 
 @Singleton
 public class ExampleProcessingUnitTransformer {
-	private static final Logger LOG = LoggerFactory.getLogger(ExampleProcessingUnitTransformer.class);
+	
+	@Inject
+	private SessionLogger logger;
 
 	@Inject
 	private ExampleCacheTransformer cacheTransformer;
@@ -56,7 +57,7 @@
 				for (Cache referredCache : referredCaches) {
 
 						final app4mc.example.transform.samplemodel.Cache outputCache = cacheTransformer.transfrom(referredCache);
-						LOG.info("Cache referred in path elements is : {}", outputCache);
+						logger.info("Cache referred in path elements is : {0}", outputCache);
 				}
 			}
 		}
diff --git a/framework/examples/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF b/framework/examples/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF
index 959df3e..af743f6 100644
--- a/framework/examples/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF
+++ b/framework/examples/app4mc.example.transform.m2t.cust/META-INF/MANIFEST.MF
@@ -10,12 +10,11 @@
  com.google.inject;version="1.3.0",
  com.google.inject.binder;version="1.3.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.starter,
  org.eclipse.app4mc.transformation.transformers,
  org.eclipse.app4mc.transformation.util,
- org.osgi.service.component.annotations;version="1.3.0";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
+ org.osgi.service.component.annotations;version="1.3.0";resolution:=optional
 Export-Package: app4mc.example.transform.m2t.cust.transformers
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse APP4MC
diff --git a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModule.java b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModule.java
index 7a83d7b..ef40ccd 100644
--- a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModule.java
+++ b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModule.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -15,12 +15,18 @@
 
 package app4mc.example.transform.m2t.cust.module;
 
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+
 import app4mc.example.transform.m2t.cust.transformers.CustTransformer;
 import app4mc.example.transform.m2t.transformers.ExampleGuiceModule;
 import app4mc.example.transform.m2t.transformers.ExampleTransformer;
 
 public class CustExampleGuiceModule extends ExampleGuiceModule {
 
+	public CustExampleGuiceModule(SessionLogger logger) {
+		super(logger);
+	}
+
 	@Override
 	protected void configure() {
 		super.configure();
diff --git a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModuleFactory.java b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModuleFactory.java
index 650a341..e87cd80 100644
--- a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModuleFactory.java
+++ b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/module/CustExampleGuiceModuleFactory.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -15,6 +15,7 @@
 
 package app4mc.example.transform.m2t.cust.module;
 
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 
 import app4mc.example.transform.m2t.transformers.ExampleGuiceModuleFactory;
@@ -24,10 +25,10 @@
 	service= ExampleGuiceModuleFactory.class
 )
 public class CustExampleGuiceModuleFactory extends ExampleGuiceModuleFactory {
-
+	
 	@Override
-	public CustExampleGuiceModule getModule() {
-		return new CustExampleGuiceModule();
+	public CustExampleGuiceModule getModule(SessionLogger logger) {
+		return new CustExampleGuiceModule(logger);
 	}
 
 }
diff --git a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/transformers/CustTransformer.java b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/transformers/CustTransformer.java
index fa7e6b3..d5344cc 100644
--- a/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/transformers/CustTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2t.cust/src/app4mc/example/transform/m2t/cust/transformers/CustTransformer.java
@@ -17,8 +17,6 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Singleton;
 
@@ -26,12 +24,10 @@
 
 @Singleton
 public class CustTransformer extends ExampleTransformer {
-
-	private static final Logger LOG = LoggerFactory.getLogger(CustTransformer.class);
-
+	
 	@Override
 	public void generateOutput1(final Amalthea amalthea, final OutputBuffer outputBuffer) {
-		LOG.info(" - executing CustTransformer.generateOutput1");
+		logger.info(" - executing CustTransformer.generateOutput1");
 		outputBuffer.appendTo("TEXT", "1", "Customer template\n");
 
 		super.generateOutput1(amalthea, outputBuffer);
@@ -39,7 +35,7 @@
 
 	@Override
 	public void generateOutput2(final Amalthea amalthea, final OutputBuffer outputBuffer) {
-		LOG.info(" - executing CustTransformer.generateOutput2");
+		logger.info(" - executing CustTransformer.generateOutput2");
 		outputBuffer.appendTo("TEXT", "2", "Customer template\n");
 
 		super.generateOutput2(amalthea, outputBuffer);
diff --git a/framework/examples/app4mc.example.transform.m2t/META-INF/MANIFEST.MF b/framework/examples/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
index eb76402..e1c5aa8 100644
--- a/framework/examples/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
+++ b/framework/examples/app4mc.example.transform.m2t/META-INF/MANIFEST.MF
@@ -9,19 +9,16 @@
 Automatic-Module-Name: app4mc.example.transform.m2t
 Bundle-ActivationPolicy: lazy
 Import-Package: com.google.inject;version="1.3.0",
+ com.google.inject.binder;version="1.3.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.starter,
  org.eclipse.app4mc.transformation.transformers,
  org.eclipse.app4mc.transformation.util,
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
  org.osgi.service.component;version="1.4.0",
- org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
-Export-Package: app4mc.example.transform.m2t.configuration,
- app4mc.example.transform.m2t.loader,
- app4mc.example.transform.m2t.transformers
+ org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional
+Export-Package: app4mc.example.transform.m2t.transformers
 Bundle-ClassPath: .
-Service-Component: OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationDefinition.xml,
- OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationConfig.xml,
- OSGI-INF/app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer.xml,
+Service-Component: OSGI-INF/app4mc.example.transform.m2t.M2TTransformationDefinition.xml,
+ OSGI-INF/app4mc.example.transform.m2t.ExampleModel2TextTransformer.xml,
  OSGI-INF/app4mc.example.transform.m2t.transformers.ExampleGuiceModuleFactory.xml
diff --git a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer.xml b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.ExampleModel2TextTransformer.xml
similarity index 79%
rename from framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer.xml
rename to framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.ExampleModel2TextTransformer.xml
index 15375c6..5cb040f 100644
--- a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer.xml
+++ b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.ExampleModel2TextTransformer.xml
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="app4mc.example.transform.m2t.ExampleModel2TextTransformer">
    <property name="transformation" value="Amalthea2Text"/>
    <service>
       <provide interface="org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer"/>
    </service>
    <reference cardinality="1..1" field="factory" interface="app4mc.example.transform.m2t.transformers.ExampleGuiceModuleFactory" name="factory"/>
-   <implementation class="app4mc.example.transform.m2t.transformers.ExampleModel2TextTransformer"/>
+   <implementation class="app4mc.example.transform.m2t.ExampleModel2TextTransformer"/>
 </scr:component>
\ No newline at end of file
diff --git a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.M2TTransformationDefinition.xml b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.M2TTransformationDefinition.xml
new file mode 100644
index 0000000..45b3a96
--- /dev/null
+++ b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.M2TTransformationDefinition.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="app4mc.example.transform.m2t.M2TTransformationDefinition">
+   <service>
+      <provide interface="org.eclipse.app4mc.transformation.TransformationDefinition"/>
+   </service>
+   <implementation class="app4mc.example.transform.m2t.M2TTransformationDefinition"/>
+</scr:component>
\ No newline at end of file
diff --git a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationConfig.xml b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationConfig.xml
deleted file mode 100644
index d3b7f58..0000000
--- a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationConfig.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="app4mc.example.transform.m2t.configuration.M2TTransformationConfig">
-   <property name="transformation" value="Amalthea2Text"/>
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig"/>
-   </service>
-   <implementation class="app4mc.example.transform.m2t.configuration.M2TTransformationConfig"/>
-</scr:component>
\ No newline at end of file
diff --git a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationDefinition.xml b/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationDefinition.xml
deleted file mode 100644
index ae98116..0000000
--- a/framework/examples/app4mc.example.transform.m2t/OSGI-INF/app4mc.example.transform.m2t.configuration.M2TTransformationDefinition.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="app4mc.example.transform.m2t.configuration.M2TTransformationDefinition">
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.TransformationDefinition"/>
-   </service>
-   <implementation class="app4mc.example.transform.m2t.configuration.M2TTransformationDefinition"/>
-</scr:component>
\ No newline at end of file
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleModel2TextTransformer.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/ExampleModel2TextTransformer.java
similarity index 68%
rename from framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleModel2TextTransformer.java
rename to framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/ExampleModel2TextTransformer.java
index b7540ac..779cbc6 100644
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleModel2TextTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/ExampleModel2TextTransformer.java
@@ -13,29 +13,27 @@
  ********************************************************************************
  */
 
-package app4mc.example.transform.m2t.transformers;
+package app4mc.example.transform.m2t;
 
 import java.util.Map;
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
-import org.eclipse.app4mc.transformation.util.PropertyUtil;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
 
+import app4mc.example.transform.m2t.transformers.ExampleGuiceModuleFactory;
+import app4mc.example.transform.m2t.transformers.ExampleTransformer;
+
 @Component(
 	configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
 	configurationPolicy = ConfigurationPolicy.REQUIRE,
@@ -44,32 +42,29 @@
 )
 public class ExampleModel2TextTransformer extends Model2TextRootTransformer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ExampleModel2TextTransformer.class);
-
 	@Reference
 	ExampleGuiceModuleFactory factory;
-	
-	private OutputBuffer outputBuffer;
 
 	@Activate
-	void activate(final Map<String, ?> properties) {
-		LOG.info("ExampleModel2TextTransformer activated : {}", factory.getClass().getName());
-
-		outputBuffer = new OutputBuffer();
-		outputBuffer.initialize(PropertyUtil.getProperty(TransformationConstants.M2T_OUTPUT_FOLDER, properties));
-		outputBuffer.configureFiletype("TEXT", ".txt", "**************** BEGIN ***************\n\n", "***************** END ****************");
+	@Override
+	protected void activate(Map<String, ?> properties) {
+		super.activate(properties);
 	}
 
 	@Override
-	public void m2tTransformation(final ResourceSet inputResourceSet) {
-
-		Injector injector = Guice.createInjector(factory.getModule());
+	public void m2tTransformation() {
+		Injector injector = Guice.createInjector(factory.getModule(logger));
 		
 		ExampleTransformer exampleTransformer = injector.getInstance(ExampleTransformer.class);
 		
-		for (final Resource resource : inputResourceSet.getResources()) {
+		OutputBuffer outputBuffer = injector.getInstance(OutputBuffer.class);
+		
+		outputBuffer.initialize(getOutputFolder());
+		outputBuffer.configureFiletype("TEXT", ".txt", "**************** BEGIN ***************\n\n", "***************** END ****************");
+		
+		for (final Resource resource : getInputResourceSet(getInputFolder(), logger).getResources()) {
 			for (final EObject model : resource.getContents()) {
-				LOG.info("Processing file : {}", resource.getURI());
+				logger.info("Processing file : {0}", resource.getURI());
 
 				if (model instanceof Amalthea) {
 					exampleTransformer.generate((Amalthea) model, outputBuffer);
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationDefinition.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/M2TTransformationDefinition.java
similarity index 95%
rename from framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationDefinition.java
rename to framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/M2TTransformationDefinition.java
index 12196a3..9377273 100644
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationDefinition.java
+++ b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/M2TTransformationDefinition.java
@@ -13,7 +13,7 @@
  ********************************************************************************
  */
 
-package app4mc.example.transform.m2t.configuration;
+package app4mc.example.transform.m2t;
 
 import org.eclipse.app4mc.transformation.TransformationDefinition;
 import org.osgi.service.component.annotations.Component;
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationConfig.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationConfig.java
deleted file mode 100644
index 75e8570..0000000
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/configuration/M2TTransformationConfig.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2t.configuration;
-
-import java.util.Map;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import app4mc.example.transform.m2t.loader.AmaltheaMultiFileLoader2;
-
-@Component(
-	configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-	configurationPolicy = ConfigurationPolicy.REQUIRE,
-	property = { ServiceConstants.TRANSFORMATION_PROPERTY + "=Amalthea2Text" },
-	service = IModelToTextConfig.class
-)
-public class M2TTransformationConfig implements IModelToTextConfig {
-
-	private static final Logger LOG = LoggerFactory.getLogger(M2TTransformationConfig.class);
-
-	private AmaltheaMultiFileLoader2 amaltheaMultiFileLoader = new AmaltheaMultiFileLoader2();
-
-	private String folderPath;
-
-	@Activate
-	void activate(Map<String, ?> properties) {
-		folderPath = (String) properties.get("input_models_folder");
-	}
-
-	@Override
-	public ResourceSet getInputResourceSet() {
-
-		if (folderPath != null) {
-
-			ResourceSet resourceSet = amaltheaMultiFileLoader.loadMultipleFiles(folderPath);
-
-			if (resourceSet.getResources().isEmpty()) {
-				LOG.error("No Amalthea model files are loaded. Verify if the model version is : {}",
-						AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
-			}
-
-			return resourceSet;
-		} else {
-			LOG.error("Input_models_folder parameter not set",
-					new NullPointerException("input_models_folder property not set"));
-		}
-
-		return null;
-	}
-
-}
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/AmaltheaMultiFileLoader2.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/AmaltheaMultiFileLoader2.java
deleted file mode 100644
index 66881c7..0000000
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/AmaltheaMultiFileLoader2.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2t.loader;
-
-import java.io.File;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.app4mc.amalthea.model.Amalthea;
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceFactory;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceSetImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * AmaltheaMultiFileLoader2
- * 
- * Should be replaced by standard AmaltheaLoader (APP4MC version > 1.0.0)
- *
- */
-public class AmaltheaMultiFileLoader2 implements IMultiFileLoader {
-
-	private static final Logger LOG = LoggerFactory.getLogger(AmaltheaMultiFileLoader2.class);
-
-	public ResourceSet loadMultipleFiles(String directoryPath) {
-
-		File folder = new File(directoryPath);
-
-		if (folder.isDirectory()) {
-			File[] listFiles = folder.listFiles((FilenameFilter) (file, name) -> name.endsWith(".amxmi"));
-
-			ResourceSet resourceSet = initializeResourceSet();
-
-			loadMultipleFiles(resourceSet, listFiles);
-
-			return resourceSet;
-		}
-
-		return new ResourceSetImpl();
-
-	}
-
-	private List<Amalthea> loadMultipleFiles(ResourceSet resourceSet, File[] listFiles) {
-
-		List<Amalthea> models = new ArrayList<>();
-
-		for (File amxmiFile : listFiles) {
-
-			final Resource res = resourceSet.createResource(URI.createURI("file:////" + amxmiFile.getAbsolutePath()));
-			try {
-				res.load(null);
-				for (final EObject content : res.getContents()) {
-					if (content instanceof Amalthea) {
-						models.add((Amalthea) content);
-					}
-				}
-			} catch (IOException e) {
-				LOG.error(e.getMessage(), e);
-			}
-		}
-		return models;
-	}
-
-	private static ResourceSet initializeResourceSet() {
-		final AmaltheaResourceSetImpl resSet = new AmaltheaResourceSetImpl();
-		resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
-		AmaltheaPackage.eINSTANCE.eClass(); // register the package
-
-		return resSet;
-	}
-
-}
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/IMultiFileLoader.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/IMultiFileLoader.java
deleted file mode 100644
index 20ae4d4..0000000
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/loader/IMultiFileLoader.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2018-2021 Robert Bosch GmbH and others.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package app4mc.example.transform.m2t.loader;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-public interface IMultiFileLoader {
-
-	public ResourceSet loadMultipleFiles(String directoryPath);
-}
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModule.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModule.java
index 651624c..e52c97b 100644
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModule.java
+++ b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModule.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -15,14 +15,13 @@
 
 package app4mc.example.transform.m2t.transformers;
 
-import com.google.inject.AbstractModule;
+import org.eclipse.app4mc.transformation.util.TransformationGuiceModule;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
-public class ExampleGuiceModule extends AbstractModule {
+public class ExampleGuiceModule extends TransformationGuiceModule {
 
-	@Override
-	protected void configure() {
-		// TODO Auto-generated method stub
-		
+	public ExampleGuiceModule(SessionLogger logger) {
+		super(logger);
 	}
 
 }
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModuleFactory.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModuleFactory.java
index 2e3d3fc..3c01d02 100644
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModuleFactory.java
+++ b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleGuiceModuleFactory.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -12,18 +12,16 @@
  *     Robert Bosch GmbH - initial API and implementation
  ********************************************************************************
  */
-
 package app4mc.example.transform.m2t.transformers;
 
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 
-@Component(
-		service = ExampleGuiceModuleFactory.class)
-
+@Component(service = ExampleGuiceModuleFactory.class)
 public class ExampleGuiceModuleFactory {
-
-	public ExampleGuiceModule getModule() {
-		return new ExampleGuiceModule();
+	
+	public ExampleGuiceModule getModule(SessionLogger logger) {
+		return new ExampleGuiceModule(logger);
 	}
 
 }
diff --git a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleTransformer.java b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleTransformer.java
index 0f741b8..af032dd 100644
--- a/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleTransformer.java
+++ b/framework/examples/app4mc.example.transform.m2t/src/app4mc/example/transform/m2t/transformers/ExampleTransformer.java
@@ -17,9 +17,9 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
+import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 import app4mc.example.transform.m2t.generators.ExampleGenerator;
@@ -27,23 +27,24 @@
 @Singleton
 public class ExampleTransformer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ExampleTransformer.class);
-
+	@Inject
+	protected SessionLogger logger;
+	
 	public void generate(Amalthea model, OutputBuffer outputBuffer) {
 
 		generateOutput1(model, outputBuffer);
 		generateOutput2(model, outputBuffer);
 
-		LOG.info("Script file generated at : {}", outputBuffer.getOutputFolder());
+		logger.info("Script file generated at : {0}", outputBuffer.getOutputFolder());
 	}
 
 	protected void generateOutput1(Amalthea model, OutputBuffer outputBuffer) {
-		LOG.info(" - executing ExampleTransformer.generateOutput1");
+		logger.info(" - executing ExampleTransformer.generateOutput1");
 		outputBuffer.appendTo("TEXT", "1", ExampleGenerator.generateOutput1(model));
 	}
 
 	protected void generateOutput2(Amalthea model, OutputBuffer outputBuffer) {
-		LOG.info(" - executing ExampleTransformer.generateOutput2");
+		logger.info(" - executing ExampleTransformer.generateOutput2");
 		outputBuffer.appendTo("TEXT", "2", ExampleGenerator.generateOutput2(model));
 	}
 
diff --git a/framework/examples/app4mc.example.transform.product/Transformation.product b/framework/examples/app4mc.example.transform.product/Transformation.product
index 556b953..b13e16a 100644
--- a/framework/examples/app4mc.example.transform.product/Transformation.product
+++ b/framework/examples/app4mc.example.transform.product/Transformation.product
@@ -9,7 +9,7 @@
    <launcherArgs>
       <programArgs>--properties &quot;${project_loc:/app4mc.example.transform.product}/input.properties&quot; -console
       </programArgs>
-      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dlog4j.configuration=headless_log4j.xml -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
+      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -41,11 +41,12 @@
       <plugin id="org.apache.felix.gogo.runtime"/>
       <plugin id="org.apache.felix.gogo.shell"/>
       <plugin id="org.apache.felix.scr"/>
-      <plugin id="org.apache.log4j"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
       <plugin id="org.eclipse.app4mc.transformation"/>
-      <plugin id="org.eclipse.app4mc.transformation.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.transformation.starter"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file"/>
       <plugin id="org.eclipse.emf.common"/>
       <plugin id="org.eclipse.emf.ecore"/>
       <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
@@ -59,14 +60,14 @@
       <plugin id="org.eclipse.osgi.util"/>
       <plugin id="org.eclipse.xtext.xbase.lib"/>
       <plugin id="org.slf4j.api"/>
-      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
    </plugins>
 
    <configurations>
       <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console" autoStart="true" startLevel="3" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file" autoStart="true" startLevel="3" />
       <plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <property name="log4j.configuration" value="headless_log4j.xml" />
    </configurations>
 
    <preferencesInfo>
diff --git a/framework/examples/app4mc.example.transform.ui/.classpath b/framework/examples/app4mc.example.transform.ui/.classpath
deleted file mode 100644
index a7272b8..0000000
--- a/framework/examples/app4mc.example.transform.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/> 
-</classpath>
diff --git a/framework/examples/app4mc.example.transform.ui/.project b/framework/examples/app4mc.example.transform.ui/.project
deleted file mode 100644
index ff91dc8..0000000
--- a/framework/examples/app4mc.example.transform.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>app4mc.example.transform.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.core.resources.prefs b/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0..0000000
--- a/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.jdt.core.prefs b/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 0fee6a9..0000000
--- a/framework/examples/app4mc.example.transform.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,15 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/framework/examples/app4mc.example.transform.ui/META-INF/MANIFEST.MF b/framework/examples/app4mc.example.transform.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index a6506b0..0000000
--- a/framework/examples/app4mc.example.transform.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,27 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: app4mc.example.transform.ui
-Bundle-SymbolicName: app4mc.example.transform.ui;singleton:=true
-Bundle-Version: 1.1.0.qualifier
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.core.expressions;bundle-version="3.6.100",
- org.eclipse.e4.core.services,
- org.eclipse.jface;bundle-version="3.14.0",
- org.eclipse.osgi.services;bundle-version="3.7.0",
- org.eclipse.e4.core.di,
- org.eclipse.e4.ui.model.workbench;bundle-version="2.1.600.v20191106-1503"
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Import-Package: javax.inject;version="1.0.0",
- org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
- org.eclipse.app4mc.transformation.starter,
- org.eclipse.app4mc.transformation.transformers,
- org.eclipse.e4.core.contexts;version="1.7.0",
- org.eclipse.e4.core.di.annotations;version="1.6.0",
- org.eclipse.e4.core.di.extensions;version="0.15.0",
- org.eclipse.e4.ui.di,
- org.eclipse.e4.ui.services,
- org.slf4j
-Bundle-ActivationPolicy: lazy
-Automatic-Module-Name: app4mc.example.transform.ui
diff --git a/framework/examples/app4mc.example.transform.ui/build.properties b/framework/examples/app4mc.example.transform.ui/build.properties
deleted file mode 100644
index 9afdcd1..0000000
--- a/framework/examples/app4mc.example.transform.ui/build.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               fragment.e4xmi
-source.. = src/
diff --git a/framework/examples/app4mc.example.transform.ui/filterfolder@2x.png b/framework/examples/app4mc.example.transform.ui/filterfolder@2x.png
deleted file mode 100644
index 543d7e6..0000000
--- a/framework/examples/app4mc.example.transform.ui/filterfolder@2x.png
+++ /dev/null
Binary files differ
diff --git a/framework/examples/app4mc.example.transform.ui/fragment.e4xmi b/framework/examples/app4mc.example.transform.ui/fragment.e4xmi
deleted file mode 100644
index 007e0fb..0000000
--- a/framework/examples/app4mc.example.transform.ui/fragment.e4xmi
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<fragment:ModelFragments xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:commands="http://www.eclipse.org/ui/2010/UIModel/application/commands" xmlns:fragment="http://www.eclipse.org/ui/2010/UIModel/fragment" xmlns:menu="http://www.eclipse.org/ui/2010/UIModel/application/ui/menu" xmi:id="_IiAOwAJpEeu5A_airKb0lA">
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_LZ96YAJpEeu5A_airKb0lA" featurename="commands" parentElementId="xpath:/">
-    <elements xsi:type="commands:Command" xmi:id="_NoQ98AJpEeu5A_airKb0lA" elementId="app4mc.example.transform.ui.command.modeltransformation" commandName="model transformation"/>
-  </fragments>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_QFbj8AJpEeu5A_airKb0lA" featurename="handlers" parentElementId="xpath:/">
-    <elements xsi:type="commands:Handler" xmi:id="_RpSjYAJpEeu5A_airKb0lA" elementId="app4mc.example.transform.ui.handler.0" contributionURI="bundleclass://app4mc.example.transform.ui/app4mc.example.transform.product.handlers.SampleHandler" command="_NoQ98AJpEeu5A_airKb0lA"/>
-  </fragments>
-  <fragments xsi:type="fragment:StringModelFragment" xmi:id="_jmQp0AJqEeu5A_airKb0lA" featurename="menuContributions" parentElementId="xpath:/">
-    <elements xsi:type="menu:MenuContribution" xmi:id="_m4OJ0AJqEeu5A_airKb0lA" elementId="app4mc.example.transform.ui.menucontribution.0" positionInParent="after=additions" parentId="popup">
-      <children xsi:type="menu:HandledMenuItem" xmi:id="_nqWKUAJqEeu5A_airKb0lA" elementId="modelTransformation.id" label="APP4MC Model Transformation" command="_NoQ98AJpEeu5A_airKb0lA"/>
-    </elements>
-  </fragments>
-</fragment:ModelFragments>
diff --git a/framework/examples/app4mc.example.transform.ui/icons/sample.gif b/framework/examples/app4mc.example.transform.ui/icons/sample.gif
deleted file mode 100644
index 34fb3c9..0000000
--- a/framework/examples/app4mc.example.transform.ui/icons/sample.gif
+++ /dev/null
Binary files differ
diff --git a/framework/examples/app4mc.example.transform.ui/plugin.xml b/framework/examples/app4mc.example.transform.ui/plugin.xml
deleted file mode 100644
index 9b1e0bc..0000000
--- a/framework/examples/app4mc.example.transform.ui/plugin.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-    <extension
-         id="org.eclipse.app4mc.amalthea.transformation"
-         point="org.eclipse.e4.workbench.model">
-      <fragment
-            uri="fragment.e4xmi">
-      </fragment>
-   </extension>
-</plugin>
diff --git a/framework/examples/app4mc.example.transform.ui/src/app4mc/example/transform/product/handlers/SampleHandler.java b/framework/examples/app4mc.example.transform.ui/src/app4mc/example/transform/product/handlers/SampleHandler.java
deleted file mode 100644
index 37e9503..0000000
--- a/framework/examples/app4mc.example.transform.ui/src/app4mc/example/transform/product/handlers/SampleHandler.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-package app4mc.example.transform.product.handlers;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.Properties;
-
-import javax.inject.Named;
-
-import org.eclipse.app4mc.transformation.TransformationConstants;
-import org.eclipse.app4mc.transformation.TransformationProcessor;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.runtime.FileLocator;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.e4.core.di.annotations.Execute;
-import org.eclipse.e4.core.di.extensions.Service;
-import org.eclipse.e4.ui.services.IServiceConstants;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.viewers.ISelection;
-import org.eclipse.swt.widgets.Shell;
-import org.osgi.framework.Bundle;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@SuppressWarnings("restriction")
-public class SampleHandler   {
-	
-	private static final Logger LOG = LoggerFactory.getLogger(SampleHandler.class);
-	
-	@Execute
-	public Object execute(Shell shell,
-			@Service TransformationProcessor cmd,
-			@Named(IServiceConstants.ACTIVE_SELECTION) ISelection selection) throws ExecutionException {
-
-		LOG.debug("\n\n\n****************************************************************************************************************");
-		LOG.debug("TransformationProcessor : {}", cmd.hashCode());
-		try {
-
-			Properties properties = new Properties();
-			String input = getResourceFromPlugin("/input/amalthea_models");
-			properties.put("input_models_folder", input);
-			File inputFile = new File(input);
-			File parentFile = inputFile.getParentFile().getParentFile();
-			properties.put(TransformationConstants.OUTPUT_FOLDER, new File(parentFile + File.separator + "output/amalthea_models").getCanonicalPath());
-
-			properties.put(TransformationConstants.M2M_TRANSFORMERS, "Amalthea2SampleModel");
-			properties.put(TransformationConstants.M2T_TRANSFORMERS, "Amalthea2Text");
-			
-			cmd.startTransformation(properties);
-//			cmd.startTransformation(new File(getResourceFromPlugin("/input.properties")));
-			
-		} catch (Exception e) {
-			ErrorDialog.openError(shell, "Error", e.getMessage(), Status.OK_STATUS);
-		}
-
-		LOG.debug("****************************************************************************************************************");
-		return null; 
-	} 
-
-	public String getResourceFromPlugin(String path) throws IOException {
-
-		Bundle bundle = Platform.getBundle("app4mc.example.transform.product");
-		
-		if (bundle != null) {
-			URL entry = bundle.getEntry(path);
-			if (entry != null) {
-				URL fileURL = FileLocator.toFileURL(entry);
-				if (fileURL != null) {
-					return fileURL.getFile();
-				}
-			}
-		} else {
-			LOG.error("Bundle app4mc.example.transform.product is not available, and due to this reason input.properties file can not be fetched");
-		}
-		return null;
-	}
-
-	 
-}
diff --git a/framework/features/org.eclipse.app4mc.transformation.feature.sdk/feature.xml b/framework/features/org.eclipse.app4mc.transformation.feature.sdk/feature.xml
index 4930cf0..7044346 100644
--- a/framework/features/org.eclipse.app4mc.transformation.feature.sdk/feature.xml
+++ b/framework/features/org.eclipse.app4mc.transformation.feature.sdk/feature.xml
@@ -20,10 +20,6 @@
          id="org.eclipse.app4mc.transformation.feature"
          version="0.0.0"/>
 
-   <includes
-         id="org.eclipse.app4mc.transformation.log4j.configuration.feature"
-         version="0.0.0"/>
-
    <plugin
          id="org.eclipse.app4mc.transformation.source"
          download-size="0"
@@ -38,12 +34,4 @@
          version="0.0.0"
          unpack="false"/>
 
-   <plugin
-         id="org.eclipse.app4mc.transformation.log4j.configuration.source"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
 </feature>
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.project b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.project
deleted file mode 100644
index 4755fcb..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.project
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.transformation.log4j.configuration.feature</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.pde.FeatureBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.FeatureNature</nature>
-	</natures>
-</projectDescription>
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.settings/org.eclipse.core.resources.prefs b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/about.html b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/about.html
deleted file mode 100644
index 164f781..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/about.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>About</title>
-</head>
-<body lang="EN-US">
-	<h2>About This Content</h2>
-
-	<p>November 30, 2017</p>
-	<h3>License</h3>
-
-	<p>
-		The Eclipse Foundation makes available all content in this plug-in
-		(&quot;Content&quot;). Unless otherwise indicated below, the Content
-		is provided to you under the terms and conditions of the Eclipse
-		Public License Version 2.0 (&quot;EPL&quot;). A copy of the EPL is
-		available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
-		For purposes of the EPL, &quot;Program&quot; will mean the Content.
-	</p>
-
-	<p>
-		If you did not receive this Content directly from the Eclipse
-		Foundation, the Content is being redistributed by another party
-		(&quot;Redistributor&quot;) and different terms and conditions may
-		apply to your use of any object code in the Content. Check the
-		Redistributor's license that was provided with the Content. If no such
-		license exists, contact the Redistributor. Unless otherwise indicated
-		below, the terms and conditions of the EPL still apply to any source
-		code in the Content and such source code may be obtained at <a
-			href="http://www.eclipse.org/">http://www.eclipse.org</a>.
-	</p>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/build.properties b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/build.properties
deleted file mode 100644
index 09cb93b..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-bin.includes = feature.xml,\
-               epl-2.0.html
-src.includes = epl-2.0.html
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/epl-2.0.html b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/epl-2.0.html
deleted file mode 100644
index 637a181..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/epl-2.0.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-  <head>
-    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-    <title>Eclipse Public License - Version 2.0</title>
-    <style type="text/css">
-      body {
-        margin: 1.5em 3em;
-      }
-      h1{
-        font-size:1.5em;
-      }
-      h2{
-        font-size:1em;
-        margin-bottom:0.5em;
-        margin-top:1em;
-      }
-      p {
-        margin-top:  0.5em;
-        margin-bottom: 0.5em;
-      }
-      ul, ol{
-        list-style-type:none;
-      }
-    </style>
-  </head>
-  <body>
-    <h1>Eclipse Public License - v 2.0</h1>
-    <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-      PUBLIC LICENSE (&ldquo;AGREEMENT&rdquo;). ANY USE, REPRODUCTION OR DISTRIBUTION
-      OF THE PROGRAM CONSTITUTES RECIPIENT&#039;S ACCEPTANCE OF THIS AGREEMENT.
-    </p>
-    <h2 id="definitions">1. DEFINITIONS</h2>
-    <p>&ldquo;Contribution&rdquo; means:</p>
-    <ul>
-      <li>a) in the case of the initial Contributor, the initial content
-        Distributed under this Agreement, and
-      </li>
-      <li>
-        b) in the case of each subsequent Contributor:
-        <ul>
-          <li>i) changes to the Program, and</li>
-          <li>ii) additions to the Program;</li>
-        </ul>
-        where such changes and/or additions to the Program originate from
-        and are Distributed by that particular Contributor. A Contribution
-        &ldquo;originates&rdquo; from a Contributor if it was added to the Program by such
-        Contributor itself or anyone acting on such Contributor&#039;s behalf.
-        Contributions do not include changes or additions to the Program that
-        are not Modified Works.
-      </li>
-    </ul>
-    <p>&ldquo;Contributor&rdquo; means any person or entity that Distributes the Program.</p>
-    <p>&ldquo;Licensed Patents&rdquo; mean patent claims licensable by a Contributor which
-      are necessarily infringed by the use or sale of its Contribution alone
-      or when combined with the Program.
-    </p>
-    <p>&ldquo;Program&rdquo; means the Contributions Distributed in accordance with this
-      Agreement.
-    </p>
-    <p>&ldquo;Recipient&rdquo; means anyone who receives the Program under this Agreement
-      or any Secondary License (as applicable), including Contributors.
-    </p>
-    <p>&ldquo;Derivative Works&rdquo; shall mean any work, whether in Source Code or other
-      form, that is based on (or derived from) the Program and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship.
-    </p>
-    <p>&ldquo;Modified Works&rdquo; shall mean any work in Source Code or other form that
-      results from an addition to, deletion from, or modification of the
-      contents of the Program, including, for purposes of clarity any new file
-      in Source Code form that contains any contents of the Program. Modified
-      Works shall not include works that contain only declarations, interfaces,
-      types, classes, structures, or files of the Program solely in each case
-      in order to link to, bind by name, or subclass the Program or Modified
-      Works thereof.
-    </p>
-    <p>&ldquo;Distribute&rdquo; means the acts of a) distributing or b) making available
-      in any manner that enables the transfer of a copy.
-    </p>
-    <p>&ldquo;Source Code&rdquo; means the form of a Program preferred for making
-      modifications, including but not limited to software source code,
-      documentation source, and configuration files.
-    </p>
-    <p>&ldquo;Secondary License&rdquo; means either the GNU General Public License,
-      Version 2.0, or any later versions of that license, including any
-      exceptions or additional permissions as identified by the initial
-      Contributor.
-    </p>
-    <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
-    <ul>
-      <li>a) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free copyright
-        license to reproduce, prepare Derivative Works of, publicly display,
-        publicly perform, Distribute and sublicense the Contribution of such
-        Contributor, if any, and such Derivative Works.
-      </li>
-      <li>b) Subject to the terms of this Agreement, each Contributor hereby
-        grants Recipient a non-exclusive, worldwide, royalty-free patent
-        license under Licensed Patents to make, use, sell, offer to sell,
-        import and otherwise transfer the Contribution of such Contributor,
-        if any, in Source Code or other form. This patent license shall
-        apply to the combination of the Contribution and the Program if,
-        at the time the Contribution is added by the Contributor, such
-        addition of the Contribution causes such combination to be covered
-        by the Licensed Patents. The patent license shall not apply to any
-        other combinations which include the Contribution. No hardware per
-        se is licensed hereunder.
-      </li>
-      <li>c) Recipient understands that although each Contributor grants the
-        licenses to its Contributions set forth herein, no assurances are
-        provided by any Contributor that the Program does not infringe the
-        patent or other intellectual property rights of any other entity.
-        Each Contributor disclaims any liability to Recipient for claims
-        brought by any other entity based on infringement of intellectual
-        property rights or otherwise. As a condition to exercising the rights
-        and licenses granted hereunder, each Recipient hereby assumes sole
-        responsibility to secure any other intellectual property rights needed,
-        if any. For example, if a third party patent license is required to
-        allow Recipient to Distribute the Program, it is Recipient&#039;s
-        responsibility to acquire that license before distributing the Program.
-      </li>
-      <li>d) Each Contributor represents that to its knowledge it has sufficient
-        copyright rights in its Contribution, if any, to grant the copyright
-        license set forth in this Agreement.
-      </li>
-      <li>e) Notwithstanding the terms of any Secondary License, no Contributor
-        makes additional grants to any Recipient (other than those set forth
-        in this Agreement) as a result of such Recipient&#039;s receipt of the
-        Program under the terms of a Secondary License (if permitted under
-        the terms of Section 3).
-      </li>
-    </ul>
-    <h2 id="requirements">3. REQUIREMENTS</h2>
-    <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
-    <ul>
-      <li>a) the Program must also be made available as Source Code, in
-        accordance with section 3.2, and the Contributor must accompany
-        the Program with a statement that the Source Code for the Program
-        is available under this Agreement, and informs Recipients how to
-        obtain it in a reasonable manner on or through a medium customarily
-        used for software exchange; and
-      </li>
-      <li>
-        b) the Contributor may Distribute the Program under a license
-        different than this Agreement, provided that such license:
-        <ul>
-          <li>i) effectively disclaims on behalf of all other Contributors all
-            warranties and conditions, express and implied, including warranties
-            or conditions of title and non-infringement, and implied warranties
-            or conditions of merchantability and fitness for a particular purpose;
-          </li>
-          <li>ii) effectively excludes on behalf of all other Contributors all
-            liability for damages, including direct, indirect, special, incidental
-            and consequential damages, such as lost profits;
-          </li>
-          <li>iii) does not attempt to limit or alter the recipients&#039; rights in the
-            Source Code under section 3.2; and
-          </li>
-          <li>iv) requires any subsequent distribution of the Program by any party
-            to be under a license that satisfies the requirements of this section 3.
-          </li>
-        </ul>
-      </li>
-    </ul>
-    <p>3.2 When the Program is Distributed as Source Code:</p>
-    <ul>
-      <li>a) it must be made available under this Agreement, or if the Program (i)
-        is combined with other material in a separate file or files made available
-        under a Secondary License, and (ii) the initial Contributor attached to
-        the Source Code the notice described in Exhibit A of this Agreement,
-        then the Program may be made available under the terms of such
-        Secondary Licenses, and
-      </li>
-      <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
-    </ul>
-    <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
-      attribution notices, disclaimers of warranty, or limitations of liability
-      (&lsquo;notices&rsquo;) contained within the Program from any copy of the Program which
-      they Distribute, provided that Contributors may add their own appropriate
-      notices.
-    </p>
-    <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
-    <p>Commercial distributors of software may accept certain responsibilities
-      with respect to end users, business partners and the like. While this
-      license is intended to facilitate the commercial use of the Program, the
-      Contributor who includes the Program in a commercial product offering should
-      do so in a manner which does not create potential liability for other
-      Contributors. Therefore, if a Contributor includes the Program in a
-      commercial product offering, such Contributor (&ldquo;Commercial Contributor&rdquo;)
-      hereby agrees to defend and indemnify every other Contributor
-      (&ldquo;Indemnified Contributor&rdquo;) against any losses, damages and costs
-      (collectively &ldquo;Losses&rdquo;) arising from claims, lawsuits and other legal actions
-      brought by a third party against the Indemnified Contributor to the extent
-      caused by the acts or omissions of such Commercial Contributor in connection
-      with its distribution of the Program in a commercial product offering.
-      The obligations in this section do not apply to any claims or Losses relating
-      to any actual or alleged intellectual property infringement. In order to
-      qualify, an Indemnified Contributor must: a) promptly notify the
-      Commercial Contributor in writing of such claim, and b) allow the Commercial
-      Contributor to control, and cooperate with the Commercial Contributor in,
-      the defense and any related settlement negotiations. The Indemnified
-      Contributor may participate in any such claim at its own expense.
-    </p>
-    <p>For example, a Contributor might include the Program
-      in a commercial product offering, Product X. That Contributor is then a
-      Commercial Contributor. If that Commercial Contributor then makes performance
-      claims, or offers warranties related to Product X, those performance claims
-      and warranties are such Commercial Contributor&#039;s responsibility alone.
-      Under this section, the Commercial Contributor would have to defend claims
-      against the other Contributors related to those performance claims and
-      warranties, and if a court requires any other Contributor to pay any damages
-      as a result, the Commercial Contributor must pay those damages.
-    </p>
-    <h2 id="warranty">5. NO WARRANTY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN &ldquo;AS IS&rdquo; BASIS, WITHOUT
-      WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
-      WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
-      MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
-      solely responsible for determining the appropriateness of using and
-      distributing the Program and assumes all risks associated with its
-      exercise of rights under this Agreement, including but not limited to the
-      risks and costs of program errors, compliance with applicable laws, damage
-      to or loss of data, programs or equipment, and unavailability or
-      interruption of operations.
-    </p>
-    <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
-    <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
-      BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
-      LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-      OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-      LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-      OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
-      GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-    </p>
-    <h2 id="general">7. GENERAL</h2>
-    <p>If any provision of this Agreement is invalid or unenforceable under
-      applicable law, it shall not affect the validity or enforceability of the
-      remainder of the terms of this Agreement, and without further action by the
-      parties hereto, such provision shall be reformed to the minimum extent
-      necessary to make such provision valid and enforceable.
-    </p>
-    <p>If Recipient institutes patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Program itself
-      (excluding combinations of the Program with other software or hardware)
-      infringes such Recipient&#039;s patent(s), then such Recipient&#039;s rights granted
-      under Section 2(b) shall terminate as of the date such litigation is filed.
-    </p>
-    <p>All Recipient&#039;s rights under this Agreement shall terminate if it fails to
-      comply with any of the material terms or conditions of this Agreement and
-      does not cure such failure in a reasonable period of time after becoming
-      aware of such noncompliance. If all Recipient&#039;s rights under this Agreement
-      terminate, Recipient agrees to cease use and distribution of the Program
-      as soon as reasonably practicable. However, Recipient&#039;s obligations under
-      this Agreement and any licenses granted by Recipient relating to the
-      Program shall continue and survive.
-    </p>
-    <p>Everyone is permitted to copy and distribute copies of this Agreement,
-      but in order to avoid inconsistency the Agreement is copyrighted and may
-      only be modified in the following manner. The Agreement Steward reserves
-      the right to publish new versions (including revisions) of this Agreement
-      from time to time. No one other than the Agreement Steward has the right
-      to modify this Agreement. The Eclipse Foundation is the initial Agreement
-      Steward. The Eclipse Foundation may assign the responsibility to serve as
-      the Agreement Steward to a suitable separate entity. Each new version of
-      the Agreement will be given a distinguishing version number. The Program
-      (including Contributions) may always be Distributed subject to the version
-      of the Agreement under which it was received. In addition, after a new
-      version of the Agreement is published, Contributor may elect to Distribute
-      the Program (including its Contributions) under the new version.
-    </p>
-    <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
-      receives no rights or licenses to the intellectual property of any
-      Contributor under this Agreement, whether expressly, by implication,
-      estoppel or otherwise. All rights in the Program not expressly granted
-      under this Agreement are reserved. Nothing in this Agreement is intended
-      to be enforceable by any entity that is not a Contributor or Recipient.
-      No third-party beneficiary rights are created under this Agreement.
-    </p>
-    <h2 id="exhibit-a">Exhibit A &ndash; Form of Secondary Licenses Notice</h2>
-    <p>&ldquo;This Source Code may also be made available under the following 
-    	Secondary Licenses when the conditions for such availability set forth 
-    	in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
-    	version(s), and exceptions or additional permissions here}.&rdquo;
-    </p>
-    <blockquote>
-      <p>Simply including a copy of this Agreement, including this Exhibit A
-        is not sufficient to license the Source Code under Secondary Licenses.
-      </p>
-      <p>If it is not possible or desirable to put the notice in a particular file,
-        then You may include the notice in a location (such as a LICENSE file in a
-        relevant directory) where a recipient would be likely to look for
-        such a notice.
-      </p>
-      <p>You may add additional accurate notices of copyright ownership.</p>
-    </blockquote>
-  </body>
-</html>
\ No newline at end of file
diff --git a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/feature.xml b/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/feature.xml
deleted file mode 100644
index f0a0902..0000000
--- a/framework/features/org.eclipse.app4mc.transformation.log4j.configuration.feature/feature.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature
-      id="org.eclipse.app4mc.transformation.log4j.configuration.feature"
-      label="Log4j Configuration"
-      version="1.1.0.qualifier"
-      provider-name="Eclipse APP4MC"
-      license-feature="org.eclipse.license"
-      license-feature-version="0.0.0">
-
-   <description url="https://projects.eclipse.org/projects/automotive.app4mc">
-      Log4j configuration for model transformation.
-
-Includes appender for the Eclipse UI and an appender per transformation session.
-   </description>
-
-   <copyright url="https://projects.eclipse.org/projects/automotive.app4mc">
-      (c) Copyright Eclipse APP4MC contributors and others. 2018-2021.
-All rights reserved.
-   </copyright>
-
-   <plugin
-         id="org.eclipse.app4mc.transformation.log4j.configuration"
-         download-size="0"
-         install-size="0"
-         version="0.0.0"
-         fragment="true"
-         unpack="false"/>
-
-</feature>
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.classpath b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.classpath
deleted file mode 100644
index eca7bdb..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.project b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.project
deleted file mode 100644
index f56fc7f..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.app4mc.transformation.log4j.configuration</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.core.resources.prefs b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/<project>=UTF-8
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.jdt.core.prefs b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 9f6ece8..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,8 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/META-INF/MANIFEST.MF b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/META-INF/MANIFEST.MF
deleted file mode 100644
index 2a4729f..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,20 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: APP4MC Transformation Log4j Configuration
-Bundle-SymbolicName: org.eclipse.app4mc.transformation.log4j.configuration
-Bundle-Version: 1.1.0.qualifier
-Fragment-Host: org.apache.log4j;bundle-version="1.2.15"
-Automatic-Module-Name: org.eclipse.app4mc.amalthea.converters.log4j.configuration
-Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: org.eclipse.equinox.common;bundle-version="3.10.0";resolution:=optional,
- org.eclipse.core.runtime;bundle-version="3.14.0";resolution:=optional,
- org.eclipse.ui.console;resolution:=optional,
- org.eclipse.ui;bundle-version="3.115.0";resolution:=optional
-Bundle-Vendor: Eclipse APP4MC
-Import-Package: javax.xml.parsers,
- org.eclipse.equinox.log;version="1.0.0";resolution:=optional,
- org.osgi.framework;version="1.9.0";resolution:=optional,
- org.osgi.service.log;version="1.4.0";resolution:=optional,
- org.osgi.util.tracker;version="1.5.2";resolution:=optional,
- org.w3c.dom,
- org.xml.sax
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/build.properties b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/build.properties
deleted file mode 100644
index a73d166..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/build.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               log4j.xml,\
-               headless_log4j.xml
-src.includes = log4j.xml,\
-               headless_log4j.xml
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/headless_log4j.xml b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/headless_log4j.xml
deleted file mode 100644
index 57d96ca..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/headless_log4j.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
-
-	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-		<!-- only log errors to the console -->
-		<param name="Threshold" value="${app4mctransformation.log.level}"/>
-	    <layout class="org.apache.log4j.PatternLayout">
-			<param name="ConversionPattern" value="%m%n" />
-	    </layout>
-	</appender>
-
-	<appender name="FILE" class="org.eclipse.app4mc.transformation.log4j.configuration.CustFileAppender">
-		<param name="append" value="false"/>
-	    <layout class="org.apache.log4j.PatternLayout">
-			<param name="ConversionPattern"
-			  value="%d{yyyy-MM-dd_HH_mm_ss} - %-5p:  %m%n" />
-	    </layout>
-	</appender>
-
-	<root>
-		<!-- set the log level to debug to catch everything -->
-		<!-- on the appenders the threshold is set to filter further -->
-		<level value="debug" />
-		<appender-ref ref="CONSOLE" />
-		<appender-ref ref="FILE" />
-	</root>
-
-</log4j:configuration>
\ No newline at end of file
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/log4j.xml b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/log4j.xml
deleted file mode 100644
index d60830f..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/log4j.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
-
-	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-		<!-- only log errors to the console -->
-		<param name="Threshold" value="${app4mctransformation.log.level}"/>
-	    <layout class="org.apache.log4j.PatternLayout">
-			<param name="ConversionPattern" value="%m%n" />
-	    </layout>
-	</appender>
-
-	<appender name="FILE" class="org.eclipse.app4mc.transformation.log4j.configuration.CustFileAppender">
-		<param name="append" value="true"/>
-	    <layout class="org.apache.log4j.PatternLayout">
-			<param name="ConversionPattern"
-			  value="%d{yyyy-MM-dd_HH_mm_ss} - %-5p:  %m%n" />
-	    </layout>
-	</appender>
-
-	<appender name="ECLIPSE" class="org.eclipse.app4mc.transformation.log4j.configuration.EclipseLogAppender">
-		<!-- only log errors to the eclipse log -->
-		<param name="Threshold" value="ERROR"/>
-	</appender>
-	
-	<appender name="ECLIPSE_CONSOLE" class="org.eclipse.app4mc.transformation.log4j.configuration.CustomConsoleAppender">
-		<!-- only log errors to the console -->
-		<param name="Threshold" value="${app4mctransformation.log.level}"/>
-	    <layout class="org.apache.log4j.PatternLayout">
-			<param name="ConversionPattern"
-			  value="%d{yyyy-MM-dd_HH_mm_ss} - %-5p:  %m%n" />
-	    </layout>
-	</appender>
-
-	<root>
-		<!-- set the log level to debug to catch everything -->
-		<!-- on the appenders the threshold is set to filter further -->
-		<level value="debug" />
-		<!--  <appender-ref ref="CONSOLE" />  -->
-		<appender-ref ref="ECLIPSE" />
-		<appender-ref ref="FILE" />
-		<appender-ref ref="ECLIPSE_CONSOLE" />
-	</root>
-
-</log4j:configuration>
\ No newline at end of file
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustFileAppender.java b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustFileAppender.java
deleted file mode 100644
index 32c784f..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustFileAppender.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2021 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.transformation.log4j.configuration;
-
-import java.io.File;
-
-import org.apache.log4j.FileAppender;
-
-/**
- * Custom Log4j appender that is writing log statements to a dedicated log file
- * if the system property <i>APP4MC_TRANSFORMATION_LOG_FILE</i> is set. With
- * this mechanism it is possible to write a log file per transformation session
- * to a dedicated log file only.
- */
-public class CustFileAppender extends FileAppender {
-
-	private String currentLogFile;
-
-	@Override
-	protected boolean checkEntryConditions() {
-		// we only append if an output directory is set
-		String logFilePath = System.getProperty("APP4MC_TRANSFORMATION_LOG_FILE");
-		if (logFilePath != null) {
-			if (this.currentLogFile == null || !this.currentLogFile.equals(logFilePath)) {
-				// close an open file as the output directory changed
-				closeFile();
-
-				this.currentLogFile = logFilePath;
-				// create and set a new session log file
-				createNewFile();
-			}
-
-			return super.checkEntryConditions();
-		} else if (currentLogFile != null) {
-			// system property is null but local output directory is set
-			// so we assume the session logging was disabled
-			closeFile();
-			this.currentLogFile = null;
-		}
-		return false;
-	}
-
-	private void createNewFile() {
-		super.setFile(new File(this.currentLogFile).getAbsolutePath());
-		super.activateOptions();
-	}
-
-	@Override
-	public void activateOptions() {
-		// simply avoid the log warning for missing fileName configuration
-		if (fileName != null) {
-			super.activateOptions();
-		}
-	}
-
-}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustomConsoleAppender.java b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustomConsoleAppender.java
deleted file mode 100644
index 766b776..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/CustomConsoleAppender.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.transformation.log4j.configuration;
-
-import java.io.IOException;
-
-import org.apache.log4j.ConsoleAppender;
-import org.apache.log4j.Layout;
-import org.apache.log4j.spi.LoggingEvent;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.console.ConsolePlugin;
-import org.eclipse.ui.console.IConsole;
-import org.eclipse.ui.console.IConsoleConstants;
-import org.eclipse.ui.console.IConsoleManager;
-import org.eclipse.ui.console.MessageConsole;
-import org.eclipse.ui.console.MessageConsoleStream;
-
-public class CustomConsoleAppender extends ConsoleAppender {
-
-	public CustomConsoleAppender() {
-	}
-
-	public CustomConsoleAppender(Layout layout) {
-		super(layout, SYSTEM_OUT);
-	}
-
-	public CustomConsoleAppender(Layout layout, String target) {
-		super.setLayout(layout);
-		super.setTarget(target);
-		super.activateOptions();
-	}
-
-	private MessageConsole myConsole;
-
-	@Override
-	public void append(LoggingEvent event) {
-		if (logMessageOnConsole(event) == false) {
-			myConsole = findConsole("ASF SLG");
-			logMessageOnConsole(event);
-		}
-	}
-
-	@Override
-	public synchronized void doAppend(LoggingEvent event) {
-
-		if (logMessageOnConsole(event) == false) {
-			myConsole = findConsole("ASF SLG");
-			logMessageOnConsole(event);
-		}
-	}
-
-	private boolean logMessageOnConsole(LoggingEvent event) {
-		if (myConsole != null) {
-			try (MessageConsoleStream out = myConsole.newMessageStream()) {
-				out.println(event.getMessage().toString());				
-			} catch (IOException e) {
-				// ignore
-			}
-			return true;
-		}
-		return false;
-	}
-
-	private MessageConsole findConsole(String name) {
-
-		openConsoleView();
-		ConsolePlugin plugin = ConsolePlugin.getDefault();
-		if (plugin != null) {
-			IConsoleManager conMan = plugin.getConsoleManager();
-			if (conMan != null) {
-				IConsole[] existing = conMan.getConsoles();
-				for (int i = 0; i < existing.length; i++)
-					if (name.equals(existing[i].getName()))
-						return (MessageConsole) existing[i];
-				// no console found, so create a new one
-				MessageConsole myConsole = new MessageConsole(name, null);
-				conMan.addConsoles(new IConsole[] { myConsole });
-
-				return myConsole;
-
-			}
-
-		}
-		return null;
-	}
-
-	private void openConsoleView() {
-		try {
-			IViewPart findView = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-					.findView(IConsoleConstants.ID_CONSOLE_VIEW);
-			if (findView == null) {
-				PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
-						.showView(IConsoleConstants.ID_CONSOLE_VIEW);
-			}
-
-		} catch (PartInitException e) {
-			// TODO:Currently not logging any message for this exception
-		}
-	}
-
-}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/EclipseLogAppender.java b/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/EclipseLogAppender.java
deleted file mode 100644
index 321c46f..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation.log4j.configuration/src/org/eclipse/app4mc/transformation/log4j/configuration/EclipseLogAppender.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.transformation.log4j.configuration;
-
-import org.apache.log4j.AppenderSkeleton;
-import org.apache.log4j.Level;
-import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.spi.ThrowableInformation;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.FrameworkUtil;
-
-/**
- * Custom Log4j appender that forwards log statements to the Eclipse logging mechanism.
- */
-public class EclipseLogAppender extends AppenderSkeleton {
-
-	private int getStatus(final LoggingEvent event) {
-		final Level level = event.getLevel();
-
-		int status = IStatus.INFO;
-
-		if (level == Level.ERROR) {
-			status = IStatus.ERROR;
-		} else if (level == Level.INFO) {
-			status = IStatus.INFO;
-		} else if (level == Level.WARN) {
-			status = IStatus.WARNING;
-		} else if (level == Level.FATAL) {
-			status = IStatus.ERROR;
-		}
-		return status;
-	}
-
-	@Override
-	protected void append(final LoggingEvent event) {
-
-		final Object messageObject = event.getMessage();
-		final ThrowableInformation throwableInformation = event.getThrowableInformation();
-		final int status = getStatus(event);
-
-		Bundle bundle = FrameworkUtil.getBundle(getClass());
-		if (bundle != null) {
-			if (throwableInformation != null) {
-				Platform.getLog(bundle).log(new Status(status, bundle.getSymbolicName(),
-						messageObject != null ? messageObject.toString() : "", throwableInformation.getThrowable()));
-			} else {
-				Platform.getLog(bundle).log(new Status(status, bundle.getSymbolicName(),
-						messageObject != null ? messageObject.toString() : ""));
-			}
-		}
-	}
-
-	@Override
-	public void close() {
-	}
-
-	@Override
-	public boolean requiresLayout() {
-		return false;
-	}
-
-}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.starter/src/org/eclipse/app4mc/transformation/starter/EquinoxTransformationStarter.java b/framework/plugins/org.eclipse.app4mc.transformation.starter/src/org/eclipse/app4mc/transformation/starter/EquinoxTransformationStarter.java
index 6803dc0..8bc775f 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation.starter/src/org/eclipse/app4mc/transformation/starter/EquinoxTransformationStarter.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation.starter/src/org/eclipse/app4mc/transformation/starter/EquinoxTransformationStarter.java
@@ -115,7 +115,13 @@
 			}
 		}
 		
-		this.transformationProcessor.startTransformation(propertiesFile, workingDirectory);
+		try {
+			this.transformationProcessor.startTransformation(propertiesFile, workingDirectory);
+		} catch (Exception e) {
+			// if an exception occurs we kill the application
+			System.err.println("Error in transformation setup: " + e.getMessage());
+			System.exit(0);
+		}
 	}
 
 	@Override
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.ui/META-INF/MANIFEST.MF b/framework/plugins/org.eclipse.app4mc.transformation.ui/META-INF/MANIFEST.MF
index a0ab0da..aaf1205 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation.ui/META-INF/MANIFEST.MF
+++ b/framework/plugins/org.eclipse.app4mc.transformation.ui/META-INF/MANIFEST.MF
@@ -27,3 +27,4 @@
  org.osgi.service.event;version="1.4.0"
 Automatic-Module-Name: org.eclipse.app4mc.transformation.ui
 Bundle-ActivationPolicy: lazy
+Export-Package: org.eclipse.app4mc.transformation.ui.dialog
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.ui/fragment.e4xmi b/framework/plugins/org.eclipse.app4mc.transformation.ui/fragment.e4xmi
index 8bc2fec..048e79c 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation.ui/fragment.e4xmi
+++ b/framework/plugins/org.eclipse.app4mc.transformation.ui/fragment.e4xmi
@@ -4,7 +4,7 @@
     <elements xsi:type="commands:Command" xmi:id="_BpXQ8IfJEeuDraQmPJFu-Q" elementId="org.eclipse.app4mc.transformation.ui.command.transformation" commandName="Transformation" description="Opens a wizard to transform an Amalthea model"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_hCM8EIfJEeuDraQmPJFu-Q" featurename="handlers" parentElementId="xpath:/">
-    <elements xsi:type="commands:Handler" xmi:id="_iSHr0IfJEeuDraQmPJFu-Q" elementId="org.eclipse.app4mc.transformation.ui.handler.0" contributionURI="bundleclass://org.eclipse.app4mc.transformation.ui/org.eclipse.app4mc.transformation.ui.handler.TransformationHandler" command="_BpXQ8IfJEeuDraQmPJFu-Q"/>
+    <elements xsi:type="commands:Handler" xmi:id="_iSHr0IfJEeuDraQmPJFu-Q" elementId="org.eclipse.app4mc.transformation.ui.handler.transformation" contributionURI="bundleclass://org.eclipse.app4mc.transformation.ui/org.eclipse.app4mc.transformation.ui.handler.TransformationHandler" command="_BpXQ8IfJEeuDraQmPJFu-Q"/>
   </fragments>
   <fragments xsi:type="fragment:StringModelFragment" xmi:id="_3Ywj0IfIEeuDraQmPJFu-Q" featurename="menuContributions" parentElementId="xpath:/">
     <elements xsi:type="menu:MenuContribution" xmi:id="_5uqrQIfIEeuDraQmPJFu-Q" elementId="org.eclipse.app4mc.transformation.ui.menucontribution.0" positionInParent="after=additions" parentId="fileMenu">
diff --git a/framework/plugins/org.eclipse.app4mc.transformation.ui/src/org/eclipse/app4mc/transformation/ui/dialog/TransformationDialog.java b/framework/plugins/org.eclipse.app4mc.transformation.ui/src/org/eclipse/app4mc/transformation/ui/dialog/TransformationDialog.java
index 24880df..4b73201 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation.ui/src/org/eclipse/app4mc/transformation/ui/dialog/TransformationDialog.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation.ui/src/org/eclipse/app4mc/transformation/ui/dialog/TransformationDialog.java
@@ -12,10 +12,13 @@
  *******************************************************************************/
 package org.eclipse.app4mc.transformation.ui.dialog;
 
+import java.io.File;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Dictionary;
+import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Properties;
 import java.util.stream.Collectors;
@@ -25,12 +28,14 @@
 import org.eclipse.app4mc.transformation.ServiceConstants;
 import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.TransformationDefinition;
+import org.eclipse.app4mc.transformation.TransformationDefinition.TransformationParameter;
 import org.eclipse.app4mc.transformation.TransformationProcessor;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.eclipse.core.runtime.Platform;
+import org.eclipse.e4.core.contexts.IEclipseContext;
 import org.eclipse.e4.core.di.annotations.Optional;
 import org.eclipse.e4.core.di.extensions.Service;
 import org.eclipse.e4.core.services.events.IEventBroker;
@@ -39,14 +44,15 @@
 import org.eclipse.jface.layout.GridDataFactory;
 import org.eclipse.jface.widgets.WidgetFactory;
 import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.FileDialog;
 import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.swt.widgets.Text;
 import org.osgi.framework.Bundle;
@@ -69,20 +75,17 @@
 	private Text outputFolderText;
 	
 	private Path inputPath;
+	private IProject project;
 	
-	// TODO add extension mechanism to provide additional ui configurations in the dialog, e.g. SLG ConfigModel
-	
-//	private Text configModelText;
-//	
-//	private Button experimentalCodeSnippetButton;
-//	private Button enableInstrumentationButton;
-	
-//	private ConfigModel configModel;
+	private IEclipseContext context;
 	
 	private ServiceRegistration<?> eventHandler = null;
 	
 	private IEventBroker eventBroker;
 	
+	private LinkedHashMap<String, List<TransformationParameter>> additionalParams = new LinkedHashMap<>();
+	private HashMap<String, Control> additionalControls = new HashMap<>();
+	
 	@Inject
 	public TransformationDialog(
 			Shell parentShell, 
@@ -90,8 +93,8 @@
 			@Service List<TransformationDefinition> definitions,
 			IEventBroker broker,
 			@Optional Path inputPath,
-			@Optional IProject project/*,
-			@Optional ConfigModel configModel*/) {
+			@Optional IProject project,
+			IEclipseContext context) {
 		
 		super(parentShell);
 		this.processor = processor;
@@ -100,39 +103,17 @@
 		this.eventBroker = broker;
 		
 		this.inputPath = inputPath;
-//		this.configModel = configModel;
+		this.project = project;
+		this.context = context;
 		
-		// register the eventhandler
-		Bundle bundle = FrameworkUtil.getBundle(getClass());
-		BundleContext bc = (bundle != null) ? bundle.getBundleContext() : null;
-		if (bc != null) {
-			Dictionary<String, Object> props = new Hashtable<>();
-		    props.put(EventConstants.EVENT_TOPIC, "org/osgi/service/cm/ConfigurationEvent/CM_DELETED");
-		    // register the EventHandler service
-		    this.eventHandler = bc.registerService(
-		        EventHandler.class.getName(),
-		        (EventHandler) event -> {
-					if (event.getProperty("cm.factoryPid").equals(ServiceConstants.SESSION_CONFIGURATION_PID)) {
-						Display.getDefault().asyncExec(() -> {
-							MessageDialog.openInformation(getParentShell(), "Transformation finished", "Transformation finished");
-							
-							if (project != null) {
-								try {
-									project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
-								} catch (final CoreException e) {
-									Platform.getLog(getClass()).error(e.getLocalizedMessage(), e);
-								}
-							}
-
-							eventHandler.unregister();
-							
-							// send event to stop listening
-							eventBroker.send("org/eclipse/app4mc/transformation/FINISHED", "FINISHED");
-						});
-					}
-				},
-		        props);
-		}
+		// collect additional parameters
+		definitions.stream().flatMap(def -> def.getTransformationParameter().stream()).forEach(param -> {
+			List<TransformationParameter> groupParams = additionalParams.computeIfAbsent(param.groupName, emp -> new ArrayList<>());
+			if (groupParams.stream().noneMatch(p -> p.parameterKey.equals(param.parameterKey))) {
+				groupParams.add(param);
+			}
+		});
+		
 	}
 	
 	@Override
@@ -191,70 +172,102 @@
 				}
 			})
 			.create(container);
-		
-		/*
 
-		// SLG specific settings
-		Group slgGroup = new Group(container, SWT.SHADOW_NONE);
-		slgGroup.setText("SLG Settings");
-		slgGroup.setLayout(new GridLayout(3, false));
-		GridDataFactory.fillDefaults().span(3, 1).grab(true, false).applyTo(slgGroup);
-		
-		// configuration file
-		WidgetFactory
-			.label(SWT.NONE)
-			.text("Configuration Model")
-			.create(slgGroup);
-		
-		this.configModelText = new Text(slgGroup, SWT.BORDER);
-		GridDataFactory
-			.swtDefaults()
-			.align(SWT.FILL, SWT.BEGINNING)
-			.grab(true, false)
-			.applyTo(configModelText);
+		// specific settings contributed by transformation implementations
+		additionalParams.entrySet().stream().forEach(entry -> {
+			Group group = new Group(container, SWT.SHADOW_NONE);
+			group.setLayout(new GridLayout());
+			group.setText(entry.getKey());
+			GridDataFactory.fillDefaults().span(3, 1).grab(true, false).applyTo(group);
+			entry.getValue().stream().forEach(param -> {
+				
+				Composite elementContainer = new Composite(group, SWT.NONE);
+				GridDataFactory.fillDefaults().grab(true, false).applyTo(elementContainer);
+				if (param.parameterType == File.class) {
+					elementContainer.setLayout(new GridLayout(3, false));
 
-		Button configModelButton = WidgetFactory
-			.button(SWT.PUSH)
-			.text("...")
-			.onSelect(e -> {
-				FileDialog fileDialog = new FileDialog(getShell());
-				fileDialog.setText("Select the configuration model file");
-				String selectedFile = fileDialog.open();
-				if (selectedFile != null) {
-					configModelText.setText(selectedFile);
+					WidgetFactory
+						.label(SWT.NONE)
+						.text(param.parameterName)
+						.create(elementContainer);
+
+					Text elementText = new Text(elementContainer, SWT.BORDER);
+					GridDataFactory
+						.swtDefaults()
+						.align(SWT.FILL, SWT.BEGINNING)
+						.grab(true, false)
+						.applyTo(elementText);
+					
+					this.additionalControls.put(param.parameterKey, elementText);
+
+					Button elementButton = WidgetFactory
+						.button(SWT.PUSH)
+						.text("...")
+						.onSelect(e -> {
+							if (param.parameterKey.toLowerCase().endsWith("folder")) {
+								DirectoryDialog directoryDialog = new DirectoryDialog(getShell());
+								directoryDialog.setText("Select the " + param.parameterName + " directory");
+								String selectedFile = directoryDialog.open();
+								if (selectedFile != null) {
+									elementText.setText(selectedFile);
+								}
+							} else {
+								FileDialog fileDialog = new FileDialog(getShell());
+								fileDialog.setText("Select the " + param.parameterName + " file");
+								String selectedFile = fileDialog.open();
+								if (selectedFile != null) {
+									elementText.setText(selectedFile);
+								}
+							}
+						})
+						.create(elementContainer);
+					
+					Object parameterValue = context.get(param.parameterKey);
+					if (parameterValue != null) {
+						elementText.setText(parameterValue.toString());
+						elementText.setEditable(false);
+						elementButton.setEnabled(false);
+					}
+
+				} else if (param.parameterType == Boolean.class) {
+					elementContainer.setLayout(new GridLayout(2, false));
+					Button elementButton = WidgetFactory
+						.button(SWT.CHECK)
+						.create(elementContainer);
+
+					this.additionalControls.put(param.parameterKey, elementButton);
+
+					Label elementLabel = WidgetFactory
+						.label(SWT.NONE)
+						.text(param.parameterName)
+						.create(elementContainer);
+					GridDataFactory
+						.swtDefaults()
+						.align(SWT.FILL, SWT.BEGINNING)
+						.grab(true, false)
+						.applyTo(elementLabel);
+
+				} else if (param.parameterType == String.class) {
+					elementContainer.setLayout(new GridLayout(2, false));
+					
+					WidgetFactory
+							.label(SWT.NONE)
+							.text(param.parameterName)
+							.create(elementContainer);
+					
+					Text elementText = WidgetFactory
+							.text(SWT.BORDER)
+							.create(elementContainer);
+					GridDataFactory
+						.swtDefaults()
+						.align(SWT.FILL, SWT.BEGINNING)
+						.grab(true, false)
+						.applyTo(elementText);
+					
+					this.additionalControls.put(param.parameterKey, elementText);
 				}
-			})
-			.create(slgGroup);
-		
-		this.experimentalCodeSnippetButton = WidgetFactory
-			.button(SWT.CHECK)
-			.create(slgGroup);
-		Label experimentalLabel = WidgetFactory
-			.label(SWT.NONE)
-			.text("Experimental Code Snippet Matching")
-			.create(slgGroup);
-		GridDataFactory
-			.swtDefaults()
-			.align(SWT.FILL, SWT.BEGINNING)
-			.grab(true, false)
-			.span(2, 1)
-			.applyTo(experimentalLabel);
-			
-		this.enableInstrumentationButton = WidgetFactory
-			.button(SWT.CHECK)
-			.create(slgGroup);
-		Label instrumentationLabel = WidgetFactory
-			.label(SWT.NONE)
-			.text("Enable Instrumentation")
-			.create(slgGroup);
-		GridDataFactory
-			.swtDefaults()
-			.align(SWT.FILL, SWT.BEGINNING)
-			.grab(true, false)
-			.span(2, 1)
-			.applyTo(instrumentationLabel);
-		
-		*/
+			});
+		});
 		
 		// use already loaded models and lock selection otherwise
 		
@@ -265,14 +278,6 @@
 			
 			this.outputFolderText.setText(inputPath.resolve("result").toString());
 		}
-
-		/*
-		if (this.configModel != null) {
-			this.configModelText.setText(this.configModel.eResource().getURI().toFileString());
-			this.configModelText.setEditable(false);
-			configModelButton.setEnabled(false);
-		}
-		*/
 		
 		// transformer
 		if (this.allDefinitions.stream().anyMatch(def -> def.getM2TKey() != null)) {
@@ -338,20 +343,64 @@
 		properties.put(TransformationConstants.OUTPUT_FOLDER, this.outputFolderText.getText());
 		if (!this.selectedM2TDefinitions.isEmpty()) {
 			List<String> keys = this.selectedM2TDefinitions.stream().map(TransformationDefinition::getM2TKey).collect(Collectors.toList());
-			properties.put(TransformationConstants.M2T_TRANSFORMERS, String.join(",", keys));
+			if (!keys.isEmpty()) {
+				properties.put(TransformationConstants.M2T_TRANSFORMERS, String.join(",", keys));
+			}
 		}
 		if (!this.selectedM2MDefinitions.isEmpty()) {
 			List<String> keys = this.selectedM2MDefinitions.stream().map(TransformationDefinition::getM2MKey).collect(Collectors.toList());
-			properties.put(TransformationConstants.M2M_TRANSFORMERS, String.join(",", keys));
+			if (!keys.isEmpty()) {
+				properties.put(TransformationConstants.M2M_TRANSFORMERS, String.join(",", keys));
+			}
+		}
+
+		if (!properties.containsKey(TransformationConstants.M2M_TRANSFORMERS)
+				&& !properties.containsKey(TransformationConstants.M2T_TRANSFORMERS)) {
+			MessageDialog.openInformation(getParentShell(), "Transformation", "No transformation selected!");
+			return;
 		}
 		
-		
-//		properties.put("configurationFile", configModelText.getText());
-//		
-//		properties.put("experimentalCodeSnippetMatching", Boolean.toString(this.experimentalCodeSnippetButton.getSelection()));
-//		properties.put("enableInstrumentation", Boolean.toString(this.enableInstrumentationButton.getSelection()));
+		additionalControls.forEach((key, value) -> {
+			if (value instanceof Text) {
+				properties.put(key, ((Text)value).getText());
+			} else if (value instanceof Button) {
+				properties.put(key, Boolean.toString(((Button)value).getSelection()));
+			}
+		});
 		
 		try {
+			// register the eventhandler
+			Bundle bundle = FrameworkUtil.getBundle(getClass());
+			BundleContext bc = (bundle != null) ? bundle.getBundleContext() : null;
+			if (bc != null) {
+				Dictionary<String, Object> props = new Hashtable<>();
+			    props.put(EventConstants.EVENT_TOPIC, "org/osgi/service/cm/ConfigurationEvent/CM_DELETED");
+			    // register the EventHandler service
+			    this.eventHandler = bc.registerService(
+			        EventHandler.class.getName(),
+			        (EventHandler) event -> {
+						if (event.getProperty("cm.factoryPid").equals(ServiceConstants.SESSION_CONFIGURATION_PID)) {
+							Display.getDefault().asyncExec(() -> {
+								MessageDialog.openInformation(getParentShell(), "Transformation finished", "Transformation finished");
+								
+								if (project != null) {
+									try {
+										project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+									} catch (final CoreException e) {
+										Platform.getLog(getClass()).error(e.getLocalizedMessage(), e);
+									}
+								}
+
+								eventHandler.unregister();
+								
+								// send event to stop listening
+								eventBroker.send("org/eclipse/app4mc/transformation/FINISHED", properties.get(TransformationConstants.LOG_FILE));
+							});
+						}
+					},
+			        props);
+			}
+
 			// start transformation
 			this.processor.startTransformation(properties);
 			
@@ -372,13 +421,6 @@
 	}
 	
 	@Override
-	protected Point getInitialSize() {
-		return new Point(
-				convertHorizontalDLUsToPixels(250), 
-				convertVerticalDLUsToPixels(200));
-	}
-	
-	@Override
 	protected boolean isResizable() {
 		return true;
 	}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/META-INF/MANIFEST.MF b/framework/plugins/org.eclipse.app4mc.transformation/META-INF/MANIFEST.MF
index a858c3a..fc4805b 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/META-INF/MANIFEST.MF
+++ b/framework/plugins/org.eclipse.app4mc.transformation/META-INF/MANIFEST.MF
@@ -5,19 +5,25 @@
 Bundle-Version: 1.1.0.qualifier
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
-Require-Bundle: com.google.inject;bundle-version="3.0.0",
- org.eclipse.emf.ecore;visibility:=reexport,
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.emf.ecore.xmi;visibility:=reexport
 Export-Package: org.eclipse.app4mc.transformation;version="1.1.0",
- org.eclipse.app4mc.transformation.executiontype;version="1.1.0",
  org.eclipse.app4mc.transformation.transformers;version="1.1.0",
  org.eclipse.app4mc.transformation.util;version="1.1.0"
 Automatic-Module-Name: org.eclipse.app4mc.transformation
-Import-Package: org.osgi.framework;version="1.9.0",
+Import-Package: com.google.inject;version="1.3.0",
+ com.google.inject.binder;version="1.3.0",
+ com.google.inject.name;version="1.3.0",
+ org.eclipse.app4mc.amalthea.model;version="1.1.0",
+ org.eclipse.app4mc.amalthea.model.io;version="1.1.0",
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
+ org.osgi.framework;version="1.9.0",
  org.osgi.service.cm;version="1.6.0",
  org.osgi.service.component;version="1.4.0",
  org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.osgi.service.event;version="1.4.0",
+ org.osgi.service.log;version="1.4.0",
+ org.osgi.util.tracker;version="1.5.2"
 Require-Capability: osgi.extender;
  filter:="(&(osgi.extender=osgi.component)(version>=1.3)(!(version>=2.0)))",
  osgi.implementation;
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.TransformationProcessor.xml b/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.TransformationProcessor.xml
index 4273e3a..9d23422 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.TransformationProcessor.xml
+++ b/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.TransformationProcessor.xml
@@ -1,8 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" name="org.eclipse.app4mc.transformation.TransformationProcessor">
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" deactivate="deactivate" name="org.eclipse.app4mc.transformation.TransformationProcessor">
    <service>
       <provide interface="org.eclipse.app4mc.transformation.TransformationProcessor"/>
    </service>
+   <reference bind="setLogger" cardinality="0..1" interface="org.osgi.service.log.LoggerFactory" name="Logger" policy="dynamic" unbind="unsetLogger"/>
    <reference cardinality="1..1" field="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" name="configAdmin"/>
+   <reference cardinality="1..1" field="loggerFactory" interface="org.osgi.service.component.ComponentFactory" name="loggerFactory" target="(component.factory=org.eclipse.app4mc.amalthea.sessionlog.factory)"/>
    <implementation class="org.eclipse.app4mc.transformation.TransformationProcessor"/>
 </scr:component>
\ No newline at end of file
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.registry.TransformerRegistry.xml b/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.registry.TransformerRegistry.xml
index 02a6d75..01ca114 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.registry.TransformerRegistry.xml
+++ b/framework/plugins/org.eclipse.app4mc.transformation/OSGI-INF/org.eclipse.app4mc.transformation.registry.TransformerRegistry.xml
@@ -1,9 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" deactivate="deactivate" name="org.eclipse.app4mc.transformation.registry.TransformerRegistry">
-   <reference bind="setM2mConfig" cardinality="0..n" interface="org.eclipse.app4mc.transformation.executiontype.IModelToModelConfig" name="M2mConfig" policy="dynamic" unbind="unsetM2mConfig"/>
-   <reference bind="setM2mTransformer" cardinality="0..n" interface="org.eclipse.app4mc.transformation.transformers.Model2ModelRootTransformer" name="M2mTransformer" policy="dynamic" unbind="unsetM2mTransformer"/>
-   <reference bind="setM2tConfig" cardinality="0..n" interface="org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig" name="M2tConfig" policy="dynamic" unbind="unsetM2tConfig"/>
-   <reference bind="setM2tTransformer" cardinality="0..n" interface="org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer" name="M2tTransformer" policy="dynamic" unbind="unsetM2tTransformer"/>
-   <reference cardinality="1..1" field="configAdmin" interface="org.osgi.service.cm.ConfigurationAdmin" name="configAdmin"/>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.3.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="org.eclipse.app4mc.transformation.registry.TransformerRegistry">
+   <service>
+      <provide interface="org.eclipse.app4mc.transformation.registry.TransformerRegistry"/>
+   </service>
+   <reference bind="setLogger" cardinality="0..1" interface="org.osgi.service.log.LoggerFactory" name="Logger" policy="dynamic" unbind="unsetLogger"/>
+   <reference cardinality="1..1" field="eventAdmin" interface="org.osgi.service.event.EventAdmin" name="eventAdmin"/>
+   <reference bind="registerM2mTransformer" cardinality="0..n" interface="org.eclipse.app4mc.transformation.transformers.Model2ModelRootTransformer" name="m2mTransformers"/>
+   <reference bind="registerM2tTransformer" cardinality="0..n" interface="org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer" name="m2tTransformers"/>
+   <reference bind="setSessionLogger" interface="org.eclipse.app4mc.util.sessionlog.SessionLogger" name="sessionLogger"/>
    <implementation class="org.eclipse.app4mc.transformation.registry.TransformerRegistry"/>
 </scr:component>
\ No newline at end of file
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationConstants.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationConstants.java
index 9b25281..6e7bff4 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationConstants.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationConstants.java
@@ -56,6 +56,12 @@
 	public static final String M2T_OUTPUT_FOLDER = "m2t_output_folder";
 	
 	/**
+	 * Property key to specify the transformation result location. Derived from the
+	 * m2m/m2t output folder and the transformation key.
+	 */
+	public static final String TRANSFORMATION_OUTPUT_FOLDER = "transformation_output_folder";
+	
+	/**
 	 * Property key to specify the session log file location.
 	 */
 	public static final String LOG_FILE = "log_file";
@@ -69,4 +75,9 @@
 	 * Property key to specify the m2t transformers that should be executed.
 	 */
 	public static final String M2T_TRANSFORMERS = "m2tTransformers";
+	
+	/**
+	 * The event topic for the event that is sent when a transformation is finished.
+	 */
+	public static final String TRANSFORMATION_DONE_TOPIC = "org/eclipse/app4mc/transformation/DONE";
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationDefinition.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationDefinition.java
index 007bc83..cafaa7c 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationDefinition.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationDefinition.java
@@ -13,6 +13,9 @@
 
 package org.eclipse.app4mc.transformation;
 
+import java.util.Collections;
+import java.util.List;
+
 /**
  * A TransformationDefinition is used to promote information on the provided
  * transformation implementation to the runtime.
@@ -45,4 +48,24 @@
 	 */
 	String getM2TKey();
 
+	
+	default List<TransformationParameter> getTransformationParameter() {
+		return Collections.emptyList();
+	}
+	
+
+	public static class TransformationParameter {
+		
+		public final String groupName;
+		public final String parameterKey;
+		public final String parameterName;
+		public final Class<?> parameterType;
+		
+		public TransformationParameter(String groupName, String parameterKey, String parameterName, Class<?> parameterType) {
+			this.groupName = groupName;
+			this.parameterKey = parameterKey;
+			this.parameterName = parameterName;
+			this.parameterType = parameterType;
+		}
+	}
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationProcessor.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationProcessor.java
index de5ffcd..5750312 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationProcessor.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/TransformationProcessor.java
@@ -19,16 +19,32 @@
 import java.io.IOException;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Properties;
 
+import org.eclipse.app4mc.transformation.registry.TransformerRegistry;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.Constants;
+import org.osgi.framework.Filter;
 import org.osgi.framework.InvalidSyntaxException;
+import org.osgi.framework.ServiceRegistration;
 import org.osgi.service.cm.Configuration;
 import org.osgi.service.cm.ConfigurationAdmin;
+import org.osgi.service.component.ComponentFactory;
+import org.osgi.service.component.ComponentInstance;
+import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.osgi.service.event.EventConstants;
+import org.osgi.service.event.EventHandler;
+import org.osgi.service.log.Logger;
+import org.osgi.service.log.LoggerFactory;
+import org.osgi.util.tracker.ServiceTracker;
 
 /**
  * OSGi service component to start a transformation in an OSGi context. Uses the
@@ -37,11 +53,57 @@
 @Component(service = TransformationProcessor.class)
 public class TransformationProcessor {
 
-	private static final Logger LOG = LoggerFactory.getLogger(TransformationProcessor.class);
+	LoggerFactory factory;
+	Logger logger;
+	
+	@Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
+	void setLogger(LoggerFactory factory) {
+		this.factory = factory;
+		this.logger = factory.getLogger(getClass());
+	}
+	
+	void unsetLogger(LoggerFactory loggerFactory) {
+		if (this.factory == loggerFactory) {
+			this.factory = null;
+			this.logger = null;
+		}
+	}
 
 	@Reference
 	ConfigurationAdmin configAdmin;
 
+	@Reference(target = "(component.factory=" + "org.eclipse.app4mc.amalthea.sessionlog.factory" + ")")
+	ComponentFactory<SessionLogger> loggerFactory;
+
+	ServiceRegistration<?> eventHandlerRegistration;
+	
+	HashMap<String, ComponentInstance<SessionLogger>> sessionLoggerMap = new HashMap<>();
+	
+	BundleContext context;
+	
+	@Activate
+	void activate(BundleContext context) {
+		this.context = context;
+		
+		Hashtable<String, Object> properties = new Hashtable<>();
+	    properties.put(EventConstants.EVENT_TOPIC, TransformationConstants.TRANSFORMATION_DONE_TOPIC);
+	    // register the EventHandler service
+	    eventHandlerRegistration = context.registerService(
+	        EventHandler.class.getName(),
+	        (EventHandler) event -> {
+				String sessionName = event.containsProperty(ServiceConstants.SESSION_ID) ? event.getProperty(ServiceConstants.SESSION_ID).toString() : null;
+				cleanup(sessionName);
+			},
+	        properties);
+	}
+	
+	@Deactivate
+	void deactivate() {
+		if (eventHandlerRegistration != null) {
+			eventHandlerRegistration.unregister();
+		}
+	}
+	
 	/**
 	 * Start the transformation with the configuration provided by the given
 	 * {@link File}.
@@ -68,7 +130,7 @@
 
 			startTransformation(inputParameters, false);
 		} catch (IOException e) {
-			LOG.error("Error in extracting properties from provided input file", e);
+			logger.error("Error in extracting properties from provided input file", e);
 		}
 	}
 
@@ -139,31 +201,135 @@
 					dictionaryForConfiguration.put(ServiceConstants.SESSION_ID, name);
 				}
 
-				try {
-					// ensure that a session is not triggered twice
-					String filter = "(&(service.pid=" + ServiceConstants.SESSION_CONFIGURATION_PID + "~" + name + ")"
-							+ "(service.factoryPid=" + ServiceConstants.SESSION_CONFIGURATION_PID + "))";
-					Configuration[] existing = this.configAdmin.listConfigurations(filter);
-					if (existing == null || existing.length == 0) {
-						// create the configuration to trigger the activation of transformation components and the transformation
-						// this way we start a new session to get new transformer instances
-						Configuration configuration = this.configAdmin
-								.getFactoryConfiguration(ServiceConstants.SESSION_CONFIGURATION_PID, name, "?");
-						configuration.update(dictionaryForConfiguration);
+				// ensure that a session is not triggered twice
+				String servicePid = ServiceConstants.SESSION_CONFIGURATION_PID + "~" + name;
+				String pidFilter = "(service.pid=" + servicePid + ")";
+				String factoryPidFilter = "(service.factoryPid=" + ServiceConstants.SESSION_CONFIGURATION_PID + ")";
+				String filter = "(&" + pidFilter + factoryPidFilter + ")";
+				Configuration[] existing = this.configAdmin.listConfigurations(filter);
+				if (existing == null || existing.length == 0) {
+					
+					// first we need to create a SessionLogger so all referring services can be satisfied
+					Hashtable<String, Object> sessionLoggerDictionary = new Hashtable<>();
+					sessionLoggerDictionary.put(ServiceConstants.SESSION_ID, name);
+					ComponentInstance<SessionLogger> sessionLoggerInstance = this.loggerFactory.newInstance(sessionLoggerDictionary);
+					this.sessionLoggerMap.put(name, sessionLoggerInstance);
+					SessionLogger sessionLogger = sessionLoggerInstance.getInstance();
+					
+					// after the transformers are created via session configuration we create the TransformerRegistry to start the transformation session
+					// specify target properties to consume only the created instances for the created session
+					String m2mTransformersKey = (String) params.get(TransformationConstants.M2M_TRANSFORMERS);
+					String[] m2mKeys = m2mTransformersKey != null ? m2mTransformersKey.split(",") : new String[0];
+					if (m2mKeys.length > 0) {
+						String m2mFilter = "";
+						for (String key : m2mKeys) {
+							m2mFilter += ("(" + TransformationConstants.M2M_TRANSFORMERS + "=" + key + ")");
+						}
+						
+						if (m2mKeys.length > 1) {
+							m2mFilter = "(|" + m2mFilter + ")";
+						}
+						
+						m2mFilter = "(&" + pidFilter + m2mFilter + ")";
+						dictionaryForConfiguration.put("m2mTransformers.target", m2mFilter);
+						dictionaryForConfiguration.put("m2mTransformers.cardinality.minimum", m2mKeys.length);
 					}
-				} catch (InvalidSyntaxException e) {
-					LOG.error("Error in retrieving existing session configurations", e);
+					
+					String m2tTransformersKey = (String) params.get(TransformationConstants.M2T_TRANSFORMERS);
+					String[] m2tKeys = m2tTransformersKey != null ? m2tTransformersKey.split(",") : new String[0];
+					if (m2tKeys.length > 0) {
+						String m2tFilter = "";
+						for (String key : m2tKeys) {
+							m2tFilter += ("(" + ServiceConstants.TRANSFORMATION_PROPERTY + "=" + key + ")");
+						}
+						
+						if (m2tKeys.length > 1) {
+							m2tFilter = "(|" + m2tFilter + ")";
+						}
+						
+						m2tFilter = "(&" + pidFilter + m2tFilter + ")";
+						dictionaryForConfiguration.put("m2tTransformers.target", m2tFilter);
+						dictionaryForConfiguration.put("m2tTransformers.cardinality.minimum", m2tKeys.length);
+					}
+					
+					dictionaryForConfiguration.put("sessionLogger.target", "(" + ServiceConstants.SESSION_ID + "=" + name + ")");
+					// create the configuration to trigger the activation of transformation components and the transformation
+					// this way we start a new session to get new transformer instances
+					Configuration configuration = this.configAdmin
+							.getFactoryConfiguration(ServiceConstants.SESSION_CONFIGURATION_PID, name, "?");
+					configuration.update(dictionaryForConfiguration);
+					
+					TransformerRegistry transformerRegistry = getTransformerRegistry(pidFilter);
+					if (transformerRegistry != null) {
+						transformerRegistry.startTransformation();
+					} else {
+						StringBuilder errorBuilder = new StringBuilder("Failed to create TransformerRegistry. Double check the transformer configuration.")
+								.append(System.lineSeparator())
+								.append(System.lineSeparator());
+						dictionaryForConfiguration.entrySet().stream()
+							.filter(entry -> TransformationConstants.M2M_TRANSFORMERS.equals(entry.getKey()) || TransformationConstants.M2T_TRANSFORMERS.equals(entry.getKey()))
+							.forEach(entry ->  errorBuilder.append(entry.getKey()).append(" : ").append(entry.getValue()).append(System.lineSeparator()));
+						errorBuilder.append(System.lineSeparator());
+						sessionLogger.error(errorBuilder.toString());
+						sessionLogger.flush(new File((String) params.get(TransformationConstants.LOG_FILE)));
+						
+						cleanup(name);
+					}
 				}
-
-			} catch (IOException e) {
-				// ignore
+					
+			} catch (InvalidSyntaxException | IOException e) {
+				logger.error("Error in retrieving existing session configurations", e);
 			}
 		} else {
-			LOG.error(
-					"ERROR !! Unable to start transformation as required parameters are not set in input properties file");
+			logger.error("ERROR !! Unable to start transformation as required parameters are not set in input properties file");
 		}
 	}
+	
+	/**
+	 * Method to get the {@link TransformerRegistry} from the OSGi service context.
+	 * Uses a {@link ServiceTracker} with a filter on the given session id. The
+	 * tracker is used because the session instance of the TransfomerRegistry and
+	 * the referenced root transformer are created when the configuration is created
+	 * via ConfigAdmin. We therefore need to wait until the references can be
+	 * satisfied and the instance is created.
+	 * 
+	 * @param pidFilter The filter for the service.pid of the current session.
+	 * @return The {@link TransformerRegistry} for the given filter.
+	 */
+	private TransformerRegistry getTransformerRegistry(String pidFilter) {
+		try {
+			String filterString = "(&(" + Constants.OBJECTCLASS + 
+	                "=" + TransformerRegistry.class.getName() + ")" + pidFilter + ")";
+			Filter filter = context.createFilter(filterString);
+			
+			ServiceTracker<TransformerRegistry, TransformerRegistry> st = 
+					new ServiceTracker<>(context, filter, null);
+			st.open();
+			return st.waitForService(1000);
+		} catch (InterruptedException | InvalidSyntaxException e) {
+			logger.error("Failed to get TransformerRegistry", e);
+			Thread.currentThread().interrupt();
+		}
+		return null;
+	}
 
+	private void cleanup(String sessionName) {
+		if (sessionLoggerMap.containsKey(sessionName)) {
+			// dispose the SessionLogger stored for the session id
+			sessionLoggerMap.get(sessionName).dispose();
+		}
+		
+		// once we are done, we delete the configuration to clean up
+		try {
+			Configuration configuration = configAdmin.getFactoryConfiguration(ServiceConstants.SESSION_CONFIGURATION_PID, sessionName, "?");
+			configuration.delete();
+		} catch (IOException e) {
+			if (logger != null) {
+				logger.error("Failed to delete the session configuration", e);
+			}
+		}	
+	}
+	
 	private Properties getInputParameter(File propertiesFile, String workingDirectory) throws IOException {
 
 		Properties properties = new Properties();
@@ -223,7 +389,7 @@
 			throw new IllegalArgumentException("'input_models_folder' parameter needs to be set");
 		}
 
-		if (inputFile == null || !inputFile.exists()) {
+		if (!inputFile.exists()) {
 			throw new IllegalArgumentException(
 					"'input_models_folder' doesn't seem to exist. Please check configuration of 'input_models_folder' and optional 'workingDirectory'.");
 		}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToModelConfig.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToModelConfig.java
deleted file mode 100644
index 350c0b3..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToModelConfig.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.transformation.executiontype;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-public interface IModelToModelConfig {
-
-	public ResourceSet getInputResourceSet();
-
-	public ResourceSet getOuputResourceSet();
-
-}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToTextConfig.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToTextConfig.java
deleted file mode 100644
index faedb88..0000000
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/executiontype/IModelToTextConfig.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.app4mc.transformation.executiontype;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-public interface IModelToTextConfig {
-
-	public ResourceSet getInputResourceSet();
-
-}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/registry/TransformerRegistry.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/registry/TransformerRegistry.java
index 1b7f0e8..f54ce75 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/registry/TransformerRegistry.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/registry/TransformerRegistry.java
@@ -14,36 +14,29 @@
 
 package org.eclipse.app4mc.transformation.registry;
 
-import java.io.IOException;
-import java.util.Arrays;
+import java.io.File;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Map.Entry;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
 import java.util.concurrent.atomic.AtomicBoolean;
-import java.util.stream.Collectors;
 
 import org.eclipse.app4mc.transformation.ServiceConstants;
 import org.eclipse.app4mc.transformation.TransformationConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToModelConfig;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
 import org.eclipse.app4mc.transformation.transformers.Model2ModelRootTransformer;
 import org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer;
-import org.osgi.service.cm.Configuration;
-import org.osgi.service.cm.ConfigurationAdmin;
+import org.eclipse.app4mc.util.sessionlog.SessionLogWriter;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
 import org.osgi.service.component.annotations.ReferencePolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
+import org.osgi.service.log.Logger;
+import org.osgi.service.log.LoggerFactory;
 
 /**
  * Configured OSGi service component to consume root transformer and start the
@@ -56,360 +49,129 @@
  */
 @Component(
 	configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-	configurationPolicy = ConfigurationPolicy.REQUIRE)
+	configurationPolicy = ConfigurationPolicy.REQUIRE,
+	service=TransformerRegistry.class)
 public class TransformerRegistry {
 
-	private static final String LINE_SEPARATOR = System.getProperty("line.separator");
-
-	private static final Logger LOG = LoggerFactory.getLogger(TransformerRegistry.class);
-	
 	private String logFilePath;
 
 	private AtomicBoolean transformationStarted = new AtomicBoolean(false);
 	
-	ScheduledExecutorService scheduledExecutorService;
-	ScheduledFuture<?> killCheck;
+	LoggerFactory factory;
+	Logger osgiLogger;
 	
 	@Reference
-	ConfigurationAdmin configAdmin;
+	EventAdmin eventAdmin;
 	
+	SessionLogger logger;
+
 	String sessionName;
 
-	private String[] m2mKeys;
-	private String[] m2tKeys;
+	private List<Model2ModelRootTransformer> m2mTransformers = new ArrayList<>();
+	private List<Model2TextRootTransformer> m2tTransformers = new ArrayList<>();
 
-	private HashMap<String, Model2ModelRootTransformer> m2mTransformers = new HashMap<>();
-	private HashMap<String, IModelToModelConfig> m2mConfigs = new HashMap<>();
-
-	private HashMap<String, Model2TextRootTransformer> m2tTransformers = new HashMap<>();
-	private HashMap<String, IModelToTextConfig> m2tConfigs = new HashMap<>();
-	
 	@Activate
 	void activate(Map<String, ?> properties) {
-
 		this.logFilePath = (String) properties.get(TransformationConstants.LOG_FILE);
 		
 		this.sessionName = (String) properties.get(ServiceConstants.SESSION_ID);
-		
-		String m2mTransformersKey = (String) properties.get("m2mTransformers");
-		this.m2mKeys = m2mTransformersKey != null ? m2mTransformersKey.split(",") : new String[0];
-		
-		LOG.debug("m2m transformer to execute: {}", (Object[]) this.m2mKeys);
-		
-		String m2tTransformersKey = (String) properties.get(TransformationConstants.M2T_TRANSFORMERS);
-		this.m2tKeys = m2tTransformersKey != null ? m2tTransformersKey.split(",") : new String[0];
-		
-		LOG.debug("m2t transformer to execute: {}", (Object[]) this.m2tKeys);
-		
-		this.scheduledExecutorService = Executors.newScheduledThreadPool(1);
-		this.killCheck = this.scheduledExecutorService.schedule(
-				() -> {
-					// if after 10 seconds we check if all required transformers are available
-					// if not we log an error and kill the session
-					
-					for (String key : this.m2mKeys) {
-						if (!this.m2mTransformers.containsKey(key)) {
-							LOG.error("M2M transformer for key '{}' is not available in the runtime", key);
-						}
-					}
-
-					for (String key : this.m2mKeys) {
-						if (!this.m2mConfigs.containsKey(key)) {
-							LOG.error("M2M configuration for key '{}' is not available in the runtime", key);
-						}
-					}
-					
-					for (String key : this.m2tKeys) {
-						if (!this.m2tTransformers.containsKey(key)) {
-							LOG.error("M2T transformer for key '{}' is not available in the runtime", key);
-						}
-					}
-					
-					// check that for all configured keys there is a configuration available
-					for (String key : this.m2tKeys) {
-						if (!this.m2tConfigs.containsKey(key)) {
-							LOG.error("M2T configuration for key '{}' is not available in the runtime", key);
-						}
-					}
-
-					LOG.error("Transformation configuration invalid! Stopping the process!");
-
-					try {
-						Configuration configuration = 
-								this.configAdmin.getFactoryConfiguration(ServiceConstants.SESSION_CONFIGURATION_PID, this.sessionName, "?");
-						configuration.delete();
-					} catch (IOException e) {
-						LOG.error("Failed to delete the session configuration", e);
-					}
-				},
-				10, TimeUnit.SECONDS);
-		// if the transformers were already set prior to the activation, we need to start
-		checkAllReferencesSet();
 	}
 	
-	@Deactivate
-	void deactivate() {
-		this.scheduledExecutorService.shutdownNow();
+	@Reference(cardinality = ReferenceCardinality.OPTIONAL, policy = ReferencePolicy.DYNAMIC)
+	void setLogger(LoggerFactory factory) {
+		this.factory = factory;
+		this.osgiLogger = factory.getLogger(getClass());
 	}
 	
-	// Model 2 Model
-	
-	@Reference(
-			cardinality = ReferenceCardinality.MULTIPLE,
-			policy = ReferencePolicy.DYNAMIC)
-	void setM2mTransformer(Model2ModelRootTransformer transformer, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			this.m2mTransformers.put(transformationKey, transformer);
-			
-			LOG.debug("m2m transformer registered for key {}", transformationKey);
-			
-			checkAllReferencesSet();
+	void unsetLogger(LoggerFactory loggerFactory) {
+		if (this.factory == loggerFactory) {
+			this.factory = null;
+			this.osgiLogger = null;
 		}
 	}
 
-	void unsetM2mTransformer(Model2ModelRootTransformer transformer, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			this.m2mTransformers.remove(transformationKey);
-		}
+	/**
+	 * Set the {@link SessionLogger} that should be used to write the session log of
+	 * the transformation. To write the log, the {@link SessionLogger} needs to have
+	 * {@link SessionLogWriter} set.
+	 * 
+	 * @param logger The {@link SessionLogger} that should be used to write the
+	 *               session log of the transformation.
+	 */
+	@Reference(name = "sessionLogger")
+	public void setSessionLogger(SessionLogger logger) {
+		this.logger = logger;
 	}
 	
-	@Reference(
-			cardinality = ReferenceCardinality.MULTIPLE,
-			policy = ReferencePolicy.DYNAMIC)
-	void setM2mConfig(IModelToModelConfig config, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			this.m2mConfigs.put(transformationKey, config);
-			
-			LOG.debug("m2m config registered for key {}", transformationKey);
-
-			checkAllReferencesSet();
-		}
-	}
-	
-	void unsetM2mConfig(IModelToModelConfig config, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			this.m2mConfigs.remove(transformationKey);
-		}
-	}
-	
-	public List<Model2ModelRootTransformer> getModelToModelTransformer(String... transformation){
-		List<String> keys = Arrays.asList(transformation);
-		return this.m2mTransformers.entrySet().stream()
-				.filter(entry -> keys.contains(entry.getKey()))
-				.map(Entry<String, Model2ModelRootTransformer>::getValue)
-				.collect(Collectors.toList());
-	}
-
-	public List<IModelToModelConfig> getModelToModelConfig(String... transformation) {
-		List<String> keys = Arrays.asList(transformation);
-		return this.m2mConfigs.entrySet().stream()
-				.filter(entry -> keys.contains(entry.getKey()))
-				.map(Entry<String, IModelToModelConfig>::getValue)
-				.collect(Collectors.toList());
-	}
-
 	// Model 2 Text
 	
-	@Reference(
-			cardinality = ReferenceCardinality.MULTIPLE,
-			policy = ReferencePolicy.DYNAMIC)
-	void setM2tTransformer(Model2TextRootTransformer transformer, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			m2tTransformers.put(transformationKey, transformer);
-			
-			LOG.debug("m2t transformer registered for key {}", transformationKey);
+	@Reference(name = "m2mTransformers", cardinality = ReferenceCardinality.MULTIPLE)
+	public void registerM2mTransformer(Model2ModelRootTransformer transformer) {
+		this.m2mTransformers.add(transformer);
+	}
+	
+	// Model 2 Text
 
-			checkAllReferencesSet();
-		}
+	@Reference(name = "m2tTransformers", cardinality = ReferenceCardinality.MULTIPLE)
+	public void registerM2tTransformer(Model2TextRootTransformer transformer) {
+		m2tTransformers.add(transformer);
 	}
 
-	void unsetM2tTransformer(Model2TextRootTransformer transformer, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			m2tTransformers.remove(transformationKey);
+	/**
+	 * Start the transformation within an OSGi context. The call of this method
+	 * assumes that the {@link TransformerRegistry} instance is configured via OSGi
+	 * component configuration.
+	 */
+	public void startTransformation() {
+		if (this.transformationStarted.compareAndSet(false, true)) {
+			start();
 		}
 	}
 	
-	@Reference(
-			cardinality = ReferenceCardinality.MULTIPLE,
-			policy = ReferencePolicy.DYNAMIC)
-	void setM2tConfig(IModelToTextConfig config, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			m2tConfigs.put(transformationKey, config);
-			
-			LOG.debug("m2t config registered for key {}", transformationKey);
-
-			checkAllReferencesSet();
-		}
-	}
-	
-	void unsetM2tConfig(IModelToTextConfig config, Map<String, ?> properties) {
-		String transformationKey = (String) properties.get(ServiceConstants.TRANSFORMATION_PROPERTY);
-		if (transformationKey != null) {
-			m2tConfigs.remove(transformationKey);
-		}
-	}
-	
-	public List<Model2TextRootTransformer> getModelToTextTransformer(String... transformation) {
-		List<String> keys = Arrays.asList(transformation);
-		return m2tTransformers.entrySet().stream()
-				.filter(entry -> keys.contains(entry.getKey()))
-				.map(Entry<String, Model2TextRootTransformer>::getValue)
-				.collect(Collectors.toList());
-	}
-
-	public List<IModelToTextConfig> getModelToTextConfig(String... transformation) {
-		List<String> keys = Arrays.asList(transformation);
-		return m2tConfigs.entrySet().stream()
-				.filter(entry -> keys.contains(entry.getKey()))
-				.map(Entry<String, IModelToTextConfig>::getValue)
-				.collect(Collectors.toList());
-	}
-
-	private void checkAllReferencesSet() {
-		if (this.configAdmin == null || this.m2mKeys == null || this.m2tKeys == null) {
-			// this component is not activated yet, so no action to perform
-			return;
-		}
-		
-		// check that for all configured keys there is a root transformer available
-		boolean allM2MTransformersSet = true;
-		for (String key : this.m2mKeys) {
-			if (!this.m2mTransformers.containsKey(key)) {
-				allM2MTransformersSet = false;
-				break;
-			}
-		}
-
-		// check that for all configured keys there is a configuration available
-		boolean allM2MConfigsSet = true;
-		for (String key : this.m2mKeys) {
-			if (!this.m2mConfigs.containsKey(key)) {
-				allM2MConfigsSet = false;
-				break;
-			}
-		}
-		
-		// check that for all configured keys there is a root transformer available
-		boolean allM2TTransformersSet = true;
-		for (String key : this.m2tKeys) {
-			if (!this.m2tTransformers.containsKey(key)) {
-				allM2TTransformersSet = false;
-				break;
-			}
-		}
-		
-		// check that for all configured keys there is a configuration available
-		boolean allM2TConfigsSet = true;
-		for (String key : this.m2tKeys) {
-			if (!this.m2tConfigs.containsKey(key)) {
-				allM2TConfigsSet = false;
-				break;
-			}
-		}
-		
-		if (allM2MTransformersSet && allM2MConfigsSet 
-				&& allM2TTransformersSet && allM2TConfigsSet 
-				&& this.transformationStarted.compareAndSet(false, true)) {
-			// only start the transformation once if all required transformations are set
-			this.killCheck.cancel(true);
-			startTransformation();
-		}
-	}
-	
-	void startTransformation() {
-
+	void start() {
 		try {
-			// activate session file logging
-			
-			System.setProperty("APP4MC_TRANSFORMATION_LOG_FILE", logFilePath);
-
-			LOG.info("Starting Model transformation ...");
+			logger.info("Starting Model transformation ...");
 			
 			// Model to Model transformation
 
-			for (String m2mKey : this.m2mKeys) {
-				LOG.info("****************** Model to Model Transformation : {} *******************************", m2mKey);
-
-				List<Model2ModelRootTransformer> m2mTransformers = getModelToModelTransformer(m2mKey);
-
-				List<IModelToModelConfig> m2mConfigs = getModelToModelConfig(m2mKey);
-
-				if (!m2mTransformers.isEmpty() && !m2mConfigs.isEmpty()) {
-
-					for (Model2ModelRootTransformer model2ModelRootTransformer : m2mTransformers) {
-
-						LOG.info("** Executing M2M transformer : {}", model2ModelRootTransformer.getClass().getTypeName());
-						for (IModelToModelConfig m2mConfig : m2mConfigs) {
-							model2ModelRootTransformer.m2mTransformation(m2mConfig.getInputResourceSet(),
-									m2mConfig.getOuputResourceSet());
-						}
-
-					}
-				} else {
-					LOG.error("Unable to execute the M2M transformation for key : {}", m2mKey);
-
-					String info = "Following configuration is loaded for M2M with key : " + m2mKey
-							+ LINE_SEPARATOR + "Model2ModelRootTransformer objects : "
-							+ Arrays.toString(m2mTransformers.toArray()) + LINE_SEPARATOR
-							+ "IModelToModelConfig objects : " + Arrays.toString(m2mConfigs.toArray());
-					LOG.info(info);
-				}
+			for (Model2ModelRootTransformer model2ModelRootTransformer : m2mTransformers) {
+				logger.info("****************** Model to Model Transformation : {0} *******************************", model2ModelRootTransformer.getTransformationKey());
+				
+				logger.info("** Executing M2M transformer : {0}", model2ModelRootTransformer.getClass().getTypeName());
+				model2ModelRootTransformer.setSessionLogger(logger);
+				model2ModelRootTransformer.m2mTransformation();
 			}
 
 			// Model to Text transformation
 
-			for (String m2tKey : this.m2tKeys) {
-				LOG.info("****************** Model to Text Transformation : {} ****************************", m2tKey);
-				List<Model2TextRootTransformer> m2tTransformers = getModelToTextTransformer(m2tKey);
-
-				List<IModelToTextConfig> m2tConfigs = getModelToTextConfig(m2tKey);
-
-				if (!m2tTransformers.isEmpty() && !m2tConfigs.isEmpty()) {
-
-					for (Model2TextRootTransformer model2TextRootTransformer : m2tTransformers) {
-
-						LOG.info("** Executing M2T transformer : {}", model2TextRootTransformer.getClass().getTypeName());
-
-						for (IModelToTextConfig m2tConfig : m2tConfigs) {
-							model2TextRootTransformer.m2tTransformation(m2tConfig.getInputResourceSet());
-						}
-					}
-				} else {
-					LOG.error("Unable to execute the M2T transformation for key : {}", m2tKey);
-
-					String info = "Following configuration is loaded for M2T with key : " + m2tKey
-							+ LINE_SEPARATOR + "Model2TextRootTransformer objects : "
-							+ Arrays.toString(m2tTransformers.toArray()) + LINE_SEPARATOR
-							+ "IModelToTextConfig objects : " + Arrays.toString(m2tConfigs.toArray());
-					LOG.info(info);
-				}
+			for (Model2TextRootTransformer model2TextRootTransformer : m2tTransformers) {
+				logger.info("****************** Model to Text Transformation : {0} ****************************", model2TextRootTransformer.getTransformationKey());
+				
+				logger.info("** Executing M2T transformer : {0}", model2TextRootTransformer.getClass().getTypeName());
+				model2TextRootTransformer.setSessionLogger(logger);
+				model2TextRootTransformer.m2tTransformation();
 			}
 
-			LOG.info("Transformation execution session '{}' completed.", this.sessionName);
-
 		} finally {
+			logger.info("Transformation execution session \"{0}\" completed.", this.sessionName);
 			
-			// we need this check in case the TransformerRegistry is called outside an OSGi context
-			if (this.configAdmin != null) {
-				// once we are done, we delete the configuration to clean up
-				try {
-					Configuration configuration = this.configAdmin.getFactoryConfiguration(ServiceConstants.SESSION_CONFIGURATION_PID, this.sessionName, "?");
-					configuration.delete();
-				} catch (IOException e) {
-					LOG.error("Failed to delete the session configuration", e);
-				}
-			}
-			
-			// removing the system property will disable the TransformationFileAppender
-			System.clearProperty("APP4MC_TRANSFORMATION_LOG_FILE");
-			LOG.info("Transformation session finished");
+			stopSession();
+		}
+	}
+
+	/**
+	 * Stop the current running session by deleting the configuration. Additionally
+	 * the session logger is flushed and disposed.
+	 */
+	private void stopSession() {
+		// we need to flush the session log first, as deleting the configuration will
+		// trigger listeners that eventually kill the process, e.g. in headless mode
+		this.logger.flush(new File(this.logFilePath));
+		
+		if (this.eventAdmin != null) {
+			HashMap<String, Object> properties = new HashMap<>();
+	        properties.put(ServiceConstants.SESSION_ID, this.sessionName);
+			this.eventAdmin.sendEvent(new Event("org/eclipse/app4mc/transformation/DONE", properties));
 		}
 	}
 
@@ -425,14 +187,11 @@
 		this.logFilePath = (String) properties.get(TransformationConstants.LOG_FILE);
 		
 		this.sessionName = "single";
-		
-		String m2mTransformersKey = (String) properties.get("m2mTransformers");
-		this.m2mKeys = m2mTransformersKey != null ? m2mTransformersKey.split(",") : new String[0];
-		
-		String m2tTransformersKey = (String) properties.get(TransformationConstants.M2T_TRANSFORMERS);
-		this.m2tKeys = m2tTransformersKey != null ? m2tTransformersKey.split(",") : new String[0];
 
-		startTransformation();
+		if (this.logger == null) {
+			this.logger = new SessionLogger();
+		}
+		start();
 	}
 	
 	/**
@@ -440,71 +199,16 @@
 	 * outside the OSGi context.
 	 * 
 	 * @param logFilePath the session log file location
-	 * @param m2mKeys     the keys of the m2m transformers that should be executed
-	 * @param m2tKeys     the keys of the m2t transformers that should be executed
 	 */
-	public void startTransformation(String logFilePath, String[] m2mKeys, String[] m2tKeys) {
+	public void startTransformation(String logFilePath) {
 		this.logFilePath = logFilePath;
 		
 		this.sessionName = "single";
 		
-		this.m2mKeys = m2mKeys != null ? m2mKeys : new String[0];
-		
-		this.m2tKeys = m2tKeys != null ? m2tKeys : new String[0];
-		
-		startTransformation();
-	}
-
-	// Model 2 Text
-	
-	public void addM2mTransformer(String transformationKey, Model2ModelRootTransformer transformer) {
-		if (transformationKey == null || transformer == null) {
-			throw new IllegalArgumentException("key and transformer can not be null");
+		if (this.logger == null) {
+			this.logger = new SessionLogger();
 		}
-		
-		this.m2mTransformers.put(transformationKey, transformer);
-	}
-
-	public void removeM2mTransformer(String transformationKey) {
-		this.m2mTransformers.remove(transformationKey);
-	}
-	
-	public void addM2mConfig(String transformationKey, IModelToModelConfig config) {
-		if (transformationKey == null || config == null) {
-			throw new IllegalArgumentException("key and config can not be null");
-		}
-		
-		this.m2mConfigs.put(transformationKey, config);
-	}
-	
-	public void removeM2mConfig(String transformationKey) {
-		this.m2mConfigs.remove(transformationKey);
-	}
-	
-	// Model 2 Text
-	
-	public void addM2tTransformer(String transformationKey, Model2TextRootTransformer transformer) {
-		if (transformationKey == null || transformer == null) {
-			throw new IllegalArgumentException("key and transformer can not be null");
-		}
-		
-		m2tTransformers.put(transformationKey, transformer);
-	}
-
-	public void removeM2tTransformer(String transformationKey) {
-		m2tTransformers.remove(transformationKey);
-	}
-	
-	public void addM2tConfig(String transformationKey, IModelToTextConfig config) {
-		if (transformationKey == null || config == null) {
-			throw new IllegalArgumentException("key and config can not be null");
-		}
-		
-		m2tConfigs.put(transformationKey, config);
-	}
-	
-	public void removeM2tConfig(String transformationKey) {
-		m2tConfigs.remove(transformationKey);
+		start();
 	}
 
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/IRootTransformer.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/IRootTransformer.java
index c5eb3b7..76de9d1 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/IRootTransformer.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/IRootTransformer.java
@@ -1,6 +1,6 @@
 /*******************************************************************************
  *
- * Copyright (c) 2018, 2020 Robert Bosch GmbH.
+ * Copyright (c) 2018, 2021 Robert Bosch GmbH.
  *
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -14,6 +14,32 @@
 
 package org.eclipse.app4mc.transformation.transformers;
 
+import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
+import org.eclipse.app4mc.amalthea.model.io.AmaltheaLoader;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+import org.eclipse.emf.ecore.resource.ResourceSet;
+
 public interface IRootTransformer {
 
+	default ResourceSet getInputResourceSet(String folderPath, SessionLogger logger) {
+
+		if (folderPath != null) {
+
+			ResourceSet resourceSet = AmaltheaLoader.loadFromDirectoryNamed(folderPath);
+
+			if (resourceSet.getResources().stream().noneMatch(r -> !r.getContents().isEmpty())) {
+				logger.error(
+						"No Amalthea model files are loaded. Verify if the model version is : {0}",
+						AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
+			}
+
+			return resourceSet;
+		} else {
+			logger.error("Input_models_folder parameter not set",
+					new NullPointerException("input_models_folder property not set"));
+		}
+
+		return null;
+	}
+
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2ModelRootTransformer.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2ModelRootTransformer.java
index 73d060a..4b34ebb 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2ModelRootTransformer.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2ModelRootTransformer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2018-2020 Robert Bosch GmbH.
+ * Copyright (c) 2018-2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -13,10 +13,49 @@
 
 package org.eclipse.app4mc.transformation.transformers;
 
+import java.nio.file.Paths;
+import java.util.Map;
+
+import org.eclipse.app4mc.transformation.ServiceConstants;
+import org.eclipse.app4mc.transformation.TransformationConstants;
+import org.eclipse.app4mc.transformation.util.PropertyUtil;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.eclipse.emf.ecore.resource.ResourceSet;
 
 public abstract class Model2ModelRootTransformer implements IRootTransformer {
 
-	public abstract void m2mTransformation(final ResourceSet inputResourceSet, final ResourceSet outputResourceSet);
+	protected SessionLogger logger;
+
+	private String inputFolder;
+	private String outputFolder;
+	private String transformationKey;
+
+	protected void activate(Map<String, ?> properties) {
+		this.inputFolder = PropertyUtil.getProperty(TransformationConstants.INPUT_MODELS_FOLDER, properties);
+		this.transformationKey = PropertyUtil.getProperty(ServiceConstants.TRANSFORMATION_PROPERTY, properties);
+
+		String m2mOutputFolder = PropertyUtil.getProperty(TransformationConstants.M2M_OUTPUT_FOLDER, properties);
+		this.outputFolder = Paths.get(m2mOutputFolder, transformationKey).toString();
+	}
+	
+	public String getInputFolder() {
+		return inputFolder;
+	}
+	
+	public String getOutputFolder() {
+		return outputFolder;
+	}
+	
+	public String getTransformationKey() {
+		return transformationKey;
+	}
+
+	public void setSessionLogger(SessionLogger logger) {
+		this.logger = logger;
+	}
+
+	public abstract void m2mTransformation();
+
+	public abstract ResourceSet getOutputResourceSet();
 
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2TextRootTransformer.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2TextRootTransformer.java
index cc9f4ad..7b08edc 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2TextRootTransformer.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/transformers/Model2TextRootTransformer.java
@@ -1,5 +1,5 @@
 /**
- * Copyright (c) 2018-2020 Robert Bosch GmbH.
+ * Copyright (c) 2018-2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -13,10 +13,46 @@
 
 package org.eclipse.app4mc.transformation.transformers;
 
-import org.eclipse.emf.ecore.resource.ResourceSet;
+import java.nio.file.Paths;
+import java.util.Map;
+
+import org.eclipse.app4mc.transformation.ServiceConstants;
+import org.eclipse.app4mc.transformation.TransformationConstants;
+import org.eclipse.app4mc.transformation.util.PropertyUtil;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 public abstract class Model2TextRootTransformer implements IRootTransformer {
 
-	public abstract void m2tTransformation(final ResourceSet inputResourceSet);
+	protected SessionLogger logger;
+	
+	private String inputFolder;
+	private String transformationKey;
+	private String outputFolder;
+
+	protected void activate(Map<String, ?> properties) {
+		this.inputFolder = PropertyUtil.getProperty(TransformationConstants.INPUT_MODELS_FOLDER, properties);
+		this.transformationKey = PropertyUtil.getProperty(ServiceConstants.TRANSFORMATION_PROPERTY, properties);
+
+		String m2tOutputFolder = PropertyUtil.getProperty(TransformationConstants.M2T_OUTPUT_FOLDER, properties);
+		this.outputFolder = Paths.get(m2tOutputFolder, transformationKey).toString();
+	}
+	
+	public String getInputFolder() {
+		return inputFolder;
+	}
+	
+	public String getOutputFolder() {
+		return outputFolder;
+	}
+	
+	public String getTransformationKey() {
+		return transformationKey;
+	}
+	
+	public void setSessionLogger(SessionLogger logger) {
+		this.logger = logger;
+	}
+	
+	public abstract void m2tTransformation();
 
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/FileHelper.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/FileHelper.java
index 2d98ef9..76542c9 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/FileHelper.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/FileHelper.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -26,8 +26,7 @@
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipOutputStream;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 public class FileHelper {
 
@@ -36,13 +35,11 @@
 		throw new IllegalStateException("Utility class");
 	}
 
-	private static final Logger LOG = LoggerFactory.getLogger(FileHelper.class);
-
-	public static void zipResult(String outputFolder) throws IOException {
-		zipResult(outputFolder, Collections.emptyList());
+	public static void zipResult(String outputFolder, SessionLogger logger) throws IOException {
+		zipResult(outputFolder, Collections.emptyList(), logger);
 	}
 	
-	public static void zipResult(String outputFolder, List<Path> excludeDirs) throws IOException {
+	public static void zipResult(String outputFolder, List<Path> excludeDirs, SessionLogger logger) throws IOException {
 		
 		Path sourceDir = Paths.get(outputFolder);
 		List<Path> sourceFiles;
@@ -63,21 +60,21 @@
 
 		try (ZipOutputStream zipOutputStream = new ZipOutputStream(Files.newOutputStream(zipFile))) {
 			for (Path path : sourceFiles) {
-				addFileToArchive(sourceDir, path, zipOutputStream);
+				addFileToArchive(sourceDir, path, zipOutputStream, logger);
 			}
 		} catch (Exception e) {
-			LOG.error("Failed to produce result zip archive", e);
+			logger.error("Failed to produce result zip archive", e);
 		}
 	}
 
-	private static void addFileToArchive(Path sourceDir, Path file, ZipOutputStream zipOutputStream) {
+	private static void addFileToArchive(Path sourceDir, Path file, ZipOutputStream zipOutputStream, SessionLogger logger) {
 		try {
 			ZipEntry zipEntry = new ZipEntry(sourceDir.relativize(file).toString());
 			zipOutputStream.putNextEntry(zipEntry);
 			Files.copy(file, zipOutputStream);
 			zipOutputStream.closeEntry();
 		} catch (IOException e) {
-			LOG.error("Failed to include {} to zip archive", file.getFileName(), e);
+			logger.error("Failed to include {0} to zip archive", file.getFileName(), e);
 		}
 	}
 
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
index ae75a80..e831b12 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/OutputBuffer.java
@@ -15,7 +15,6 @@
 
 package org.eclipse.app4mc.transformation.util;
 
-import java.util.List;
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -25,17 +24,18 @@
 import java.nio.file.Path;
 import java.util.Collections;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map.Entry;
 
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
+import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 @Singleton
 public class OutputBuffer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(OutputBuffer.class);
+	SessionLogger logger;
 
 	private final HashMap<String, TypedBuffer> filetypeToBufferMap = new HashMap<>();
 
@@ -43,6 +43,11 @@
 	
 	private List<Path> excludePathsOfResult = Collections.emptyList();
 
+	@Inject
+	public void setSessionLogger(SessionLogger logger) {
+		this.logger = logger;
+	}
+	
 	public void initialize(String outputFolder) {
 		this.outputFolder = outputFolder;
 	}
@@ -100,7 +105,7 @@
 					writer.append(newContent);
 					writer.flush();
 				} catch (IOException e) {
-					LOG.error("Failed to write result file: {}", targetFile);
+					logger.error("Failed to write result file: {0}", targetFile);
 				}
 			}
 		}
@@ -108,9 +113,9 @@
 		if (createZip) {
 			// Create Zip archive
 			try {
-				FileHelper.zipResult(outputFolder,excludePathsOfResult);
+				FileHelper.zipResult(outputFolder,excludePathsOfResult, logger);
 			} catch (Exception e) {
-				LOG.error("Failed to produce result zip archive: ", e);
+				logger.error("Failed to produce result zip archive: ", e);
 			}
 		}
 	}
@@ -130,7 +135,7 @@
 			return newContent.equals(String.valueOf(fileContent));
 
 		} catch (IOException e1) {
-			LOG.error("Failed to read File {}, which should be present", file.getPath());
+			logger.error("Failed to read File {0}, which should be present", file.getPath(), logger);
 		}
 		return false;
 	}
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/PropertyUtil.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/PropertyUtil.java
index 9997357..9649397 100644
--- a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/PropertyUtil.java
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/PropertyUtil.java
@@ -32,5 +32,4 @@
 		}
 		return value.toString();
 	}
-
 }
diff --git a/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/TransformationGuiceModule.java b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/TransformationGuiceModule.java
new file mode 100644
index 0000000..73bf935
--- /dev/null
+++ b/framework/plugins/org.eclipse.app4mc.transformation/src/org/eclipse/app4mc/transformation/util/TransformationGuiceModule.java
@@ -0,0 +1,39 @@
+/**
+ ********************************************************************************
+ * Copyright (c) 2020-2021 Robert Bosch GmbH.
+ * 
+ * This program and the accompanying materials are made
+ * available under the terms of the Eclipse Public License 2.0
+ * which is available at https://www.eclipse.org/legal/epl-2.0/
+ * 
+ * SPDX-License-Identifier: EPL-2.0
+ * 
+ * Contributors:
+ *     Robert Bosch GmbH - initial API and implementation
+ ********************************************************************************
+ */
+package org.eclipse.app4mc.transformation.util;
+
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
+
+import com.google.inject.AbstractModule;
+
+/**
+ * Default module that should be added to the created injector by creating a
+ * child-injector. Needed to be able to get the SessionLogger instance injected
+ * via Google Guice injection.
+ */
+public class TransformationGuiceModule extends AbstractModule {
+
+	private SessionLogger logger;
+	
+	public TransformationGuiceModule(SessionLogger logger) {
+		this.logger = logger;
+	}
+
+	@Override
+	protected void configure() {
+		bind(SessionLogger.class).toInstance(logger);
+	}
+
+}
diff --git a/framework/releng/org.eclipse.app4mc.transformation.p2repo/category.xml b/framework/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
index cfc5dc0..d970758 100644
--- a/framework/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
+++ b/framework/releng/org.eclipse.app4mc.transformation.p2repo/category.xml
@@ -3,9 +3,6 @@
    <feature id="org.eclipse.app4mc.transformation.examples.feature">
       <category name="org.eclipse.app4mc.transformation.p2repo"/>
    </feature>
-   <feature id="org.eclipse.app4mc.transformation.log4j.configuration.feature">
-      <category name="org.eclipse.app4mc.transformation.p2repo"/>
-   </feature>
    <feature id="org.eclipse.app4mc.transformation.feature">
       <category name="org.eclipse.app4mc.transformation.p2repo"/>
    </feature>
diff --git a/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target b/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target
index 43198f6..083d6fd 100644
--- a/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target
+++ b/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Model Transformation Target" sequenceNumber="1618548343">
+<target name="Model Transformation Target" sequenceNumber="1619689277">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
@@ -10,12 +10,10 @@
       <unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.20.0.v20191107-1453"/>
       <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
       <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
       <unit id="javax.xml" version="1.3.4.v201005080400"/>
-      <unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
-      <unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
       <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
       <unit id="com.google.inject" version="3.0.0.v201605172100"/>
+      <unit id="org.slf4j.api" version="1.7.10.v20170428-1633"/>
       <repository location="https://download.eclipse.org/releases/2019-12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
@@ -30,5 +28,9 @@
       <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
       <repository location="https://download.eclipse.org/cbi/updates/license"/>
     </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.utils.platform.sdk.feature.group" version="0.0.0"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/migration/snapshot/p2repo/"/>
+    </location>
   </locations>
 </target>
diff --git a/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd b/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd
index 53a1600..6b54829 100644
--- a/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd
+++ b/framework/releng/org.eclipse.app4mc.transformation.target/org.eclipse.app4mc.transformation.target.tpd
@@ -9,27 +9,26 @@
 	org.eclipse.equinox.compendium.sdk.feature.group
 	org.eclipse.xtext.xbase.lib.feature.group
 	org.apache.commons.lang
-	org.apache.log4j
 	javax.xml
 
-	// SLF4J	
-	org.slf4j.api [1.7.2,1.7.3)
-	org.slf4j.impl.log4j12 [1.7.2,1.7.3)
-
 	com.google.guava
 	com.google.inject
+	
+	org.slf4j.api
 }
 
 location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" {
 	org.apache.commons.math3
 }
 
-//location "https://download.eclipse.org/app4mc/updatesites/releases/1.1.0"
+location "https://download.eclipse.org/app4mc/updatesites/releases/1.1.0" {
+	org.eclipse.app4mc.amalthea.models.feature.group
+}
 
-location "https://download.eclipse.org/app4mc/updatesites/snapshot" {
-	org.eclipse.app4mc.amalthea.models.feature.group lazy
+location "https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/" {
+	org.eclipse.app4mc.utils.platform.sdk.feature.group lazy
 }
 
 location "https://download.eclipse.org/cbi/updates/license" {
 	org.eclipse.license.feature.group
-}
\ No newline at end of file
+}
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/META-INF/MANIFEST.MF b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/META-INF/MANIFEST.MF
index 002b755..98a6e56 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/META-INF/MANIFEST.MF
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/META-INF/MANIFEST.MF
@@ -6,7 +6,6 @@
 Bundle-Vendor: Eclipse APP4MC
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Require-Bundle: com.google.inject;bundle-version="3.0.0",
- org.eclipse.emf;bundle-version="2.6.0",
  org.eclipse.app4mc.amalthea.model;bundle-version="1.0.0";visibility:=reexport
 Automatic-Module-Name: org.eclipse.app4mc.slg.commons.m2t.transformers.m2t
 Export-Package: org.eclipse.app4mc.slg.commons.m2t,
@@ -17,7 +16,6 @@
  org.eclipse.app4mc.slg.config,
  org.eclipse.app4mc.slg.config.util,
  org.eclipse.app4mc.transformation;version="0.1.0",
- org.eclipse.app4mc.transformation.executiontype;version="0.1.0",
  org.eclipse.app4mc.transformation.transformers;version="0.1.0",
  org.eclipse.app4mc.transformation.util;version="0.1.0",
- org.slf4j;version="1.7.2"
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0"
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/AmaltheaMultiFileLoader.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/AmaltheaMultiFileLoader.java
deleted file mode 100644
index c55c79b..0000000
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/AmaltheaMultiFileLoader.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.commons.m2t;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.app4mc.amalthea.model.Amalthea;
-import org.eclipse.app4mc.amalthea.model.AmaltheaPackage;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceFactory;
-import org.eclipse.app4mc.amalthea.model.emf.AmaltheaResourceSetImpl;
-import org.eclipse.emf.common.util.URI;
-import org.eclipse.emf.ecore.EObject;
-import org.eclipse.emf.ecore.resource.Resource;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * AmaltheaMultiFileLoader
- * 
- * Should be replaced by standard AmaltheaLoader (APP4MC version > 1.0.0)
- *
- */
-@Deprecated
-public class AmaltheaMultiFileLoader implements IMultiFileLoader{
-
-	private static final Logger LOG = LoggerFactory.getLogger(AmaltheaMultiFileLoader.class);
-
-	public ResourceSet loadMultipleFiles(String directoryPath) {
-
-		File folder = new File(directoryPath);
-
-		if (folder.isDirectory()) {
-			File[] listFiles = folder.listFiles((file, name) -> name.endsWith(".amxmi"));
-
-			ResourceSet resourceSet = initializeResourceSet();
-
-			loadMultipleFiles(resourceSet, listFiles);
-
-			return resourceSet;
-		}
-
-		return new ResourceSetImpl();
-
-	}
-
-	private List<Amalthea> loadMultipleFiles(ResourceSet resourceSet, File[] listFiles) {
-
-		List<Amalthea> models = new ArrayList<>();
-
-		for (File amxmiFile : listFiles) {
-
-			final Resource res = resourceSet.createResource(URI.createURI("file:////" + amxmiFile.getAbsolutePath()));
-			try {
-				res.load(null);
-				for (final EObject content : res.getContents()) {
-					if (content instanceof Amalthea) {
-						models.add((Amalthea) content);
-					}
-				}
-			} catch (IOException e) {
-				LOG.error(e.getMessage(),e);
-			}
-		}
-		return models;
-	}
-
-	private static ResourceSet initializeResourceSet() {
-		AmaltheaPackage.eINSTANCE.eClass(); // register the package
-		final AmaltheaResourceSetImpl resSet = new AmaltheaResourceSetImpl();
-		resSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("amxmi", new AmaltheaResourceFactory());
-
-		return resSet;
-	}
-
-}
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/IMultiFileLoader.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/IMultiFileLoader.java
deleted file mode 100644
index 83dfa24..0000000
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/IMultiFileLoader.java
+++ /dev/null
@@ -1,22 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- *
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- *
- * SPDX-License-Identifier: EPL-2.0
- *
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- *******************************************************************************/
- 
-package org.eclipse.app4mc.slg.commons.m2t;
-
-import org.eclipse.emf.ecore.resource.ResourceSet;
-
-@Deprecated
-public interface IMultiFileLoader {
-
-	public ResourceSet loadMultipleFiles(String directoryPath);
-}
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/M2TTransformationConfig.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/M2TTransformationConfig.java
deleted file mode 100644
index 2bf2abf..0000000
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/M2TTransformationConfig.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- * *******************************************************************************
- */
-
-package org.eclipse.app4mc.slg.commons.m2t;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class M2TTransformationConfig implements IModelToTextConfig {
-
-	private static final Logger LOG = LoggerFactory.getLogger(M2TTransformationConfig.class);
-
-	protected AmaltheaMultiFileLoader amaltheaMultiFileLoader = new AmaltheaMultiFileLoader();
-	protected String folderPath;
-
-	public ResourceSet getInputResourceSet() {
-		if (this.folderPath != null) {
-			ResourceSet resourceSet = this.amaltheaMultiFileLoader.loadMultipleFiles(this.folderPath);
-
-			if (resourceSet.getResources().isEmpty()) {
-				LOG.error(
-						"No Amalthea model files are loaded. Verify if the model version is : {}",
-						AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
-			}
-
-			return resourceSet;
-		}
-		LOG.error("input_models_folder parameter not set");
-
-		return null;
-	}
-}
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/AmaltheaModel2TextTransformer.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/AmaltheaModel2TextTransformer.java
index 92fe81c..b515780 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/AmaltheaModel2TextTransformer.java
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/AmaltheaModel2TextTransformer.java
@@ -21,17 +21,17 @@
 import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore;
 import org.eclipse.app4mc.slg.config.ConfigModel;
 import org.eclipse.app4mc.slg.config.util.ConfigurationFileLoader;
+import org.eclipse.app4mc.transformation.TransformationConstants;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Inject;
 
 public class AmaltheaModel2TextTransformer extends SLGBaseTransformer {
-	private static final Logger LOG = LoggerFactory.getLogger(AmaltheaModel2TextTransformer.class);
 
+	@Inject private SessionLogger logger;
 	@Inject private Properties properties;
 	@Inject private CustomObjectsStore customObjsStore;
 
@@ -46,27 +46,34 @@
 		for (final Resource resource : inputResourceSet.getResources()) {
 			for (final EObject model : resource.getContents()) {
 				// check javadoc : https://www.eclipse.org/xtend/documentation/204_activeannotations.html#active-annotations-expression
-				LOG.info("Processing file : {}", resource.getURI());
+				logger.info("Processing file : {0}", resource.getURI());
 
-				final String outputFolder = getProperty("m2t_output_folder");
+				final String outputFolder = getProperty(TransformationConstants.TRANSFORMATION_OUTPUT_FOLDER);
 				final String configurationFilePath = getProperty("configurationFile");
 
 				if ((configurationFilePath != null)) {
-					configModel = new ConfigurationFileLoader().loadConfigurationFile(configurationFilePath);
+					try {
+						configModel = ConfigurationFileLoader.loadConfigurationFile(configurationFilePath);
+					} catch (IllegalStateException e) {
+						logger.error(e.getMessage(), e);
+						return;
+					}
 					customObjsStore.<ConfigModel>injectMembers(ConfigModel.class, configModel);
 				} else {
-					LOG.error("configuration file path is not supplied as a command line argument");
+					logger.error("configuration file path is not supplied as a command line argument");
+					return;
 				}
 
 				if ((configModel == null)) {
-					LOG.error("As no configuration model is available , unable to proceed with the load generator application !!");
+					logger.error("As no configuration model is available , unable to proceed with the load generator application !!");
+					return;
 				}
 
 				if ((model instanceof Amalthea)) {
 					this.transform(((Amalthea) model), outputFolder);
 				}
 
-				LOG.info("Script file generated at : {}", outputFolder);
+				logger.info("Script file generated at : {0}", outputFolder);
 
 			}
 		}
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/ActivityGraphItemTransformer.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/ActivityGraphItemTransformer.java
index cd0fd5b..5057bd0 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/ActivityGraphItemTransformer.java
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/src/org/eclipse/app4mc/slg/commons/m2t/transformers/sw/ActivityGraphItemTransformer.java
@@ -25,18 +25,17 @@
 import org.eclipse.app4mc.amalthea.model.Ticks;
 import org.eclipse.app4mc.slg.commons.m2t.transformers.SLGBaseTransformer;
 import org.eclipse.app4mc.slg.commons.m2t.transformers.SLGTranslationUnit;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 import com.google.inject.Inject;
 import com.google.inject.Singleton;
 
 @Singleton
 public class ActivityGraphItemTransformer extends SLGBaseTransformer {
-	private static final String UNSUPPORTED_ELEMENT = "Unsupported element inside ActivityGraph : {}";
 
-	private static final Logger LOG = LoggerFactory.getLogger(ActivityGraphItemTransformer.class);
+	private static final String UNSUPPORTED_ELEMENT = "Unsupported element inside ActivityGraph : {0}";
 
+	@Inject private SessionLogger logger;
 	@Inject private RunnableTransformer runnableTransformer;
 	@Inject private LabelAccessTransformer labelAccessTransformer;
 	@Inject private TicksTransformer ticksTransformer;
@@ -56,15 +55,15 @@
 			return runnableTransformer.transform(((RunnableCall) graphItem).getRunnable());
 
 		} else if (graphItem instanceof ChannelReceive) {
-			LOG.error(UNSUPPORTED_ELEMENT, "ChannelReceive");
+			logger.error(UNSUPPORTED_ELEMENT, "ChannelReceive");
 			return new SLGTranslationUnit("ChannelReceive is not yet implemented");
 
 		} else if (graphItem instanceof ChannelSend) {
-			LOG.error(UNSUPPORTED_ELEMENT, "ChannelSend");
+			logger.error(UNSUPPORTED_ELEMENT, "ChannelSend");
 			return new SLGTranslationUnit("ChannelSend is not yet implemented");
 		}
 
-		LOG.error(UNSUPPORTED_ELEMENT, graphItem.getClass().getName());
+		logger.error(UNSUPPORTED_ELEMENT, graphItem.getClass().getName());
 		return new SLGTranslationUnit(graphItem.eClass().getName() + " in not supported");
 	}
 
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/xtend-gen/readme.txt b/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/xtend-gen/readme.txt
deleted file mode 100644
index 759a0c2..0000000
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.commons.m2t/xtend-gen/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Code generated by Xtend builder.
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/META-INF/MANIFEST.MF b/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/META-INF/MANIFEST.MF
index 29a0051..4415a66 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/META-INF/MANIFEST.MF
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/META-INF/MANIFEST.MF
@@ -11,12 +11,7 @@
 Export-Package: org.eclipse.app4mc.slg.config,
  org.eclipse.app4mc.slg.config.impl,
  org.eclipse.app4mc.slg.config.util
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.emf.ecore;visibility:=reexport,
+Require-Bundle: org.eclipse.emf.ecore;visibility:=reexport,
  org.eclipse.emf.ecore.xmi;bundle-version="2.14.0"
 Bundle-ActivationPolicy: lazy
-Import-Package: javax.inject;version="1.0.0",
- org.eclipse.app4mc.transformation;version="0.1.0",
- org.eclipse.app4mc.transformation.executiontype;version="0.1.0",
- org.eclipse.app4mc.transformation.transformers;version="0.1.0",
- org.slf4j;version="1.7.2"
+Import-Package: javax.inject;version="1.0.0"
diff --git a/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/src/org/eclipse/app4mc/slg/config/util/ConfigurationFileLoader.java b/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/src/org/eclipse/app4mc/slg/config/util/ConfigurationFileLoader.java
index 9a3f9e7..bdca3a8 100644
--- a/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/src/org/eclipse/app4mc/slg/config/util/ConfigurationFileLoader.java
+++ b/load_generator/commons/plugins/org.eclipse.app4mc.slg.config/src/org/eclipse/app4mc/slg/config/util/ConfigurationFileLoader.java
@@ -1,6 +1,6 @@
 /**
  * *******************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -27,14 +27,10 @@
 import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
 import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-public class ConfigurationFileLoader {
+public final class ConfigurationFileLoader {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ConfigurationFileLoader.class);
-
-	public ConfigModel loadConfigurationFile(String filePath) {
+	public static ConfigModel loadConfigurationFile(String filePath) {
 
 		ResourceSet resourceSet = new ResourceSetImpl();
 		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
@@ -48,7 +44,6 @@
 			String path = file.getCanonicalPath();
 			URI uri = file.isFile() ? URI.createFileURI(path) : URI.createURI(path);
 			Resource resource = resourceSet.getResource(uri, true);
-			LOG.info("Loaded {}", uri);
 
 			// Validate the contents of the loaded resource.
 			//
@@ -61,7 +56,7 @@
 				}
 			}
 		} catch (RuntimeException | IOException exception) {
-			LOG.error("Error loading configuration file : {}", exception.getMessage());
+			throw new IllegalStateException("Error on loading configuration file", exception);
 		}
 
 		return null;
diff --git a/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.target b/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.target
index f2c050b..ccfcd7b 100644
--- a/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.target
+++ b/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.target
@@ -1,16 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Synthetic Load Generator Commons Target" sequenceNumber="1619009225">
+<target name="Synthetic Load Generator Commons Target" sequenceNumber="1620299800">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
       <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
       <unit id="org.eclipse.emf.mwe.core" version="1.5.1.v20191121-1148"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
-      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
-      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.1.201812070911"/>
-      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
       <unit id="org.eclipse.equinox.sdk.feature.group" version="3.20.0.v20191122-2104"/>
       <unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.20.0.v20191107-1453"/>
       <unit id="org.eclipse.xtext.runtime.feature.group" version="2.20.0.v20191202-1256"/>
@@ -19,29 +16,24 @@
       <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="2.20.0.v20191202-1256"/>
       <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
-      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
       <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
-      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
-      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
-      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
       <unit id="javax.xml" version="1.3.4.v201005080400"/>
-      <unit id="org.jdom" version="1.1.1.v201101151400"/>
       <unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
-      <unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
       <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
       <unit id="com.google.inject" version="3.0.0.v201605172100"/>
       <repository location="https://download.eclipse.org/releases/2019-12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
       <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
       <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/app4mc/updatesites/snapshot"/>
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="1.1.0.202104301043"/>
+      <repository location="https://download.eclipse.org/app4mc/updatesites/releases/1.1.0"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.utils.platform.sdk.feature.group" version="1.1.0.202104300936"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
diff --git a/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.tpd b/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.tpd
index 1ad7dc8..3aab4af 100644
--- a/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.tpd
+++ b/load_generator/commons/releng/org.eclipse.app4mc.slg.commons.target/org.eclipse.app4mc.slg.commons.target.tpd
@@ -7,9 +7,6 @@
 	org.eclipse.emf.ecore.xcore.lib.feature.group
 	org.eclipse.emf.mwe.core
 	org.eclipse.emf.sdk.feature.group
-	org.eclipse.emf.transaction.feature.group
-	org.eclipse.emf.validation.feature.group
-	org.eclipse.emf.workspace.feature.group
 	org.eclipse.equinox.sdk.feature.group
 	org.eclipse.equinox.compendium.sdk.feature.group
 	org.eclipse.xtext.runtime.feature.group
@@ -18,33 +15,26 @@
 	org.eclipse.xtext.xbase.lib.feature.group
 	org.eclipse.xtend.sdk.feature.group
 	org.eclipse.xpand.sdk.feature.group
-	org.apache.commons.cli
 	org.apache.commons.lang
-	org.apache.log4j
-	org.apache.xerces
-	org.apache.xalan
-	org.apache.xml.resolver
-	org.apache.xml.serializer
 	javax.xml
-	org.jdom
 
 	// SLF4J	
 	org.slf4j.api [1.7.2,1.7.3)
-	org.slf4j.impl.log4j12 [1.7.2,1.7.3)
 
 	com.google.guava
 	com.google.inject
 }
 
 location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" {
-	org.apache.commons.math
 	org.apache.commons.math3
 }
 
-//location "http://download.eclipse.org/app4mc/updatesites/releases/1.1.0"
+location "https://download.eclipse.org/app4mc/updatesites/releases/1.1.0" {
+	org.eclipse.app4mc.platform.sdk.feature.group
+}
 
-location "http://download.eclipse.org/app4mc/updatesites/snapshot" {
-	org.eclipse.app4mc.platform.sdk.feature.group lazy
+location "https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/" {
+	org.eclipse.app4mc.utils.platform.sdk.feature.group
 }
 
 location "https://download.eclipse.org/cbi/updates/license" {
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/META-INF/MANIFEST.MF b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/META-INF/MANIFEST.MF
index 476290d..14111ec 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/META-INF/MANIFEST.MF
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/META-INF/MANIFEST.MF
@@ -7,17 +7,15 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.app4mc.transformation;version="0.1.0",
- org.eclipse.app4mc.transformation.executiontype;version="0.1.0",
  org.eclipse.app4mc.transformation.transformers;version="0.1.0",
  org.eclipse.app4mc.transformation.util;version="0.1.0",
- org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
+ org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional
 Require-Bundle: com.google.inject;bundle-version="3.0.0",
  org.eclipse.app4mc.slg.commons.m2t;bundle-version="0.1.0",
  org.eclipse.app4mc.slg.config;bundle-version="0.1.0"
 Bundle-ActivationPolicy: lazy
 Bundle-Vendor: Eclipse APP4MC
-Service-Component: OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig.xml,
- OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxGoogleGuiceModuleFactory.xml,
+Service-Component: OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxGoogleGuiceModuleFactory.xml,
  OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxRootTransformer.xml,
  OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxSLGTransformationDefinition.xml
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig.xml b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig.xml
deleted file mode 100644
index 9ed0eeb..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/OSGI-INF/org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig">
-   <property name="transformation" value="LINUX_SLG"/>
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig"/>
-   </service>
-   <implementation class="org.eclipse.app4mc.slg.linux.artefacts.LinuxM2TTransformationConfig"/>
-</scr:component>
\ No newline at end of file
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModule.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModule.java
index 3d003c2..42b5fbd 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModule.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModule.java
@@ -20,19 +20,22 @@
 import org.eclipse.app4mc.slg.commons.m2t.CustomObjectsStore;
 import org.eclipse.app4mc.slg.commons.m2t.transformers.sw.RunnableTransformer;
 import org.eclipse.app4mc.slg.customization.CustomRunnableTransformer;
+import org.eclipse.app4mc.transformation.util.TransformationGuiceModule;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
-import com.google.inject.AbstractModule;
-
-public class LinuxGoogleGuiceModule extends AbstractModule {
+public class LinuxGoogleGuiceModule extends TransformationGuiceModule {
 
 	protected Properties properties;
 
-	public LinuxGoogleGuiceModule(Properties properties) {
+	public LinuxGoogleGuiceModule(SessionLogger logger, Properties properties) {
+		super(logger);
 		this.properties = properties;
 	}
 
 	@Override
 	protected void configure() {
+		super.configure();
+		
 		bind(Properties.class).toInstance(this.properties);
 		bind(CustomObjectsStore.class).toInstance(new CustomObjectsStore());
 
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModuleFactory.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModuleFactory.java
index d2dec57..356fd36 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModuleFactory.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxGoogleGuiceModuleFactory.java
@@ -18,6 +18,7 @@
 import java.util.Properties;
 
 import org.eclipse.app4mc.transformation.ServiceConstants;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 
@@ -28,8 +29,8 @@
 )
 public class LinuxGoogleGuiceModuleFactory {
 
-	public LinuxGoogleGuiceModule getModule(Properties properties) {
-		return new LinuxGoogleGuiceModule(properties);
+	public LinuxGoogleGuiceModule getModule(SessionLogger logger, Properties properties) {
+		return new LinuxGoogleGuiceModule(logger, properties);
 	}
 
 }
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxM2TTransformationConfig.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxM2TTransformationConfig.java
deleted file mode 100644
index 2b7cf0d..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxM2TTransformationConfig.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2020-2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.slg.linux.artefacts;
-
-import java.util.Map;
-
-import org.eclipse.app4mc.slg.commons.m2t.M2TTransformationConfig;
-import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-
-@Component(
-	configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-	configurationPolicy = ConfigurationPolicy.REQUIRE,
-	property = { "transformation=LINUX_SLG" },
-	service = IModelToTextConfig.class
-)
-public class LinuxM2TTransformationConfig extends M2TTransformationConfig {
-
-	@Activate
-	void activate(Map<String, ?> properties) {
-		folderPath = (String) properties.get("input_models_folder");
-	}
-
-}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxRootTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxRootTransformer.java
index 3a57809..391fa3c 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxRootTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxRootTransformer.java
@@ -23,13 +23,10 @@
 import org.eclipse.app4mc.transformation.ServiceConstants;
 import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer;
-import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -42,37 +39,38 @@
 )
 public class LinuxRootTransformer extends Model2TextRootTransformer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(LinuxRootTransformer.class);
-
 	@Reference
 	private LinuxGoogleGuiceModuleFactory moduleFactory;
 
 	Properties properties;
 
 	@Activate
-	void activate(Map<String, ?> properties) {
-		LOG.debug("LinuxRootTransformer activated : {}", this.hashCode());
-
+	@Override
+	protected void activate(Map<String, ?> properties) {
+		super.activate(properties);
 		this.properties = new Properties();
 		this.properties.putAll(properties);
+		
+		// set the output directory to the local properties
+		this.properties.put(TransformationConstants.TRANSFORMATION_OUTPUT_FOLDER, getOutputFolder());
 	}
 
 	@Override
-	public void m2tTransformation(ResourceSet inputResourceSet) {
+	public void m2tTransformation() {
 
-		Injector injector = Guice.createInjector(moduleFactory.getModule(properties));
+		Injector injector = Guice.createInjector(moduleFactory.getModule(logger, properties));
 
 		LinuxModel2TextTransformer instance = injector.getInstance(LinuxModel2TextTransformer.class);
 
 		harmonizeSLGParams(properties);
 
-		instance.m2tTransformation(inputResourceSet);
+		instance.m2tTransformation(getInputResourceSet(getInputFolder(), logger));
 	}
 
 	private void harmonizeSLGParams(Properties props) {
 
 		if (!props.containsKey("configurationFile")) {
-			LOG.error("'configurationFile' property not set in the input properties file");
+			logger.error("'configurationFile' property not set in the input properties file");
 			throw new IllegalArgumentException("'configurationFile' property not set in the input properties file");
 
 		}
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxSLGTransformationDefinition.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxSLGTransformationDefinition.java
index b8296b6..0bcc289 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxSLGTransformationDefinition.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/artefacts/LinuxSLGTransformationDefinition.java
@@ -15,6 +15,10 @@
 
 package org.eclipse.app4mc.slg.linux.artefacts;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
 import org.eclipse.app4mc.transformation.TransformationDefinition;
 import org.osgi.service.component.annotations.Component;
 
@@ -41,4 +45,11 @@
 		return "LINUX_SLG";
 	}
 
+	@Override
+	public List<TransformationParameter> getTransformationParameter() {
+		return Arrays.asList(
+				new TransformationParameter("SLG Settings", "configurationFile", "Configuration Model", File.class),
+				new TransformationParameter("Linux SLG Settings", "experimentalCodeSnippetMatching", "Experimental Code Snippet Matching", Boolean.class),
+				new TransformationParameter("Linux SLG Settings", "enableInstrumentation", "Enable Instrumentation", Boolean.class));
+	}
 }
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
index bd86d39..18baf95 100644
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
+++ b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/src/org/eclipse/app4mc/slg/linux/transformers/LinuxModel2TextTransformer.java
@@ -32,15 +32,14 @@
 import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxRealisticCodeTransformer;
 import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxRunnableTransformer;
 import org.eclipse.app4mc.slg.linux.transformers.sw.LinuxTaskTransformer;
-import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 import com.google.inject.Inject;
 
 public class LinuxModel2TextTransformer extends AmaltheaModel2TextTransformer {
 
+	@Inject private SessionLogger logger;
 	@Inject private OutputBuffer outputBuffer;
 	@Inject private LinuxMakeTransformer linuxMakeTransformer;
 	@Inject private LinuxRealisticCodeTransformer realisticCodeBasedOnCodeSnippet;
@@ -50,8 +49,6 @@
 	@Inject private LinuxTaskTransformer taskTransformer;
 	@Inject private InstrumentationTransformer instrumentationTransformer;
 
-	private static final Logger LOG = LoggerFactory.getLogger(LinuxModel2TextTransformer.class);
-
 	@Override
 	public void transform(final Amalthea model, final String outputFolder) {
 
@@ -63,9 +60,9 @@
 		final StimuliModel stimuliModel = ModelUtil.getOrCreateStimuliModel(model);
 		final SWModel swModel = ModelUtil.getOrCreateSwModel(model);
 
-		LOG.info("Starting Linux SLG code generation");
+		logger.info("Starting Linux SLG code generation");
 
-		LinuxBaseSettings.initializeOutputBuffer(outputBuffer, getProperty(TransformationConstants.M2T_OUTPUT_FOLDER));
+		LinuxBaseSettings.initializeOutputBuffer(outputBuffer, outputFolder);
 
 		if (experimentalCodeSnippetMatching) {
 			realisticCodeBasedOnCodeSnippet.transform();
@@ -107,7 +104,7 @@
 
 		outputBuffer.finish();
 
-		LOG.info("Finished Linux SLG code generation");
+		logger.info("Finished Linux SLG code generation");
 	}
 
 }
diff --git a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/xtend-gen/readme.txt b/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/xtend-gen/readme.txt
deleted file mode 100644
index 759a0c2..0000000
--- a/load_generator/linux/plugins/org.eclipse.app4mc.slg.linux/xtend-gen/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Code generated by Xtend builder.
diff --git a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.product/Linux_SLG.product b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.product/Linux_SLG.product
index b052e57..a142732 100644
--- a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.product/Linux_SLG.product
+++ b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.product/Linux_SLG.product
@@ -9,7 +9,7 @@
    <launcherArgs>
       <programArgs>--properties ${workspace_loc:org.eclipse.app4mc.slg.linux.product}/input.properties
       </programArgs>
-      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dlog4j.configuration=headless_log4j.xml
+      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -29,10 +29,8 @@
    <plugins>
       <plugin id="com.google.guava"/>
       <plugin id="com.google.inject"/>
-      <plugin id="com.ibm.icu"/>
       <plugin id="javax.inject"/>
       <plugin id="javax.xml"/>
-      <plugin id="org.apache.commons.cli"/>
       <plugin id="org.apache.commons.lang"/>
       <plugin id="org.apache.commons.logging"/>
       <plugin id="org.apache.commons.math3"/>
@@ -40,68 +38,36 @@
       <plugin id="org.apache.felix.gogo.runtime"/>
       <plugin id="org.apache.felix.gogo.shell"/>
       <plugin id="org.apache.felix.scr"/>
-      <plugin id="org.apache.log4j"/>
-      <plugin id="org.apache.xerces"/>
-      <plugin id="org.apache.xml.resolver"/>
-      <plugin id="org.apache.xml.serializer"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
       <plugin id="org.eclipse.app4mc.slg.commons.m2t"/>
       <plugin id="org.eclipse.app4mc.slg.config"/>
       <plugin id="org.eclipse.app4mc.slg.linux"/>
       <plugin id="org.eclipse.app4mc.transformation"/>
-      <plugin id="org.eclipse.app4mc.transformation.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.transformation.starter"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc64le" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.emf"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file"/>
       <plugin id="org.eclipse.emf.common"/>
       <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.change"/>
       <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
       <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.edit"/>
-      <plugin id="org.eclipse.emf.transaction"/>
-      <plugin id="org.eclipse.emf.validation"/>
-      <plugin id="org.eclipse.emf.workspace"/>
-      <plugin id="org.eclipse.equinox.app"/>
       <plugin id="org.eclipse.equinox.cm"/>
       <plugin id="org.eclipse.equinox.common"/>
       <plugin id="org.eclipse.equinox.console"/>
       <plugin id="org.eclipse.equinox.event"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.supplement"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
       <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
       <plugin id="org.eclipse.osgi.util"/>
-      <plugin id="org.eclipse.xtend.lib"/>
-      <plugin id="org.eclipse.xtend.lib.macro"/>
-      <plugin id="org.eclipse.xtext.logging" fragment="true"/>
       <plugin id="org.eclipse.xtext.xbase.lib"/>
-      <plugin id="org.jdom"/>
       <plugin id="org.slf4j.api"/>
-      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
    </plugins>
 
    <configurations>
       <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console" autoStart="true" startLevel="3" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file" autoStart="true" startLevel="3" />
       <plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <property name="log4j.configuration" value="headless_log4j.xml" />
    </configurations>
 
    <preferencesInfo>
diff --git a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.target b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.target
index 761287b..eb2c456 100644
--- a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.target
+++ b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.target
@@ -1,16 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Synthetic Load Generator Linux Target" sequenceNumber="1619009554">
+<target name="Synthetic Load Generator Linux Target" sequenceNumber="1620299879">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
       <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
       <unit id="org.eclipse.emf.mwe.core" version="1.5.1.v20191121-1148"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
-      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
-      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.1.201812070911"/>
-      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
       <unit id="org.eclipse.equinox.sdk.feature.group" version="3.20.0.v20191122-2104"/>
       <unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.20.0.v20191107-1453"/>
       <unit id="org.eclipse.xtext.runtime.feature.group" version="2.20.0.v20191202-1256"/>
@@ -19,29 +16,24 @@
       <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="2.20.0.v20191202-1256"/>
       <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
-      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
       <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
-      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
-      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
-      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
       <unit id="javax.xml" version="1.3.4.v201005080400"/>
-      <unit id="org.jdom" version="1.1.1.v201101151400"/>
       <unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
-      <unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
       <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
       <unit id="com.google.inject" version="3.0.0.v201605172100"/>
       <repository location="https://download.eclipse.org/releases/2019-12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
       <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
       <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/app4mc/updatesites/snapshot"/>
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="1.1.0.202104301043"/>
+      <repository location="https://download.eclipse.org/app4mc/updatesites/releases/1.1.0"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.utils.platform.sdk.feature.group" version="1.1.0.202104300936"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
@@ -49,8 +41,7 @@
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.app4mc.transformation.feature.sdk.feature.group" version="0.0.0"/>
-      <unit id="org.eclipse.app4mc.transformation.log4j.configuration.feature.feature.group" version="0.0.0"/>
-      <repository location="https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.app4mc.slg.commons.m2t.feature.sdk.feature.group" version="0.0.0"/>
diff --git a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.tpd b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.tpd
index 90701f7..4556898 100644
--- a/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.tpd
+++ b/load_generator/linux/releng/org.eclipse.app4mc.slg.linux.target/org.eclipse.app4mc.slg.linux.target.tpd
@@ -7,9 +7,6 @@
 	org.eclipse.emf.ecore.xcore.lib.feature.group
 	org.eclipse.emf.mwe.core
 	org.eclipse.emf.sdk.feature.group
-	org.eclipse.emf.transaction.feature.group
-	org.eclipse.emf.validation.feature.group
-	org.eclipse.emf.workspace.feature.group
 	org.eclipse.equinox.sdk.feature.group
 	org.eclipse.equinox.compendium.sdk.feature.group
 	org.eclipse.xtext.runtime.feature.group
@@ -18,42 +15,34 @@
 	org.eclipse.xtext.xbase.lib.feature.group
 	org.eclipse.xtend.sdk.feature.group
 	org.eclipse.xpand.sdk.feature.group
-	org.apache.commons.cli
 	org.apache.commons.lang
-	org.apache.log4j
-	org.apache.xerces
-	org.apache.xalan
-	org.apache.xml.resolver
-	org.apache.xml.serializer
 	javax.xml
-	org.jdom
 
 	// SLF4J	
 	org.slf4j.api [1.7.2,1.7.3)
-	org.slf4j.impl.log4j12 [1.7.2,1.7.3)
 
 	com.google.guava
 	com.google.inject
 }
 
 location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" {
-	org.apache.commons.math
 	org.apache.commons.math3
 }
 
-//location "http://download.eclipse.org/app4mc/updatesites/releases/1.1.0"
+location "https://download.eclipse.org/app4mc/updatesites/releases/1.1.0" {
+	org.eclipse.app4mc.platform.sdk.feature.group
+}
 
-location "http://download.eclipse.org/app4mc/updatesites/snapshot" {
-	org.eclipse.app4mc.platform.sdk.feature.group lazy
+location "https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/" {
+	org.eclipse.app4mc.utils.platform.sdk.feature.group
 }
 
 location "https://download.eclipse.org/cbi/updates/license" {
 	org.eclipse.license.feature.group
 }
 
-location "https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo" {
+location "https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo/" {
 	org.eclipse.app4mc.transformation.feature.sdk.feature.group lazy
-	org.eclipse.app4mc.transformation.log4j.configuration.feature.feature.group lazy
 }
 
 location "https://download.eclipse.org/app4mc/components/addon/transformation.slg.commons/snapshot/p2repo" {
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/META-INF/MANIFEST.MF b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/META-INF/MANIFEST.MF
index e9049e9..556a536 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/META-INF/MANIFEST.MF
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/META-INF/MANIFEST.MF
@@ -7,17 +7,15 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.transformers,
  org.eclipse.app4mc.transformation.util,
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
  org.osgi.service.component;version="1.4.0",
- org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional
 Require-Bundle: com.google.inject;bundle-version="3.0.0",
  org.eclipse.app4mc.slg.config;bundle-version="0.1.0",
  org.eclipse.app4mc.slg.commons.m2t;bundle-version="0.1.0"
 Bundle-ActivationPolicy: lazy
-Service-Component: OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig.xml,
- OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2GoogleGuiceModuleFactory.xml,
+Service-Component: OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2GoogleGuiceModuleFactory.xml,
  OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2RootTransformer.xml,
  OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2SLGTransformationDefinition.xml
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig.xml b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig.xml
deleted file mode 100644
index 1133ca2..0000000
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/OSGI-INF/org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig">
-   <property name="transformation" value="ROS2_SLG"/>
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig"/>
-   </service>
-   <implementation class="org.eclipse.app4mc.slg.ros2.artefacts.ROS2M2TTransformationConfig"/>
-</scr:component>
\ No newline at end of file
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModule.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModule.java
index 42a56c3..d136b38 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModule.java
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModule.java
@@ -24,19 +24,22 @@
 import org.eclipse.app4mc.slg.ros2.transformers.sw.RosLabelTransformer;
 import org.eclipse.app4mc.slg.ros2.transformers.sw.RosRunnableTransformer;
 import org.eclipse.app4mc.slg.ros2.transformers.sw.RosTaskTransformer;
+import org.eclipse.app4mc.transformation.util.TransformationGuiceModule;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
-import com.google.inject.AbstractModule;
-
-public class ROS2GoogleGuiceModule extends AbstractModule {
+public class ROS2GoogleGuiceModule extends TransformationGuiceModule {
 
 	protected Properties properties;
 
-	public ROS2GoogleGuiceModule(Properties properties) {
+	public ROS2GoogleGuiceModule(SessionLogger logger, Properties properties) {
+		super(logger);
 		this.properties = properties;
 	}
 
 	@Override
 	protected void configure() {
+		super.configure();
+		
 		bind(Properties.class).toInstance(this.properties);
 		bind(CustomObjectsStore.class).toInstance(new CustomObjectsStore());
 
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModuleFactory.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModuleFactory.java
index 9cb304d..969587f 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModuleFactory.java
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2GoogleGuiceModuleFactory.java
@@ -16,6 +16,7 @@
 import java.util.Properties;
 
 import org.eclipse.app4mc.transformation.ServiceConstants;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 
@@ -23,11 +24,10 @@
 		configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
 		configurationPolicy = ConfigurationPolicy.REQUIRE,
 		service = ROS2GoogleGuiceModuleFactory.class)
-
 public class ROS2GoogleGuiceModuleFactory {
 
-	public ROS2GoogleGuiceModule getModule(Properties properties) {
-		return new ROS2GoogleGuiceModule(properties);
+	public ROS2GoogleGuiceModule getModule(SessionLogger logger, Properties properties) {
+		return new ROS2GoogleGuiceModule(logger, properties);
 	}
 
 }
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2M2TTransformationConfig.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2M2TTransformationConfig.java
deleted file mode 100644
index ed6278b..0000000
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2M2TTransformationConfig.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Copyright (c) 2020-2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- */
-
-package org.eclipse.app4mc.slg.ros2.artefacts;
-
-import java.util.Map;
-
-import org.eclipse.app4mc.slg.commons.m2t.M2TTransformationConfig;
-import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-
-@Component(
-		configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-		configurationPolicy = ConfigurationPolicy.REQUIRE,
-		property = { "transformation=ROS2_SLG" },
-		service = IModelToTextConfig.class)
-
-public class ROS2M2TTransformationConfig extends M2TTransformationConfig {
-
-	@Activate
-	void activate(Map<String, ?> properties) {
-		folderPath = (String) properties.get("input_models_folder");
-	}
-
-}
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2RootTransformer.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2RootTransformer.java
index a2c3b4e..88cd4c3 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2RootTransformer.java
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2RootTransformer.java
@@ -23,13 +23,10 @@
 import org.eclipse.app4mc.transformation.ServiceConstants;
 import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer;
-import org.eclipse.emf.ecore.resource.ResourceSet;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -42,37 +39,38 @@
 
 public class ROS2RootTransformer extends Model2TextRootTransformer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(ROS2RootTransformer.class);
-
 	@Reference
 	private ROS2GoogleGuiceModuleFactory moduleFactory;
 
 	Properties properties;
 
 	@Activate
-	void activate(Map<String, ?> properties) {
-		LOG.debug("LinuxRootTransformer activated : {}", this.hashCode());
-
+	@Override
+	protected void activate(Map<String, ?> properties) {
+		super.activate(properties);
 		this.properties = new Properties();
 		this.properties.putAll(properties);
+		
+		// set the output directory to the local properties
+		this.properties.put(TransformationConstants.TRANSFORMATION_OUTPUT_FOLDER, getOutputFolder());
 	}
 
 	@Override
-	public void m2tTransformation(ResourceSet inputResourceSet) {
+	public void m2tTransformation() {
 
-		Injector injector = Guice.createInjector(moduleFactory.getModule(properties));
+		Injector injector = Guice.createInjector(moduleFactory.getModule(logger, properties));
 
 		RosModel2TextTransformer instance = injector.getInstance(RosModel2TextTransformer.class);
 
 		harmonizeSLGParams(properties);
 
-		instance.m2tTransformation(inputResourceSet);
+		instance.m2tTransformation(getInputResourceSet(getInputFolder(), logger));
 	}
 
 	private void harmonizeSLGParams(Properties props) {
 
 		if (!props.containsKey("configurationFile")) {
-			LOG.error("'configurationFile' property not set in the input properties file");
+			logger.error("'configurationFile' property not set in the input properties file");
 			throw new IllegalArgumentException("'configurationFile' property not set in the input properties file");
 
 		}
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2SLGTransformationDefinition.java b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2SLGTransformationDefinition.java
index 78582df..b80265f 100644
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2SLGTransformationDefinition.java
+++ b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/src/org/eclipse/app4mc/slg/ros2/artefacts/ROS2SLGTransformationDefinition.java
@@ -15,6 +15,10 @@
 
 package org.eclipse.app4mc.slg.ros2.artefacts;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
 import org.eclipse.app4mc.transformation.TransformationDefinition;
 import org.osgi.service.component.annotations.Component;
 
@@ -41,4 +45,10 @@
 		return "ROS2_SLG";
 	}
 
+	@Override
+	public List<TransformationParameter> getTransformationParameter() {
+		return Arrays.asList(
+				new TransformationParameter("SLG Settings", "configurationFile", "Configuration Model", File.class));
+	}
+
 }
diff --git a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/xtend-gen/readme.txt b/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/xtend-gen/readme.txt
deleted file mode 100644
index 759a0c2..0000000
--- a/load_generator/ros2/plugins/org.eclipse.app4mc.slg.ros2/xtend-gen/readme.txt
+++ /dev/null
@@ -1 +0,0 @@
-Code generated by Xtend builder.
diff --git a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.product/ROS2_SLG.product b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.product/ROS2_SLG.product
index 9111986..9bf8ab3 100644
--- a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.product/ROS2_SLG.product
+++ b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.product/ROS2_SLG.product
@@ -3,14 +3,13 @@
 
 <product uid="org.eclipse.app4mc.slg.ros2.product" application="org.eclipse.app4mc.amlt2systemc.app.application" version="1.1.0.qualifier" useFeatures="false" includeLaunchers="true">
 
-
    <configIni use="default">
    </configIni>
 
    <launcherArgs>
       <programArgs>--properties ${workspace_loc:org.eclipse.app4mc.slg.ros2.product}/input.properties&quot;
       </programArgs>
-      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dlog4j.configuration=headless_log4j.xml
+      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -18,24 +17,20 @@
 
    <windowImages/>
 
-
    <launcher>
       <win useIco="false">
          <bmp/>
       </win>
    </launcher>
 
-
    <vm>
    </vm>
 
    <plugins>
       <plugin id="com.google.guava"/>
       <plugin id="com.google.inject"/>
-      <plugin id="com.ibm.icu"/>
       <plugin id="javax.inject"/>
       <plugin id="javax.xml"/>
-      <plugin id="org.apache.commons.cli"/>
       <plugin id="org.apache.commons.lang"/>
       <plugin id="org.apache.commons.logging"/>
       <plugin id="org.apache.commons.math3"/>
@@ -43,68 +38,36 @@
       <plugin id="org.apache.felix.gogo.runtime"/>
       <plugin id="org.apache.felix.gogo.shell"/>
       <plugin id="org.apache.felix.scr"/>
-      <plugin id="org.apache.log4j"/>
-      <plugin id="org.apache.xerces"/>
-      <plugin id="org.apache.xml.resolver"/>
-      <plugin id="org.apache.xml.serializer"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
       <plugin id="org.eclipse.app4mc.slg.commons.m2t"/>
       <plugin id="org.eclipse.app4mc.slg.config"/>
       <plugin id="org.eclipse.app4mc.slg.ros2"/>
       <plugin id="org.eclipse.app4mc.transformation"/>
-      <plugin id="org.eclipse.app4mc.transformation.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.transformation.starter"/>
-      <plugin id="org.eclipse.core.commands"/>
-      <plugin id="org.eclipse.core.contenttype"/>
-      <plugin id="org.eclipse.core.expressions"/>
-      <plugin id="org.eclipse.core.filesystem"/>
-      <plugin id="org.eclipse.core.filesystem.linux.ppc64le" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.linux.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.macosx" fragment="true"/>
-      <plugin id="org.eclipse.core.filesystem.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.jobs"/>
-      <plugin id="org.eclipse.core.resources"/>
-      <plugin id="org.eclipse.core.resources.win32.x86_64" fragment="true"/>
-      <plugin id="org.eclipse.core.runtime"/>
-      <plugin id="org.eclipse.emf"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file"/>
       <plugin id="org.eclipse.emf.common"/>
       <plugin id="org.eclipse.emf.ecore"/>
-      <plugin id="org.eclipse.emf.ecore.change"/>
       <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
       <plugin id="org.eclipse.emf.ecore.xmi"/>
-      <plugin id="org.eclipse.emf.edit"/>
-      <plugin id="org.eclipse.emf.transaction"/>
-      <plugin id="org.eclipse.emf.validation"/>
-      <plugin id="org.eclipse.emf.workspace"/>
-      <plugin id="org.eclipse.equinox.app"/>
       <plugin id="org.eclipse.equinox.cm"/>
       <plugin id="org.eclipse.equinox.common"/>
       <plugin id="org.eclipse.equinox.console"/>
       <plugin id="org.eclipse.equinox.event"/>
-      <plugin id="org.eclipse.equinox.preferences"/>
-      <plugin id="org.eclipse.equinox.region" fragment="true"/>
-      <plugin id="org.eclipse.equinox.registry"/>
-      <plugin id="org.eclipse.equinox.supplement"/>
-      <plugin id="org.eclipse.equinox.transforms.hook" fragment="true"/>
-      <plugin id="org.eclipse.equinox.weaving.hook" fragment="true"/>
       <plugin id="org.eclipse.osgi"/>
-      <plugin id="org.eclipse.osgi.compatibility.state" fragment="true"/>
       <plugin id="org.eclipse.osgi.services"/>
       <plugin id="org.eclipse.osgi.util"/>
-      <plugin id="org.eclipse.xtend.lib"/>
-      <plugin id="org.eclipse.xtend.lib.macro"/>
-      <plugin id="org.eclipse.xtext.logging" fragment="true"/>
       <plugin id="org.eclipse.xtext.xbase.lib"/>
-      <plugin id="org.jdom"/>
       <plugin id="org.slf4j.api"/>
-      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
    </plugins>
 
    <configurations>
       <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console" autoStart="true" startLevel="3" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file" autoStart="true" startLevel="3" />
       <plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <property name="log4j.configuration" value="headless_log4j.xml" />
    </configurations>
 
    <preferencesInfo>
diff --git a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.target b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.target
index 434c244..3052a5d 100644
--- a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.target
+++ b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.target
@@ -1,16 +1,13 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/eclipse-cbi/targetplatform-dsl -->
-<target name="Synthetic Load Generator ROS2 Target" sequenceNumber="1619009657">
+<target name="Synthetic Load Generator ROS2 Target" sequenceNumber="1620299918">
   <locations>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.sdk.ide" version="4.14.0.I20191210-0610"/>
       <unit id="org.eclipse.emf.ecore.xcore.lib.feature.group" version="1.5.0.v20190401-0856"/>
       <unit id="org.eclipse.emf.mwe.core" version="1.5.1.v20191121-1148"/>
       <unit id="org.eclipse.emf.sdk.feature.group" version="2.20.0.v20191028-0905"/>
-      <unit id="org.eclipse.emf.transaction.feature.group" version="1.12.0.201805140824"/>
-      <unit id="org.eclipse.emf.validation.feature.group" version="1.12.1.201812070911"/>
-      <unit id="org.eclipse.emf.workspace.feature.group" version="1.12.0.201805140824"/>
       <unit id="org.eclipse.equinox.sdk.feature.group" version="3.20.0.v20191122-2104"/>
       <unit id="org.eclipse.equinox.compendium.sdk.feature.group" version="3.20.0.v20191107-1453"/>
       <unit id="org.eclipse.xtext.runtime.feature.group" version="2.20.0.v20191202-1256"/>
@@ -19,29 +16,24 @@
       <unit id="org.eclipse.xtext.xbase.lib.feature.group" version="2.20.0.v20191202-0910"/>
       <unit id="org.eclipse.xtend.sdk.feature.group" version="2.20.0.v20191202-1256"/>
       <unit id="org.eclipse.xpand.sdk.feature.group" version="2.2.0.v201605260315"/>
-      <unit id="org.apache.commons.cli" version="1.2.0.v201404270220"/>
       <unit id="org.apache.commons.lang" version="2.6.0.v201404270220"/>
-      <unit id="org.apache.log4j" version="1.2.15.v201012070815"/>
-      <unit id="org.apache.xerces" version="2.9.0.v201101211617"/>
-      <unit id="org.apache.xalan" version="2.7.1.v201005080400"/>
-      <unit id="org.apache.xml.resolver" version="1.2.0.v201005080400"/>
-      <unit id="org.apache.xml.serializer" version="2.7.1.v201005080400"/>
       <unit id="javax.xml" version="1.3.4.v201005080400"/>
-      <unit id="org.jdom" version="1.1.1.v201101151400"/>
       <unit id="org.slf4j.api" version="1.7.2.v20121108-1250"/>
-      <unit id="org.slf4j.impl.log4j12" version="1.7.2.v20131105-2200"/>
       <unit id="com.google.guava" version="27.1.0.v20190517-1946"/>
       <unit id="com.google.inject" version="3.0.0.v201605172100"/>
       <repository location="https://download.eclipse.org/releases/2019-12"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.apache.commons.math" version="2.1.0.v201105210652"/>
       <unit id="org.apache.commons.math3" version="3.5.0.v20190611-1023"/>
       <repository location="https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="0.0.0"/>
-      <repository location="http://download.eclipse.org/app4mc/updatesites/snapshot"/>
+      <unit id="org.eclipse.app4mc.platform.sdk.feature.group" version="1.1.0.202104301043"/>
+      <repository location="https://download.eclipse.org/app4mc/updatesites/releases/1.1.0"/>
+    </location>
+    <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
+      <unit id="org.eclipse.app4mc.utils.platform.sdk.feature.group" version="1.1.0.202104300936"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.license.feature.group" version="2.0.2.v20181016-2210"/>
@@ -49,8 +41,7 @@
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.app4mc.transformation.feature.sdk.feature.group" version="0.0.0"/>
-      <unit id="org.eclipse.app4mc.transformation.log4j.configuration.feature.feature.group" version="0.0.0"/>
-      <repository location="https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo"/>
+      <repository location="https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo/"/>
     </location>
     <location includeMode="slicer" includeAllPlatforms="true" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.app4mc.slg.commons.m2t.feature.sdk.feature.group" version="0.0.0"/>
diff --git a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.tpd b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.tpd
index d6e6318..1a4b4c0 100644
--- a/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.tpd
+++ b/load_generator/ros2/releng/org.eclipse.app4mc.slg.ros2.target/org.eclipse.app4mc.slg.ros2.target.tpd
@@ -7,9 +7,6 @@
 	org.eclipse.emf.ecore.xcore.lib.feature.group
 	org.eclipse.emf.mwe.core
 	org.eclipse.emf.sdk.feature.group
-	org.eclipse.emf.transaction.feature.group
-	org.eclipse.emf.validation.feature.group
-	org.eclipse.emf.workspace.feature.group
 	org.eclipse.equinox.sdk.feature.group
 	org.eclipse.equinox.compendium.sdk.feature.group
 	org.eclipse.xtext.runtime.feature.group
@@ -18,42 +15,34 @@
 	org.eclipse.xtext.xbase.lib.feature.group
 	org.eclipse.xtend.sdk.feature.group
 	org.eclipse.xpand.sdk.feature.group
-	org.apache.commons.cli
 	org.apache.commons.lang
-	org.apache.log4j
-	org.apache.xerces
-	org.apache.xalan
-	org.apache.xml.resolver
-	org.apache.xml.serializer
 	javax.xml
-	org.jdom
 
 	// SLF4J	
 	org.slf4j.api [1.7.2,1.7.3)
-	org.slf4j.impl.log4j12 [1.7.2,1.7.3)
 
 	com.google.guava
 	com.google.inject
 }
 
 location "https://download.eclipse.org/tools/orbit/downloads/drops/R20191126223242/repository" {
-	org.apache.commons.math
 	org.apache.commons.math3
 }
 
-//location "http://download.eclipse.org/app4mc/updatesites/releases/1.1.0"
+location "https://download.eclipse.org/app4mc/updatesites/releases/1.1.0" {
+	org.eclipse.app4mc.platform.sdk.feature.group
+}
 
-location "http://download.eclipse.org/app4mc/updatesites/snapshot" {
-	org.eclipse.app4mc.platform.sdk.feature.group lazy
+location "https://download.eclipse.org/app4mc/components/addon/migration/releases/1.1.0/p2repo/" {
+	org.eclipse.app4mc.utils.platform.sdk.feature.group
 }
 
 location "https://download.eclipse.org/cbi/updates/license" {
 	org.eclipse.license.feature.group
 }
 
-location "https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo" {
+location "https://download.eclipse.org/app4mc/components/addon/transformation/snapshot/p2repo/" {
 	org.eclipse.app4mc.transformation.feature.sdk.feature.group lazy
-	org.eclipse.app4mc.transformation.log4j.configuration.feature.feature.group lazy
 }
 
 location "https://download.eclipse.org/app4mc/components/addon/transformation.slg.commons/snapshot/p2repo" {
diff --git a/simulation_generator/app4mc.sim/Dockerfile b/simulation_generator/app4mc.sim/Dockerfile
new file mode 100644
index 0000000..3179e1c
--- /dev/null
+++ b/simulation_generator/app4mc.sim/Dockerfile
@@ -0,0 +1,14 @@
+# checkout the develop branch of APP4MC Transformation
+FROM alpine/git as clone-stage
+WORKDIR /app
+RUN git clone --branch develop --single-branch https://git.eclipse.org/r/app4mc/org.eclipse.app4mc.addon.transformation.git
+
+# build via Maven
+FROM maven:3.6.3-openjdk-11 as build-stage
+WORKDIR /app
+COPY --from=clone-stage /app/org.eclipse.app4mc.addon.transformation/simulation_generator/app4mc.sim /app
+RUN mvn verify
+
+FROM scratch AS export-stage
+COPY --from=build-stage /app/releng/org.eclipse.app4mc.amlt2systemc.product/target/products/org.eclipse.app4mc.amlt2systemc.product-linux.gtk.x86_64.zip /
+
diff --git a/simulation_generator/app4mc.sim/features/org.eclipse.app4mc.amlt2systemc.feature/feature.xml b/simulation_generator/app4mc.sim/features/org.eclipse.app4mc.amlt2systemc.feature/feature.xml
index d247517..bd3c067 100644
--- a/simulation_generator/app4mc.sim/features/org.eclipse.app4mc.amlt2systemc.feature/feature.xml
+++ b/simulation_generator/app4mc.sim/features/org.eclipse.app4mc.amlt2systemc.feature/feature.xml
@@ -18,7 +18,7 @@
 
    <requires>
       <import plugin="org.eclipse.app4mc.amalthea.model"/>
-      <import feature="org.eclipse.app4mc.transformation.feature" version="0.1.0.qualifier"/>
+      <import feature="org.eclipse.app4mc.transformation.feature" version="1.1.0"/>
    </requires>
 
    <plugin
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/META-INF/MANIFEST.MF b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/META-INF/MANIFEST.MF
index 32e0f92..60e328f 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/META-INF/MANIFEST.MF
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/META-INF/MANIFEST.MF
@@ -7,15 +7,14 @@
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.starter,
  org.eclipse.app4mc.transformation.transformers,
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
  org.osgi.service.component;version="1.4.0",
  org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
  org.slf4j;version="1.7.2"
 Bundle-ActivationPolicy: lazy
 Require-Bundle: com.google.inject;bundle-version="3.0.0",
- org.apache.log4j;bundle-version="1.2.15",
  org.eclipse.emf;bundle-version="2.6.0",
  org.eclipse.app4mc.amalthea.model;visibility:=reexport,
  org.eclipse.app4mc.transformation,
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModule.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModule.java
index 67f9155..2b8bf95 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModule.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModule.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -20,11 +20,12 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.SystemCGuiceModule;
 import org.eclipse.app4mc.amlt2systemc.m2t.cust.transformers.CustMemoryTransformer;
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.hw.MemoryTransformer;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
 public class CustSystemCGuiceModule extends SystemCGuiceModule {
 
-	public CustSystemCGuiceModule(Properties properties) {
-		super(properties);
+	public CustSystemCGuiceModule(SessionLogger logger, Properties properties) {
+		super(logger, properties);
 	}
 
 	@Override
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModuleFactory.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModuleFactory.java
index efb4492..9d8d83d 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModuleFactory.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t.cust/src/org/eclipse/app4mc/amlt2systemc/m2t/cust/module/CustSystemCGuiceModuleFactory.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -19,6 +19,7 @@
 
 import org.eclipse.app4mc.amlt2systemc.m2t.SystemCGuiceModule;
 import org.eclipse.app4mc.amlt2systemc.m2t.SystemCGuiceModuleFactory;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 
 @Component(
@@ -28,8 +29,8 @@
 public class CustSystemCGuiceModuleFactory extends SystemCGuiceModuleFactory {
 
 	@Override
-	public SystemCGuiceModule getModule(Properties properties) {
-		return new CustSystemCGuiceModule(properties);
+	public SystemCGuiceModule getModule(SessionLogger logger, Properties properties) {
+		return new CustSystemCGuiceModule(logger,properties);
 	}
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/META-INF/MANIFEST.MF b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/META-INF/MANIFEST.MF
index 7abdef4..7d9da19 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/META-INF/MANIFEST.MF
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/META-INF/MANIFEST.MF
@@ -9,14 +9,12 @@
  org.eclipse.app4mc.amalthea.model;bundle-version="1.0.0"
 Import-Package: javax.inject;version="1.0.0",
  org.eclipse.app4mc.transformation,
- org.eclipse.app4mc.transformation.executiontype,
  org.eclipse.app4mc.transformation.transformers,
  org.eclipse.app4mc.transformation.util,
+ org.eclipse.app4mc.util.sessionlog;version="1.1.0",
  org.osgi.service.component;version="1.4.0",
- org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional,
- org.slf4j;version="1.7.2"
+ org.osgi.service.component.annotations;version="[1.3.0,2.0.0)";resolution:=optional
 Export-Package: org.eclipse.app4mc.amlt2systemc.m2t,
- org.eclipse.app4mc.amlt2systemc.m2t.config,
  org.eclipse.app4mc.amlt2systemc.m2t.module,
  org.eclipse.app4mc.amlt2systemc.m2t.transformers,
  org.eclipse.app4mc.amlt2systemc.m2t.transformers.hw,
@@ -29,5 +27,4 @@
 Automatic-Module-Name: org.eclipse.app4mc.amlt2systemc.m2t
 Service-Component: OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.SystemCGuiceModuleFactory.xml,
  OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.APP4MCsimTransformationDefinition.xml,
- OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig.xml,
  OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.SystemCRootTransformer.xml
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig.xml b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig.xml
deleted file mode 100644
index 5803607..0000000
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/OSGI-INF/org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.2.0" activate="activate" configuration-pid="TRANSFORMATION_SESSION_CONFIG" configuration-policy="require" name="org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig">
-   <property name="transformation" value="APP4MCSIM"/>
-   <service>
-      <provide interface="org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig"/>
-   </service>
-   <implementation class="org.eclipse.app4mc.amlt2systemc.m2t.M2TTransformationConfig"/>
-</scr:component>
\ No newline at end of file
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/APP4MCsimTransformationDefinition.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/APP4MCsimTransformationDefinition.java
index 24fed57..7e9b29d 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/APP4MCsimTransformationDefinition.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/APP4MCsimTransformationDefinition.java
@@ -15,6 +15,11 @@
 
 package org.eclipse.app4mc.amlt2systemc.m2t;
 
+import java.io.File;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys;
 import org.eclipse.app4mc.transformation.TransformationDefinition;
 import org.osgi.service.component.annotations.Component;
 
@@ -41,4 +46,10 @@
 		return "APP4MCSIM";
 	}
 
+	@Override
+	public List<TransformationParameter> getTransformationParameter() {
+		return Arrays.asList(
+				new TransformationParameter("APP4MCsim Settings", PropertyKeys.APP4MCSIM_FOLDER, "APP4MCsim Folder", File.class));
+	}
+
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/M2TTransformationConfig.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/M2TTransformationConfig.java
deleted file mode 100644
index b0a1ef2..0000000
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/M2TTransformationConfig.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2020, 2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.amlt2systemc.m2t;
-
-import java.util.Map;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.io.AmaltheaLoader;
-import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys;
-import org.eclipse.app4mc.transformation.ServiceConstants;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.osgi.service.component.annotations.Activate;
-import org.osgi.service.component.annotations.Component;
-import org.osgi.service.component.annotations.ConfigurationPolicy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-@Component(
-		configurationPid = ServiceConstants.SESSION_CONFIGURATION_PID,
-		configurationPolicy = ConfigurationPolicy.REQUIRE,
-		property = { ServiceConstants.TRANSFORMATION_PROPERTY + "=APP4MCSIM" },
-		service = IModelToTextConfig.class)
-public class M2TTransformationConfig implements IModelToTextConfig {
-
-	private static final Logger LOG = LoggerFactory.getLogger(M2TTransformationConfig.class);
-
-	private String folderPath;
-
-	@Activate
-	void activate(Map<String, ?> properties) {
-		folderPath = (String) properties.get(PropertyKeys.INPUT_MODELS_FOLDER);
-	}
-
-	public ResourceSet getInputResourceSet() {
-
-		if (folderPath != null) {
-
-			ResourceSet resourceSet = AmaltheaLoader.loadFromDirectoryNamed(folderPath);
-
-			if (resourceSet.getResources().isEmpty()) {
-				LOG.error(
-						"No Amalthea model files are loaded. Verify if the model version is : {}",
-						AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
-			}
-
-			return resourceSet;
-		} else {
-			LOG.error("Input_models_folder parameter not set",
-					new NullPointerException("input_models_folder property not set"));
-		}
-
-		return null;
-	}
-
-}
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModule.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModule.java
index d330750..515c8e9 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModule.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModule.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -17,18 +17,21 @@
 
 import java.util.Properties;
 
-import com.google.inject.AbstractModule;
+import org.eclipse.app4mc.transformation.util.TransformationGuiceModule;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 
-public class SystemCGuiceModule extends AbstractModule {
+public class SystemCGuiceModule extends TransformationGuiceModule {
 
 	protected Properties properties;
 
-	public SystemCGuiceModule(Properties properties) {
+	public SystemCGuiceModule(SessionLogger logger, Properties properties) {
+		super(logger);
 		this.properties = properties;
 	}
 
 	@Override
 	protected void configure() {
+		super.configure();
 		bind(Properties.class).toInstance(this.properties);
 	}
 
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModuleFactory.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModuleFactory.java
index 487a7aa..03fe69c 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModuleFactory.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCGuiceModuleFactory.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -17,15 +17,14 @@
 
 import java.util.Properties;
 
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.osgi.service.component.annotations.Component;
 
-@Component(
-		service = SystemCGuiceModuleFactory.class)
-
+@Component(service = SystemCGuiceModuleFactory.class)
 public class SystemCGuiceModuleFactory {
 
-	public SystemCGuiceModule getModule(Properties properties) {
-		return new SystemCGuiceModule(properties);
+	public SystemCGuiceModule getModule(SessionLogger logger, Properties properties) {
+		return new SystemCGuiceModule(logger, properties);
 	}
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCRootTransformer.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCRootTransformer.java
index bfb439e..9c2afb2 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCRootTransformer.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/SystemCRootTransformer.java
@@ -22,6 +22,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys;
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.AmaltheaModel2TextTransformer;
 import org.eclipse.app4mc.transformation.ServiceConstants;
+import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.transformers.Model2TextRootTransformer;
 import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.resource.Resource;
@@ -30,8 +31,6 @@
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.ConfigurationPolicy;
 import org.osgi.service.component.annotations.Reference;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Guice;
 import com.google.inject.Injector;
@@ -44,28 +43,30 @@
 
 public class SystemCRootTransformer extends Model2TextRootTransformer {
 
-	private static final Logger LOG = LoggerFactory.getLogger(SystemCRootTransformer.class);
-
 	@Reference
 	SystemCGuiceModuleFactory factory;
 
 	Properties properties;
 
 	@Activate
-	void activate(Map<String, ?> properties) {
-		LOG.debug("SystemCRootTransformer activated : {}", this.hashCode());
-
+	@Override
+	protected void activate(Map<String, ?> properties) {
+		super.activate(properties);
 		this.properties = new Properties();
 		this.properties.putAll(properties);
+		
+		// set the output directory to the local properties
+		this.properties.put(TransformationConstants.TRANSFORMATION_OUTPUT_FOLDER, getOutputFolder());
 	}
-
+	
 	@Override
-	public void m2tTransformation(ResourceSet inputResourceSet) {
+	public void m2tTransformation() {
 
-		Injector injector = Guice.createInjector(factory.getModule(properties));
+		Injector injector = Guice.createInjector(factory.getModule(logger, properties));
 
 		AmaltheaModel2TextTransformer instance = injector.getInstance(AmaltheaModel2TextTransformer.class);
 
+		ResourceSet inputResourceSet = getInputResourceSet(getInputFolder(), logger);
 		setProjectName(inputResourceSet, this.properties);
 
 		instance.m2tTransformation(inputResourceSet);
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/config/M2TTransformation.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/config/M2TTransformation.java
deleted file mode 100644
index 69763a9..0000000
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/config/M2TTransformation.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- ********************************************************************************
- * Copyright (c) 2020, 2021 Robert Bosch GmbH.
- * 
- * This program and the accompanying materials are made
- * available under the terms of the Eclipse Public License 2.0
- * which is available at https://www.eclipse.org/legal/epl-2.0/
- * 
- * SPDX-License-Identifier: EPL-2.0
- * 
- * Contributors:
- *     Robert Bosch GmbH - initial API and implementation
- ********************************************************************************
- */
-
-package org.eclipse.app4mc.amlt2systemc.m2t.config;
-
-import java.util.Properties;
-
-import org.eclipse.app4mc.amalthea.model.AmaltheaFactory;
-import org.eclipse.app4mc.amalthea.model.io.AmaltheaLoader;
-import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys;
-import org.eclipse.app4mc.transformation.executiontype.IModelToTextConfig;
-import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class M2TTransformation implements IModelToTextConfig {
-
-	private Properties parameters;
-
-	private static final Logger LOG = LoggerFactory.getLogger(M2TTransformation.class);
-
-	@Override
-	public ResourceSet getInputResourceSet() {
-
-		if (parameters != null) {
-
-			String folderPath = parameters.getProperty(PropertyKeys.INPUT_MODELS_FOLDER);
-
-			if (folderPath != null) {
-
-				ResourceSet resourceSet = AmaltheaLoader.loadFromDirectoryNamed(folderPath);
-
-				if (resourceSet.getResources().isEmpty()) {
-					LOG.error("No Amalthea model files are loaded. Verify if the model version is : {}",
-							AmaltheaFactory.eINSTANCE.createAmalthea().getVersion());
-				}
-
-				return resourceSet;
-			} else {
-				LOG.error("Input_models_folder parameter not set",
-						new NullPointerException("input_models_folder property not set"));
-			}
-
-		} else {
-			LOG.error("Parameters object not set ", new NullPointerException("Parameter object is null"));
-		}
-		return null;
-	}
-
-	public void setProperties(Properties parameters) {
-		this.parameters = parameters;
-	}
-
-}
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/module/PropertyKeys.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/module/PropertyKeys.java
index 6cff52f..3c373ae 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/module/PropertyKeys.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/module/PropertyKeys.java
@@ -1,6 +1,6 @@
 /**
  ********************************************************************************
- * Copyright (c) 2020 Robert Bosch GmbH.
+ * Copyright (c) 2020, 2021 Robert Bosch GmbH.
  * 
  * This program and the accompanying materials are made
  * available under the terms of the Eclipse Public License 2.0
@@ -22,11 +22,7 @@
 		throw new IllegalStateException("Utility class");
 	}
 
-	public static final String INPUT_MODELS_FOLDER = "input_models_folder";
-	public static final String M2M_OUTPUT_FOLDER = "m2m_output_folder";
-	public static final String M2T_OUTPUT_FOLDER = "m2t_output_folder";
 	public static final String APP4MCSIM_FOLDER = "app4mcsim_folder";
-	public static final String LOG_FILE = "logFile";
 	public static final String PROJECT_NAME = "project_name";
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaModel2TextTransformer.java b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaModel2TextTransformer.java
index c63518e..cf1178e 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaModel2TextTransformer.java
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaModel2TextTransformer.java
@@ -22,51 +22,60 @@
 
 import org.eclipse.app4mc.amalthea.model.Amalthea;
 import org.eclipse.app4mc.amlt2systemc.m2t.module.BaseTransformer;
-import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys;
+import org.eclipse.app4mc.transformation.TransformationConstants;
 import org.eclipse.app4mc.transformation.util.OutputBuffer;
+import org.eclipse.app4mc.util.sessionlog.SessionLogger;
 import org.eclipse.emf.ecore.EObject;
 import org.eclipse.emf.ecore.resource.Resource;
 import org.eclipse.emf.ecore.resource.ResourceSet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.inject.Inject;
 
 public class AmaltheaModel2TextTransformer extends BaseTransformer {
-	private static final Logger LOG = LoggerFactory.getLogger(AmaltheaModel2TextTransformer.class);
 
+	@Inject private SessionLogger logger;
 	@Inject private OutputBuffer outputBuffer;
 	@Inject private AmaltheaTransformer amaltheaTransformer;
 	@Inject private CMakeTopGenerator cmakeTopGenerator;
 
 	public void m2tTransformation(final ResourceSet inputResourceSet) {
+		// configure output buffer
+		this.outputBuffer.initialize(this.getProperty(TransformationConstants.TRANSFORMATION_OUTPUT_FOLDER));
+		this.outputBuffer.configureFiletype("SRC", ".cpp", "// This code was generated for simulation with app4mc.sim\n\n", null);
+		this.outputBuffer.configureFiletype("INC", ".h", "// This code was generated for simulation with app4mc.sim\n\n#pragma once\n\n", null);
+		this.outputBuffer.configureFiletype("OTHER", "", "", "");
+
+		ArrayList<Amalthea> amaltheas = new ArrayList<Amalthea>();
 		for (final Resource resource : inputResourceSet.getResources()) {
 			for (final EObject model : resource.getContents()) {
 
-				LOG.info(("Processing file : " + resource.getURI()));
-
+				logger.info("Processing file : {0}", resource.getURI());
+				
 				if ((model instanceof Amalthea)) {
-
-					this.outputBuffer.initialize(this.getProperty(PropertyKeys.M2T_OUTPUT_FOLDER));
-					this.outputBuffer.configureFiletype("SRC", ".cpp", "// This code was generated for simulation with app4mc.sim\n\n", null);
-					this.outputBuffer.configureFiletype("INC", ".h", "// This code was generated for simulation with app4mc.sim\n\n#pragma once\n\n", null);
-					this.outputBuffer.configureFiletype("OTHER", "", "", "");
-
-					this.amaltheaTransformer.transform(((Amalthea) model));
-					this.cmakeTopGenerator.transform();
-					
-					ArrayList<Path> buildPathList = new ArrayList<>();
-					Path buildPath = Paths.get(outputBuffer.getOutputFolder(),"build");
-					if(Files.isDirectory(buildPath)) {
-						buildPathList.add(buildPath);
-					}
-					this.outputBuffer.setExcludePathsOfResult(buildPathList);
-					this.outputBuffer.finish(true, true);
-					
-					LOG.info("Script file generated at : {}", this.outputBuffer.getOutputFolder());
+					amaltheas.add((Amalthea) model);
 				}
 			}
 		}
+		
+		//transform models
+		this.amaltheaTransformer.transform(amaltheas.toArray(new Amalthea[amaltheas.size()]));
+
+		logger.info("Generating cmake");
+
+		this.cmakeTopGenerator.transform();
+
+		// exclude build path
+		ArrayList<Path> buildPathList = new ArrayList<>();
+		Path buildPath = Paths.get(outputBuffer.getOutputFolder(),"build");
+		if(Files.isDirectory(buildPath)) {
+			buildPathList.add(buildPath);
+		}
+
+		// write output buffer to disk
+		this.outputBuffer.setExcludePathsOfResult(buildPathList);
+		this.outputBuffer.finish(true, true);
+		
+		logger.info("Script file generated at : {0}", this.outputBuffer.getOutputFolder());
 	}
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaTransformer.xtend
index d483247..48567d8 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/AmaltheaTransformer.xtend
@@ -16,8 +16,8 @@
 package org.eclipse.app4mc.amlt2systemc.m2t.transformers
 
 import com.google.inject.Inject
+import com.google.inject.Singleton
 import org.eclipse.app4mc.amalthea.model.Amalthea
-import org.eclipse.app4mc.amalthea.model.check.ModelStructureCheck
 import org.eclipse.app4mc.amalthea.model.util.ModelUtil
 import org.eclipse.app4mc.amlt2systemc.m2t.module.BaseTransformer
 import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
@@ -29,10 +29,11 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.os.OsModelTransformer
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.stimuli.StimuliModelTransformer
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.sw.SWModelTransformer
+import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
 import org.eclipse.app4mc.transformation.util.OutputBuffer
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
+import org.eclipse.app4mc.util.sessionlog.SessionLogger
 
+@Singleton
 class AmaltheaTransformer extends BaseTransformer {
 
 	@Inject OutputBuffer outputBuffer
@@ -46,7 +47,7 @@
 	@Inject ProcessingUnitTransformer processingUnitTransformer
 	@Inject MemoryTransformer memoryTransformer
 	
-	static final Logger LOG = LoggerFactory.getLogger(AmaltheaTransformer);
+	@Inject SessionLogger logger;
 	
 	static def getModulePath() {
 		return "amaltheaTop"
@@ -56,23 +57,27 @@
 		return getModulePath() + "/amalthea"
 	}
 
-	def void transform(Amalthea amalthea) {
-
-		if (amalthea === null) {
-			LOG.error("Input Amalthea model invalid (received null).")
+	def void transform(Amalthea[] amaltheas) {
+		if (amaltheas === null || amaltheas.empty) {
+			logger.error("Input Amalthea model(s) invalid (received null).")
 			return
 		}
-		
-		if (!ModelStructureCheck.checkModel(amalthea, null, false)){
-			LOG.error("Input Amalthea model failed model structure check.")
-			return
-		}
+			
+		//make sure all submodels are present in at least one input model 
+		//Note: chose index 0 at will, any list element would do just fine
+		adjustModel(amaltheas.get(0))
 
-		adjustModel(amalthea)
+		swModelTransformer.transform(amaltheas.map[it.swModel])
+		hwModelTransformer.transform(amaltheas.map[it.hwModel])
+		mappingModelTransformer.transform(amaltheas.map[it.mappingModel])
+		osModelTransformer.transform(amaltheas.map[it.osModel])
+		eventModelTransformer.transform(amaltheas.map[it.eventModel])
+		stimuliModelTransformer.transform(amaltheas.map[it.stimuliModel])
 
-		outputBuffer.appendTo("INC", getModuleName(), toH(amalthea))
-		outputBuffer.appendTo("SRC", getModuleName(), toCpp(amalthea))
+		outputBuffer.appendTo("INC", getModuleName(), toH())
+		outputBuffer.appendTo("SRC", getModuleName(), toCpp())//swModels, hwModels, mappingModels, osModels, eventModels, stimuliModels))
 		outputBuffer.appendTo("OTHER", getModulePath() + "/CMakeLists.txt", getCMake());
+		
 	}
 
 	private def void adjustModel(Amalthea amalthea) {
@@ -85,99 +90,126 @@
 		ModelUtil.getOrCreateStimuliModel(amalthea);
 	}
 
-	private def String toH(Amalthea amalthea) '''
+	private def String toH() '''
 		//top level header 
 	'''
 
-	private def String toCpp(Amalthea amalthea) '''
-	#include "APP4MCsim.h"
-	#include "Tracer/Tracer.h"
-	#include "Tracer/BTFTracer.h"
-	
-	#include "«getModuleName()».h"
-	//include model elements
-	#include "«swModelTransformer.transform(ModelUtil.getOrCreateSwModel(amalthea)).module».h"
-	#include "«hwModelTransformer.transform(ModelUtil.getOrCreateHwModel(amalthea)).module».h"
-	#include "«mappingModelTransformer.transform(ModelUtil.getOrCreateMappingModel(amalthea)).module».h"
-	#include "«osModelTransformer.transform(ModelUtil.getOrCreateOsModel(amalthea)).module».h"
-	#include "«eventModelTransformer.transform(ModelUtil.getOrCreateEventModel(amalthea)).module».h"
-	#include "«stimuliModelTransformer.transform(ModelUtil.getOrCreateStimuliModel(amalthea)).module».h"
-	
-	
-	//include processing units and memories for tracing -----
-	«FOR tu: processingUnitTransformer.cache.values»
-		#include "«tu.module».h"
-	«ENDFOR»
-	«FOR tu: memoryTransformer.cache.values»
-		#include "«tu.module».h"
-	«ENDFOR»
-	// tracing includes -----------------
-	
-	INITIALIZE_EASYLOGGINGPP;
-	
-	int sc_main(int argc, char *argv[]) {
-		//static code ----------------------
-		START_EASYLOGGINGPP(argc, argv);
-		sc_core::sc_set_time_resolution(1.0,sc_core::SC_NS);
-		//end static code ------------------
-	
-		/* Hardware */
-		«hwModelTransformer.transform(amalthea.hwModel).call»;
-				
-		/* Software */
-		«swModelTransformer.transform(amalthea.swModel).call»;
-	
-		/* OS */
-		«osModelTransformer.transform(amalthea.osModel).call»;
-	
-	
-		/* Mapping */
-		«mappingModelTransformer.transform(amalthea.mappingModel).call»;
+	private def String toCpp()'''
+		#include "APP4MCsim.h"
+		#include "Tracer/Tracer.h"
+		#include "Tracer/BTFTracer.h"
 		
-		/* Event */
-		«eventModelTransformer.transform(amalthea.eventModel).call»;
+		#include "«getModuleName()».h"
+		//include model elements
+		«FOR obj : TuSort.byModule(swModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(hwModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(osModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(mappingModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(eventModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(stimuliModelTransformer.cache.values)»
+			#include "«obj.module».h"
+		«ENDFOR»
 		
-		/* Stimuli */
-		«stimuliModelTransformer.transform(amalthea.stimuliModel).call»;
-
-		«val tracer = super.getProperty("tracer", "BtfTracer")»
-	
-		auto tracer = std::make_shared<«tracer»>();
-		TraceManager::setTracer(tracer);
 		
-	//static code ----------------------
-		sc_core::sc_trace_file *tf = sc_core::sc_create_vcd_trace_file("trace");
-		
-		//trace processing units and memories -----
+		//include processing units and memories for tracing -----
 		«FOR tu: processingUnitTransformer.cache.values»
-			sc_trace(tf, &*«tu.call»(), "«tu.module.replaceAll("/", "_")»");
+			#include "«tu.module».h"
 		«ENDFOR»
 		«FOR tu: memoryTransformer.cache.values»
-			sc_trace(tf, &*«tu.call»(), "«tu.module.replaceAll("/", "_")»");
+			#include "«tu.module».h"
 		«ENDFOR»
-			// tracing includes -----------------
-	
-	
-		try {
-			«val simDuration = super.getProperty("simDurationInMS", "1000")»
-			sc_core::sc_start(«simDuration», sc_core::SC_MS);
+		// tracing includes -----------------
+		
+		INITIALIZE_EASYLOGGINGPP;
+		
+		int sc_main(int argc, char *argv[]) {
+			//static code ----------------------
+			START_EASYLOGGINGPP(argc, argv);
+			sc_core::sc_set_time_resolution(1.0,sc_core::SC_NS);
+			//end static code ------------------
+			
+			/* Software */
+			«FOR obj : TuSort.byModule(swModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			/* Hardware */
+			«FOR obj : TuSort.byModule(hwModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			/* OS */
+			«FOR obj : TuSort.byModule(osModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			/* Mapping */
+			«FOR obj : TuSort.byModule(mappingModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			/* Event */
+			«FOR obj : TuSort.byModule(eventModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			/* Stimuli */
+			«FOR obj : TuSort.byModule(stimuliModelTransformer.cache.values)»
+			«obj.call»;
+			«ENDFOR»
+			
+			«val tracerProperty = super.getProperty("tracer", "BtfTracer")»
+			auto tracer = std::make_shared<«tracerProperty»>();
+			TraceManager::setTracer(tracer);
+			
+		//static code ----------------------
+			sc_core::sc_trace_file *tf = sc_core::sc_create_vcd_trace_file("trace");
+			
+			//trace processing units and memories -----
+			«FOR tu: processingUnitTransformer.cache.values»
+				sc_trace(tf, &*«tu.call»(), "«tu.module.replaceAll("/", "_")»");
+			«ENDFOR»
+			«FOR tu: memoryTransformer.cache.values»
+				sc_trace(tf, &*«tu.call»(), "«tu.module.replaceAll("/", "_")»");
+			«ENDFOR»	
+			
+			//run simulation
+			try {
+				«val simDuration = super.getProperty("simDurationInMS", "1000")»
+				sc_core::sc_start(«simDuration», sc_core::SC_MS);
+			}
+			catch (sc_core::sc_report e) {
+				const char* file = e.get_file_name();
+				const int line = e.get_line_number();
+				const char* msg = e.get_msg();
+				VLOG(0) << msg << "\nin file: " << file << "\nline: " << line;
+				return -1;
+			}
+		
+			sc_core::sc_close_vcd_trace_file(tf);
+		
+			VLOG(0) << " done ";
+			return 0;
 		}
-		catch (sc_core::sc_report e) {
-			const char* file = e.get_file_name();
-			const int line = e.get_line_number();
-			const char* msg = e.get_msg();
-			VLOG(0) << msg << "\nin file: " << file << "\nline: " << line;
-			return -1;
-		}
+	'''
+
 	
-		sc_core::sc_close_vcd_trace_file(tf);
-	
-		VLOG(0) << " done ";
-		return 0;
-	}'''
 
 	def String getCMake() '''
 		include_directories(${PROJECT_SOURCE_DIR})
+		
+		add_executable («getProperty(PropertyKeys.PROJECT_NAME)»
+			"${PROJECT_SOURCE_DIR}/«getModuleName()».cpp"
+			 )
+
+		target_link_libraries(«getProperty(PropertyKeys.PROJECT_NAME)» app4mc.sim_lib)
+		target_include_directories(«getProperty(PropertyKeys.PROJECT_NAME)» PUBLIC app4mc.sim_lib)
+		
 		add_subdirectory ("./hwModel")
 		add_subdirectory ("./swModel")
 		add_subdirectory ("./mappingModel") 
@@ -185,17 +217,17 @@
 		add_subdirectory ("./stimuliModel")
 		add_subdirectory ("./osModel")
 		
-		add_executable («getProperty(PropertyKeys.PROJECT_NAME)» 
-			"${PROJECT_SOURCE_DIR}/«getModuleName()».cpp" 
-			 )
-			 	
-		target_link_libraries(«getProperty(PropertyKeys.PROJECT_NAME)» app4mc.sim_lib eventModel_lib stimuliModel_lib swModel_lib hwModel_lib mappingModel_lib osModel_lib)
-		target_include_directories(«getProperty(PropertyKeys.PROJECT_NAME)» PUBLIC app4mc.sim_lib  eventModel_lib stimuliModel_lib swModel_lib hwModel_lib mappingModel_lib osModel_lib)
+		«IF Integer.parseInt(super.getProperty("CmakeUnityBuildTUPerCore","0")) > 0»
+		#set the unity-batch-size to a Processorcount dependend value, for more efficient compiling
+		if(COMMAND calc_unity_batch_size)
+			calc_unity_batch_size(«getProperty(PropertyKeys.PROJECT_NAME)» «super.getProperty("CmakeUnityBuildTUPerCore")»)
+		endif()
+		«ENDIF»
 		
 		add_custom_target(model_execution 
-		                COMMAND «getProperty(PropertyKeys.PROJECT_NAME)»
-		                WORKING_DIRECTORY "${MODEL_WORKING_DIR}"
-				  )
+                COMMAND «getProperty(PropertyKeys.PROJECT_NAME)»
+                WORKING_DIRECTORY "${MODEL_WORKING_DIR}"
+		  )
 	'''
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/event/EventModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/event/EventModelTransformer.xtend
index 78f93c0..832e7c8 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/event/EventModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/event/EventModelTransformer.xtend
@@ -24,6 +24,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
 import org.eclipse.app4mc.transformation.util.OutputBuffer
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 
 @Singleton
 class EventModelTransformer extends BaseTransformer {
@@ -46,18 +47,15 @@
 		return "init_eventModel()"
 	}
 
-	private def getLibName() {
-		return "eventModel_lib"
-	}
-
 	def create new TranslationUnit(
 		getModuleName(),
 		getFunctionDef()		
-	) transform(EventModel eventModel) {
-		// start transformation @ task level, 
-		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph) 
-		eventModel.events.forEach[eventsDispatcher.transform(it)]
-
+	) transform(EventModel[] eventModels) {
+		eventModels.forEach[eventModel |{
+			// start transformation @ task level, 
+			// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph) 
+			eventModel.events.forEach[eventsDispatcher.transform(it)]
+		}]
 		outputBuffer.appendTo("INC", it.module, toH())
 		outputBuffer.appendTo("SRC", it.module, toCpp())
 		outputBuffer.appendTo("OTHER", getModulePath() + "/CMakeLists.txt", getCMake(it.module));
@@ -92,19 +90,19 @@
 
 
 	def String getCMake(String thisModule) '''	
-		# CMakeList.txt: CMake project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
-		
-		# Add a source to the project executable
-		add_library («getLibName()» OBJECT 
+		# CMakeList.txt: CMake project for EventModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+						
+				
+		# Add sources of EventModel
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 			«FOR obj : TuSort.byModule(eventsDispatcher.getCache(typeof(ChannelEvent)).values)»
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
 			
-			"${PROJECT_SOURCE_DIR}/«thisModule».cpp"	)
-		target_link_libraries(«getLibName()» app4mc.sim_lib  easyloggingpp)
+			"${PROJECT_SOURCE_DIR}/«thisModule».cpp")
 	'''
 
+	def getCache(){
+		return this._createCache_transform
+	}
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ConnectionHandlerTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ConnectionHandlerTransformer.xtend
index fbbbe38..c6ede8d 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ConnectionHandlerTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ConnectionHandlerTransformer.xtend
@@ -69,7 +69,7 @@
 				«setPortsAndConnections(connectionHandler)»
 				//frequency domain
 				«IF (connectionHandler.frequencyDomain !== null)»
-					«name»->clock_period= *«frequencyDomainTransformer.transform(connectionHandler.frequencyDomain).call»;
+					«name»->clock_period= «frequencyDomainTransformer.transform(connectionHandler.frequencyDomain).call»;
 				«ENDIF»
 			}
 			return «name»;
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/FrequencyDomainTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/FrequencyDomainTransformer.xtend
index 7f48325..8281b6c 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/FrequencyDomainTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/FrequencyDomainTransformer.xtend
@@ -48,20 +48,15 @@
 
 	def String toH(FrequencyDomain frequencyDomain) '''
 		#include <systemc>
-		sc_core::sc_time* «getCall(frequencyDomain)»;
+		sc_core::sc_time «getCall(frequencyDomain)»;
 		
 	'''
 
 	def String toCpp(FrequencyDomain frequencyDomain) '''
 		#include "«getModulePath(frequencyDomain)».h"
 		
-		sc_core::sc_time* «getName(frequencyDomain)» = nullptr;
-		
-		sc_core::sc_time* «getCall(frequencyDomain)» {
-			if («getName(frequencyDomain)» == nullptr){
-				«getName(frequencyDomain)» = new sc_core::sc_time(«getPeriodInPS(frequencyDomain.defaultValue)», sc_core::SC_PS);
-			}
-			return «getName(frequencyDomain)»;
+		sc_core::sc_time «getCall(frequencyDomain)» {
+			return sc_core::sc_time(«getPeriodInPS(frequencyDomain.defaultValue)», sc_core::SC_PS);
 		}
 	'''
 
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwAccessElementTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwAccessElementTransformer.xtend
index f078475..71ad322 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwAccessElementTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwAccessElementTransformer.xtend
@@ -61,7 +61,7 @@
 		#include "Common.h"
 		#include "HardwareModel.h"
 		
-		HwAccessElement* «getCall(hwAccessElement)»();
+		HwAccessElement «getCall(hwAccessElement)»();
 	'''
 
 	private def String toCpp(HwAccessElement hwAccessElement) '''
@@ -75,37 +75,33 @@
 		#include "«hwModuleTransformer.transform(hwAccessElement.source).module».h"
 		#include "«hwModuleTransformer.transform(hwAccessElement.destination).module».h"
 		
-		«val name = getName(hwAccessElement)»
-		HwAccessElement* «name» = nullptr;
-		
 		/* HwAccessWlement not contained in structure, eg. in flat hardware model */
-		HwAccessElement* «getCall(hwAccessElement)»(){
-			if («name»==NULL){
-				«name» =  new HwAccessElement();
-				«IF hwAccessElement.readLatency !== null »
-					«name»->setReadLatency(«IDiscreteValueDeviationTransformer.getDeviation(hwAccessElement.readLatency)»);
-				«ENDIF»
-				«IF hwAccessElement.writeLatency !== null »
-					«name»->setWriteLatency(«IDiscreteValueDeviationTransformer.getDeviation(hwAccessElement.writeLatency)»);
-				«ENDIF»
-				«IF hwAccessElement.dataRate !== null »
-					«name»->setDataRate(«DataRateUtil.transform(hwAccessElement.dataRate)»);
-				«ENDIF»
+		HwAccessElement «getCall(hwAccessElement)»(){
+			//utilize RTO here
+			HwAccessElement returnVal;
+			«IF hwAccessElement.readLatency !== null »
+				 returnVal.setReadLatency(«IDiscreteValueDeviationTransformer.getDeviation(hwAccessElement.readLatency)»);
+			«ENDIF»
+			«IF hwAccessElement.writeLatency !== null »
+				returnVal.setWriteLatency(«IDiscreteValueDeviationTransformer.getDeviation(hwAccessElement.writeLatency)»);
+			«ENDIF»
+			«IF hwAccessElement.dataRate !== null »
+				returnVal.setDataRate(«DataRateUtil.transform(hwAccessElement.dataRate)»);
+			«ENDIF»
+			
+			
+			«IF hwAccessElement.accessPath !== null»
+				«val calls = getAccessElementCalls(hwAccessElement)»
+				returnVal.path.elements.assign({«FOR call : calls» «call» «ENDFOR»});
+			«ENDIF»
+			
+			//set source
+			returnVal.source = «hwModuleTransformer.transform(hwAccessElement.source).call»();
+			
+			//set destination
+			returnVal.dest = «hwModuleTransformer.transform(hwAccessElement.destination).call»();
 				
-				
-				«IF hwAccessElement.accessPath !== null»
-					«val calls = getAccessElementCalls(hwAccessElement)»
-					«name»->path.elements.assign({«FOR call : calls» «call» «ENDFOR»});
-				«ENDIF»
-				
-				//set source
-				«name»->source = «hwModuleTransformer.transform(hwAccessElement.source).call»();
-				
-				//set destination
-				«name»->dest = «hwModuleTransformer.transform(hwAccessElement.destination).call»();
-				
-			}
-			return «name»;
+			return returnVal;
 		}
 	'''
 
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwModelTransformer.xtend
index d5d92c7..9a61f84 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/HwModelTransformer.xtend
@@ -19,10 +19,11 @@
 import com.google.inject.Singleton
 import org.eclipse.app4mc.amalthea.model.HWModel
 import org.eclipse.app4mc.amlt2systemc.m2t.module.BaseTransformer
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.AmaltheaTransformer
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
-import org.eclipse.app4mc.transformation.util.OutputBuffer
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
+import org.eclipse.app4mc.transformation.util.OutputBuffer
 
 @Singleton
 class HwModelTransformer extends BaseTransformer {
@@ -39,10 +40,6 @@
 		return "init_hwModel()"
 	}
 
-	private def getLibName() {
-		return "hwModel_lib"
-	}
-
 	@Inject OutputBuffer outputBuffer
 	@Inject HwStructureTransformer hwStructureTransformer
 	@Inject FrequencyDomainTransformer frequencyDomainTransformer
@@ -57,98 +54,99 @@
 	def create new TranslationUnit(
 		getModuleName(),
 		getFunctionDef()		
-	) transform(HWModel hwModel) {
+	) transform(HWModel[] hwModels) {
 
+		hwModels.forEach[hwModel | {
+			hwModel.structures.forEach[structure |{
+				hwStructureTransformer.transform(structure)
+			}]
+		}]
 		// start transformation @ task level, 
 		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph) 
-		outputBuffer.appendTo("INC", it.module, toH(hwModel))
-		outputBuffer.appendTo("SRC", it.module, toCpp(hwModel))
+		outputBuffer.appendTo("INC", it.module, toH())
+		outputBuffer.appendTo("SRC", it.module, toCpp())
 		val buf = getCMake(it.module);
 		outputBuffer.appendTo("OTHER", getModulePath() + "/CMakeLists.txt", buf);
 	}
 
-	private def String toH(HWModel hwModel) '''
+	private def String toH() '''
 		#include <systemc>
 		#include <memory>
 		#include "Common.h"
 		#include "HardwareModel.h"
 		//include model elements
-		«FOR structure : hwModel.structures»
-			#include "«hwStructureTransformer.transform(structure).module».h"
+		«FOR structure :  TuSort.byModule(hwStructureTransformer.cache.values)»
+			#include "«structure.module».h"
 		«ENDFOR»
+			
 		void «getFunctionDef()»;
 		
 	'''
 
-	private def String toCpp(HWModel hwModel) '''
+	private def String toCpp() '''
 		#include "«getModuleName».h"	
 		
 		/* Hardware */
 		void «getFunctionDef()»{
-			«FOR structure : hwModel.structures»
-				«hwStructureTransformer.transform(structure).call»();
+			«FOR structure :  TuSort.byModule(hwStructureTransformer.cache.values)»				
+				«structure.call»();
 			«ENDFOR»
 		}
 	'''
 
 	def String getCMake(String thisModule) '''	
-		# CMakeList.txt: CMake project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
+		# CMakeList.txt: CMake project for HwModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+				
 		
-		
-		# Add a source to the project executable
-		add_library («getLibName()» OBJECT
+		# Add sources of HwModel
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 		
 		#features 
-			«FOR obj : TuSort.byModule(hwFeatureTransformer.cache.values)»
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
+		«FOR obj : TuSort.byModule(hwFeatureTransformer.cache.values)»
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
 		
 		#definitions
-			«FOR obj : TuSort.byModule(processingUnitDefinitionTransformer.cache.values)» 
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
+		«FOR obj : TuSort.byModule(processingUnitDefinitionTransformer.cache.values)» 
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
 		
 		#domains	
-			«FOR obj : TuSort.byModule(frequencyDomainTransformer.cache.values)» 
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
+		«FOR obj : TuSort.byModule(frequencyDomainTransformer.cache.values)» 
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
+		
 		#hw structure
-			«FOR obj : TuSort.byModule(hwStructureTransformer.cache.values)»
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
-			
-			# modules
-			«FOR obj : TuSort.byModule(memoryTransformer.cache.values)»
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
-			«FOR obj : TuSort.byModule(processingUnitTransformer.cache.values)»
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
-			«FOR obj : TuSort.byModule(connectionHandlerTransformer.cache.values)»
-				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
-			«ENDFOR»
-			
+		«FOR obj : TuSort.byModule(hwStructureTransformer.cache.values)»
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
+		
+		# modules
+		«FOR obj : TuSort.byModule(memoryTransformer.cache.values)»
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(processingUnitTransformer.cache.values)»
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
+		«FOR obj : TuSort.byModule(connectionHandlerTransformer.cache.values)»
+			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
+		«ENDFOR»
+		
 		#connections
 		«FOR obj : TuSort.byModule(hwConnectionTransformer.cache.values)»
 			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 		«ENDFOR»
-			
+		
 		#HW access elements
 		«FOR obj : TuSort.byModule(hwAccessElementTransformer.cache.values)»
 			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 		«ENDFOR»
-			"${PROJECT_SOURCE_DIR}/«thisModule».cpp")
-			
-			
-		#target_include_directories(RUNNABLES_LIB
-		#    PUBLIC 
-		#			${CMAKE_CURRENT_LIST_DIR}/definitions/_inc
-		#		    ${CMAKE_CURRENT_LIST_DIR}/../labels/_inc
-			
-		target_link_libraries(«getLibName()» app4mc.sim_lib effolkronium_random easyloggingpp systemc)
+		
+		"${PROJECT_SOURCE_DIR}/«thisModule».cpp")
+		
 	'''
-
+	
+	def getCache(){
+		return this._createCache_transform
+	}
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/MemoryTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/MemoryTransformer.xtend
index 61485cd..cf27bb8 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/MemoryTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/MemoryTransformer.xtend
@@ -65,7 +65,7 @@
 					«name» = «getConstructor(module)»<Memory>("«name»", 0);
 				«ENDIF»
 				«IF (module.frequencyDomain !== null)»
-					«name»->clock_period= *«frequencyDomainTransformer.transform(module.frequencyDomain).call»;
+					«name»->clock_period= «frequencyDomainTransformer.transform(module.frequencyDomain).call»;
 				«ENDIF»
 				«setPortsAndConnections(module)»	
 				«setAccessLatency(module)»
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ProcessingUnitTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ProcessingUnitTransformer.xtend
index f454b7c..564f087 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ProcessingUnitTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/hw/ProcessingUnitTransformer.xtend
@@ -67,13 +67,13 @@
 					«getName(pu)» = «getConstructor(pu)»<ProcessingUnit>("«name»", NULL);
 				«ENDIF»
 				«IF (pu.frequencyDomain !== null)»
-					«getName(pu)»->clock_period= *«frequencyDomainTransformer.transform(pu.frequencyDomain).call»;
+					«getName(pu)»->clock_period= «frequencyDomainTransformer.transform(pu.frequencyDomain).call»;
 				«ENDIF»
 				//ports & connections
 				«setPortsAndConnections(pu)»
 				//access elements
 				«FOR accessElement : pu.accessElements»
-					«getName(pu)»->addHWAccessElement(*«hwAccessElementTransformer.transform(accessElement).call»());
+					«getName(pu)»->addHWAccessElement(«hwAccessElementTransformer.transform(accessElement).call»());
 				«ENDFOR»
 			}
 			return «name»;
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/mapping/MappingModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/mapping/MappingModelTransformer.xtend
index 7c70297..cc4a4d7 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/mapping/MappingModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/mapping/MappingModelTransformer.xtend
@@ -24,6 +24,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
 import org.eclipse.app4mc.transformation.util.OutputBuffer
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 
 @Singleton
 class MappingModelTransformer extends BaseTransformer {
@@ -45,22 +46,19 @@
 		return "init_mappingModel()"
 	}
 
-	private def getLibName() {
-		return "mappingModel_lib"
-	}
-
 	def create new TranslationUnit(
 		getModuleName(),
 		getFunctionDef()		
-	) transform(MappingModel mappingModel) {
-
-		// start transformation @ task level, 
-		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph)
-		mappingModel.memoryMapping.forEach[memMapping|memoryMappingTransformer.transform(memMapping)]
-		mappingModel.taskAllocation.forEach[taskAllocation|taskAllocationTransformer.transform(taskAllocation)]
-		mappingModel.schedulerAllocation.forEach [ schedulerAllocation |
-			schedulerAllocationTransformer.transform(schedulerAllocation)
-		]
+	) transform(MappingModel[] mappingModels) {
+		mappingModels.forEach[mappingModel | {	
+			// start transformation @ task level, 
+			// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph)
+			mappingModel.memoryMapping.forEach[memMapping|memoryMappingTransformer.transform(memMapping)]
+			mappingModel.taskAllocation.forEach[taskAllocation|taskAllocationTransformer.transform(taskAllocation)]
+			mappingModel.schedulerAllocation.forEach [ schedulerAllocation |
+				schedulerAllocationTransformer.transform(schedulerAllocation)
+			]
+		}]
 
 		outputBuffer.appendTo("INC", it.module, toH())
 		outputBuffer.appendTo("SRC", it.module, toCpp())
@@ -85,8 +83,7 @@
 		«FOR obj : TuSort.byModule(schedulerAllocationTransformer.cache.values)»
 			#include "«(obj as TranslationUnit).module».h"
 		«ENDFOR»	
-		void «getFunctionDef()»;
-		
+		void «getFunctionDef()»;		
 	'''
 
 	private def String toCpp() '''
@@ -106,13 +103,11 @@
 	'''
 
 	def String getCMake(String thisModule) '''	
-		# CMakeList.txt: CMake project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
-			
-		# Add a source to the project executable
-		add_library («getLibName()» OBJECT 
+		# CMakeList.txt: CMake project for MappingModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+						
+				
+		# Add sources of MappingModel
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 		«val uniqueMemoryMappings = new HashSet<String>()»
 		«memoryMappingTransformer.cache.values.forEach[uniqueMemoryMappings.add(it.module)]»
 		«FOR module : uniqueMemoryMappings»
@@ -127,7 +122,9 @@
 			"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 		«ENDFOR»
 		"${PROJECT_SOURCE_DIR}/«thisModule».cpp")
-		
-		target_link_libraries(«getLibName()»  app4mc.sim_lib effolkronium_random easyloggingpp systemc)
 	'''
+	
+	def getCache(){
+		return this._createCache_transform
+	}
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/os/OsModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/os/OsModelTransformer.xtend
index 1b182e9..6c718cf 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/os/OsModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/os/OsModelTransformer.xtend
@@ -23,6 +23,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
 import org.eclipse.app4mc.transformation.util.OutputBuffer
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 
 @Singleton
 class OsModelTransformer extends BaseTransformer {
@@ -50,15 +51,21 @@
 		return "osModel_lib"
 	}
 
-	def create new TranslationUnit(getModuleName(), getFunctionDef()) transform(OSModel osModel) {
+	def create new TranslationUnit(getModuleName(), getFunctionDef()) 
+	transform(OSModel[] osModels) {
+		osModels.forEach[osModel |{
+			osModel.operatingSystems.forEach[os | 
+				operatingSystemTransformer.transform(os)
+			]
+		}]
 		// start transformation @ task level, 
 		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph)
-		outputBuffer.appendTo("INC", it.module, toH(osModel))
-		outputBuffer.appendTo("SRC", it.module, toCpp(osModel))
+		outputBuffer.appendTo("INC", it.module, toH())
+		outputBuffer.appendTo("SRC", it.module, toCpp())
 		outputBuffer.appendTo("OTHER", modulePath + "/" + "CMakeLists.txt", getCMake())
 	}
 
-	private def String toH(OSModel osModel) '''
+	private def String toH() '''
 		#include <systemc>
 		#include <memory>
 		#include "Common.h"
@@ -68,39 +75,39 @@
 		
 	'''
 
-	private def String toCpp(OSModel osModel) '''
+	private def String toCpp() '''
 			#include "«getModuleName».h"	
 			
-			«FOR os : osModel.operatingSystems»
-			#include "«operatingSystemTransformer.transform(os).module».h"
+			«FOR os : TuSort.byModule(operatingSystemTransformer.cache.values)»
+			#include "«os.module».h"
 			«ENDFOR»
 		
 			
 			/* OS */
 			void «getFunctionDef()»{
-				«FOR os : osModel.operatingSystems»
-					«operatingSystemTransformer.transform(os).call»();
+				«FOR os : TuSort.byModule(operatingSystemTransformer.cache.values)»
+					«os.call»();
 				«ENDFOR»
 			}
 	'''
 
 	def String getCMake() '''	
-		# CMakeList.txt: CMake project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
-		
-		# Add a source to the project executable
-		add_library («getLibName()» OBJECT 
+		# CMakeList.txt: CMake project for OsModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+								
+						
+		# Add sources of OsModel
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 			«FOR obj : TuSort.byModule(taskSchedulerTransformer.cache.values)»
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
 			«FOR obj : TuSort.byModule(operatingSystemTransformer.cache.values)»
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
-			"${PROJECT_SOURCE_DIR}/«moduleName».cpp"
-		)
-		target_link_libraries(«getLibName()» app4mc.sim_lib effolkronium_random easyloggingpp)
+			"${PROJECT_SOURCE_DIR}/«moduleName».cpp")
 	'''
+	
+	def getCache(){
+		return this._createCache_transform
+	}
 
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/stimuli/StimuliModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/stimuli/StimuliModelTransformer.xtend
index 743e27d..c89ea4f 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/stimuli/StimuliModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/stimuli/StimuliModelTransformer.xtend
@@ -12,6 +12,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
 import org.eclipse.app4mc.transformation.util.OutputBuffer
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 
 @Singleton
 class StimuliModelTransformer extends BaseTransformer {
@@ -31,25 +32,18 @@
 		return "init_stimuliModel()"
 	}
 
-	private def getLibName() {
-		return "stimuliModel_lib"
-	}
-
 	def create new TranslationUnit(
 		getModuleName(),
 		getFunctionDef()
-	) transform(StimuliModel stimuliModel) {
-
-
-		// start transformation @ task level, 
-		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph) 
-		stimuliModel.stimuli.forEach[stimulusDispatcher.transform(it)]
-
+	) transform(StimuliModel[] stimuliModels) {
+		stimuliModels.forEach[stimuliModel|{
+			stimuliModel.stimuli.forEach[stimulusDispatcher.transform(it)]
+		}]
 		outputBuffer.appendTo("INC", it.module, toH())
 		outputBuffer.appendTo("SRC", it.module, toCpp())
 		outputBuffer.appendTo("OTHER", getModulePath() + "/CMakeLists.txt", getCMake());
 	}
-
+	
 	private def String toH() '''
 		#include <systemc>
 		#include <memory>
@@ -94,12 +88,11 @@
 	'''
 
 	def String getCMake() '''	
-		# CMakeList.txt: CMake-Project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
-		
-		add_library («getLibName()» OBJECT 
+		# CMakeList.txt: CMake project for StimuliModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+								
+						
+		# Add sources of Stimuli
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 			«FOR obj : TuSort.byModule(stimulusDispatcher.getCache(typeof(PeriodicStimulus)).values)»
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
@@ -113,9 +106,10 @@
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
 			
-			"${PROJECT_SOURCE_DIR}/«getModuleName()».cpp"
-		
-			)
-		target_link_libraries(«getLibName()» app4mc.sim_lib effolkronium_random easyloggingpp)
+			"${PROJECT_SOURCE_DIR}/«getModuleName()».cpp")
 	'''
+	
+	def getCache(){
+		return this._createCache_transform
+	}
 }
diff --git a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/sw/SWModelTransformer.xtend b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/sw/SWModelTransformer.xtend
index e27f385..7013dd8 100644
--- a/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/sw/SWModelTransformer.xtend
+++ b/simulation_generator/app4mc.sim/plugins/org.eclipse.app4mc.amlt2systemc.m2t/src/org/eclipse/app4mc/amlt2systemc/m2t/transformers/sw/SWModelTransformer.xtend
@@ -23,6 +23,7 @@
 import org.eclipse.app4mc.amlt2systemc.m2t.transformers.TranslationUnit
 import org.eclipse.app4mc.transformation.util.OutputBuffer
 import org.eclipse.app4mc.amlt2systemc.m2t.utils.TuSort
+import org.eclipse.app4mc.amlt2systemc.m2t.module.PropertyKeys
 
 @Singleton
 class SWModelTransformer extends BaseTransformer {
@@ -47,18 +48,17 @@
 		return "init_swModel()"
 	}
 
-	private def getLibName() {
-		return "swModel_lib"
-	}
-
 	def create new TranslationUnit(
 		getModuleName(),
 		getFunctionDef()		
-	) transform(SWModel swModel) {
+	) transform(SWModel[] swModels) {
+		
+		swModels.forEach[swModel | {
 		// start transformation @ task level, 
 		// Note: generate referenced object (e.g. runnables) when referenced (eg. in a runnable call within the call graph) 
-		swModel.tasks.forEach[taskTransformer.transform(it)]
-
+			swModel.tasks.forEach[taskTransformer.transform(it)]
+		}]
+		
 		outputBuffer.appendTo("INC", it.module, toH())
 		outputBuffer.appendTo("SRC", it.module, toCpp())
 		outputBuffer.appendTo("OTHER", getModulePath() + "/CMakeLists.txt", getCMake(it.module));
@@ -84,13 +84,11 @@
 	'''
 
 	def String getCMake(String thisModule) '''	
-		# CMakeList.txt: CMake project for "«getLibName()»".
-		# Include the source and define project specific logic here.
-		#
-		cmake_minimum_required (VERSION 3.12)
-		
-		# Add a source to the project executable
-		add_library («getLibName()» OBJECT 
+		# CMakeList.txt: CMake project for SoftwareModel of "«getProperty(PropertyKeys.PROJECT_NAME)»".
+								
+				
+		# Add sources of SoftwareModel
+		target_sources («getProperty(PropertyKeys.PROJECT_NAME)»  PRIVATE
 			«FOR obj : TuSort.byModule(modeTransformer.cache.values)»
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»			
@@ -115,8 +113,11 @@
 				"${PROJECT_SOURCE_DIR}/«(obj as TranslationUnit).module».cpp" 
 			«ENDFOR»
 
-			"${PROJECT_SOURCE_DIR}/«thisModule».cpp"	)
-		target_link_libraries(«getLibName()» app4mc.sim_lib effolkronium_random easyloggingpp)
+			"${PROJECT_SOURCE_DIR}/«thisModule».cpp")
 	'''
+	
+	def getCache(){
+		return this._createCache_transform
+	}
 
 }
diff --git a/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/Amlt2SystemC.product b/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/Amlt2SystemC.product
index dd76b81..d51f512 100644
--- a/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/Amlt2SystemC.product
+++ b/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/Amlt2SystemC.product
@@ -7,9 +7,9 @@
    </configIni>
 
    <launcherArgs>
-      <programArgs>--properties ${workspace_loc:org.eclipse.app4mc.amlt2systemc.product}/input/democarWithFixedPriorityScheduler/democarWithFixedPriorityScheduler.properties  --workingDirectory ${workspace_loc:org.eclipse.app4mc.amlt2systemc.product}
+      <programArgs>--properties ${workspace_loc:org.eclipse.app4mc.amlt2systemc.product}/input/democarWithFixedPriorityScheduler/democarWithFixedPriorityScheduler.properties  --workingDirectory ${workspace_loc:org.eclipse.app4mc.amlt2systemc.product} -console
       </programArgs>
-      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dlog4j.configuration=headless_log4j.xml -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
+      <vmArgs>-Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dorg.eclipse.emf.ecore.EPackage.Registry.INSTANCE=org.eclipse.emf.ecore.impl.EPackageRegistryImpl
       </vmArgs>
       <vmArgsMac>-XstartOnFirstThread -Dorg.eclipse.swt.internal.carbon.smallFonts
       </vmArgsMac>
@@ -38,12 +38,13 @@
       <plugin id="org.apache.felix.gogo.runtime"/>
       <plugin id="org.apache.felix.gogo.shell"/>
       <plugin id="org.apache.felix.scr"/>
-      <plugin id="org.apache.log4j"/>
       <plugin id="org.eclipse.app4mc.amalthea.model"/>
       <plugin id="org.eclipse.app4mc.amlt2systemc.m2t"/>
       <plugin id="org.eclipse.app4mc.transformation"/>
-      <plugin id="org.eclipse.app4mc.transformation.log4j.configuration" fragment="true"/>
       <plugin id="org.eclipse.app4mc.transformation.starter"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console"/>
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file"/>
       <plugin id="org.eclipse.emf.common"/>
       <plugin id="org.eclipse.emf.ecore"/>
       <plugin id="org.eclipse.emf.ecore.xcore.lib"/>
@@ -57,14 +58,14 @@
       <plugin id="org.eclipse.osgi.util"/>
       <plugin id="org.eclipse.xtext.xbase.lib"/>
       <plugin id="org.slf4j.api"/>
-      <plugin id="org.slf4j.impl.log4j12" fragment="true"/>
    </plugins>
 
    <configurations>
       <plugin id="org.apache.felix.scr" autoStart="true" startLevel="2" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.console" autoStart="true" startLevel="3" />
+      <plugin id="org.eclipse.app4mc.util.sessionlog.file" autoStart="true" startLevel="3" />
       <plugin id="org.eclipse.equinox.cm" autoStart="true" startLevel="2" />
       <plugin id="org.eclipse.equinox.event" autoStart="true" startLevel="2" />
-      <property name="log4j.configuration" value="headless_log4j.xml" />
    </configurations>
 
    <preferencesInfo>
diff --git a/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/input/waters/WATERS-2017_FMTV-Model.amxmi b/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/input/waters/WATERS-2017_FMTV-Model.amxmi
new file mode 100644
index 0000000..b8bc4e7
--- /dev/null
+++ b/simulation_generator/app4mc.sim/releng/org.eclipse.app4mc.amlt2systemc.product/input/waters/WATERS-2017_FMTV-Model.amxmi
@@ -0,0 +1,174674 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<am:Amalthea xmlns:am="http://app4mc.eclipse.org/amalthea/1.0.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmi:version="2.0">
+  <customProperties key="origin">
+    <value xsi:type="am:StringObject" value="https://waters2017.inria.fr/challenge/" />
+  </customProperties>
+  <swModel>
+    <tasks xmi:id="Angle_Sync?type=Task" name="Angle_Sync" stimuli="periodic_6660us?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="14" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Angle_Sync" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_43?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_44?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_45?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_46?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_47?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_48?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_49?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_50?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_51?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_52?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_53?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_54?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_55?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_56?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_57?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_58?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_59?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_60?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_61?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_62?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_63?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_64?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_65?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_66?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_67?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_68?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_69?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_70?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_71?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_72?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_73?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_74?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_75?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_76?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_77?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_78?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_79?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_80?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_81?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_82?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_83?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_84?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_85?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_86?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_87?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_88?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_89?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_90?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_91?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_92?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_93?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_94?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_95?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_96?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_97?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_98?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_99?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_100?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_101?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_102?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_103?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_104?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_105?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_106?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_107?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_108?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_109?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_110?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_111?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_112?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_113?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_114?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_115?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_116?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_117?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_118?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_119?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_120?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_121?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_122?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_123?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_124?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_125?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_126?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_127?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_128?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_129?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_130?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_131?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_132?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_133?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_134?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_135?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_136?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_137?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_138?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_139?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_140?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_141?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_142?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_143?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_144?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_145?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_6660us_146?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_1?type=Task" name="ISR_1" stimuli="sporadic_9500us_10500us_ISR_1?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="32" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_1" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_7?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_10?type=Task" name="ISR_10" stimuli="sporadic_700us_800us_ISR_10?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="40" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_10" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_700us_800us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_700us_800us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_700us_800us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_700us_800us_3?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_11?type=Task" name="ISR_11" stimuli="sporadic_5000us_5100us_ISR_11?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="34" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_11" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_5000us_5100us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_5000us_5100us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_5000us_5100us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_5000us_5100us_3?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_2?type=Task" name="ISR_2" stimuli="sporadic_9500us_10500us_ISR_2?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="31" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_2" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_6?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_3?type=Task" name="ISR_3" stimuli="sporadic_9500us_10500us_ISR_3?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="30" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_3" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_9500us_10500us_8?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_4?type=Task" name="ISR_4" stimuli="sporadic_1500us_1700us_ISR_4?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="37" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_4" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1500us_1700us_7?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_5?type=Task" name="ISR_5" stimuli="sporadic_900us_1000us_ISR_5?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="39" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_5" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_900us_1000us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_900us_1000us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_900us_1000us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_900us_1000us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_900us_1000us_4?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_6?type=Task" name="ISR_6" stimuli="sporadic_1100us_1200us_ISR_6?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="38" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_6" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1100us_1200us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1100us_1200us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1100us_1200us_2?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_7?type=Task" name="ISR_7" stimuli="sporadic_4900us_5050us_ISR_7?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="35" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_7" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_4900us_5050us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_4900us_5050us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_4900us_5050us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_4900us_5050us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_4900us_5050us_4?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_8?type=Task" name="ISR_8" stimuli="sporadic_1700us_1800us_ISR_8?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="36" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_8" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_1700us_1800us_6?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="ISR_9?type=Task" name="ISR_9" stimuli="sporadic_6000us_6100us_ISR_9?type=RelativePeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="33" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_ISR_9" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_6000us_6100us_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_sporadic_6000us_6100us_1?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_1000ms?type=Task" name="Task_1000ms" stimuli="periodic_1000ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="5" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_1000ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1000ms_43?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_100ms?type=Task" name="Task_100ms" stimuli="periodic_100ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="7" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_100ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_43?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_44?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_45?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_46?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_47?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_48?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_49?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_50?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_51?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_52?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_53?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_54?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_55?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_56?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_57?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_58?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_59?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_60?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_61?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_62?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_63?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_64?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_65?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_66?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_67?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_68?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_69?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_70?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_71?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_72?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_73?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_74?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_75?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_76?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_77?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_78?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_79?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_80?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_81?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_82?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_83?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_84?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_85?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_86?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_87?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_88?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_89?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_90?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_91?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_92?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_93?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_94?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_95?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_96?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_97?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_98?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_99?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_100?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_101?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_102?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_103?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_104?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_105?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_106?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_107?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_108?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_109?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_110?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_111?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_112?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_113?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_114?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_115?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_116?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_117?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_118?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_119?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_120?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_121?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_122?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_123?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_124?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_125?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_126?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_127?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_128?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_129?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_130?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_131?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_132?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_133?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_134?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_135?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_136?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_137?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_138?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_139?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_140?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_141?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_142?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_143?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_144?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_145?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_146?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_147?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_148?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_149?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_150?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_151?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_152?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_153?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_154?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_155?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_156?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_157?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_158?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_159?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_160?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_161?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_162?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_163?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_164?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_165?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_166?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_167?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_168?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_169?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_170?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_171?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_172?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_173?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_174?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_175?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_176?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_177?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_178?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_179?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_180?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_181?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_182?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_183?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_184?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_185?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_186?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_187?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_188?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_189?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_190?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_191?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_192?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_193?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_194?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_195?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_196?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_197?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_198?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_199?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_200?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_201?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_202?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_203?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_204?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_205?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_206?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_207?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_208?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_209?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_210?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_211?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_212?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_213?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_214?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_215?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_216?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_217?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_218?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_219?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_220?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_221?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_222?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_223?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_224?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_225?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_226?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_227?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_228?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_229?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_230?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_231?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_232?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_233?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_234?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_235?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_236?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_237?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_238?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_239?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_240?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_241?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_242?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_243?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_244?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_245?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_100ms_246?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_10ms?type=Task" name="Task_10ms" stimuli="periodic_10ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="11" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_10ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_43?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_44?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_45?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_46?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_47?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_48?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_49?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_50?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_51?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_52?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_53?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_54?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_55?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_56?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_57?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_58?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_59?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_60?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_61?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_62?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_63?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_64?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_65?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_66?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_67?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_68?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_69?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_70?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_71?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_72?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_73?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_74?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_75?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_76?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_77?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_78?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_79?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_80?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_81?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_82?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_83?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_84?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_85?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_86?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_87?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_88?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_89?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_90?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_91?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_92?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_93?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_94?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_95?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_96?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_97?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_98?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_99?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_100?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_101?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_102?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_103?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_104?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_105?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_106?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_107?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_108?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_109?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_110?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_111?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_112?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_113?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_114?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_115?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_116?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_117?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_118?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_119?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_120?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_121?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_122?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_123?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_124?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_125?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_126?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_127?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_128?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_129?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_130?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_131?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_132?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_133?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_134?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_135?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_136?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_137?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_138?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_139?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_140?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_141?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_142?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_143?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_144?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_145?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_146?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_147?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_148?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_149?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_150?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_151?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_152?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_153?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_154?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_155?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_156?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_157?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_158?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_159?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_160?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_161?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_162?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_163?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_164?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_165?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_166?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_167?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_168?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_169?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_170?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_171?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_172?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_173?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_174?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_175?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_176?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_177?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_178?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_179?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_180?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_181?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_182?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_183?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_184?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_185?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_186?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_187?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_188?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_189?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_190?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_191?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_192?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_193?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_194?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_195?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_196?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_197?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_198?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_199?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_200?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_201?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_202?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_203?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_204?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_205?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_206?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_207?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_208?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_209?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_210?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_211?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_212?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_213?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_214?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_215?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_216?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_217?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_218?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_219?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_220?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_221?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_222?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_223?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_224?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_225?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_226?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_227?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_228?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_229?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_230?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_231?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_232?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_233?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_234?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_235?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_236?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_237?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_238?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_239?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_240?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_241?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_242?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_243?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_244?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_245?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_246?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_247?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_248?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_249?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_250?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_251?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_252?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_253?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_254?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_255?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_256?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_257?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_258?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_259?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_260?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_261?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_262?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_263?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_264?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_265?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_266?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_267?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_268?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_269?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_270?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_271?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_272?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_273?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_274?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_275?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_276?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_277?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_278?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_279?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_280?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_281?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_282?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_283?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_284?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_285?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_286?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_287?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_288?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_289?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_290?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_291?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_292?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_293?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_294?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_295?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_296?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_297?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_298?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_299?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_300?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_301?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_302?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_10ms_303?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_1ms?type=Task" name="Task_1ms" stimuli="periodic_1ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="15" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_1ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_1ms_41?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_200ms?type=Task" name="Task_200ms" stimuli="periodic_200ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="6" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_200ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_200ms_14?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_20ms?type=Task" name="Task_20ms" stimuli="periodic_20ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="9" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_20ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_43?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_44?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_45?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_46?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_47?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_48?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_49?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_50?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_51?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_52?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_53?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_54?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_55?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_56?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_57?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_58?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_59?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_60?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_61?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_62?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_63?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_64?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_65?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_66?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_67?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_68?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_69?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_70?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_71?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_72?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_73?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_74?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_75?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_76?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_77?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_78?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_79?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_80?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_81?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_82?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_83?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_84?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_85?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_86?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_87?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_88?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_89?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_90?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_91?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_92?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_93?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_94?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_95?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_96?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_97?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_98?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_99?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_100?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_101?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_102?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_103?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_104?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_105?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_106?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_107?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_108?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_109?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_110?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_111?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_112?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_113?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_114?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_115?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_116?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_117?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_118?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_119?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_120?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_121?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_122?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_123?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_124?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_125?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_126?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_127?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_128?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_129?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_130?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_131?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_132?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_133?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_134?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_135?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_136?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_137?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_138?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_139?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_140?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_141?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_142?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_143?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_144?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_145?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_146?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_147?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_148?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_149?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_150?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_151?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_152?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_153?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_154?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_155?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_156?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_157?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_158?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_159?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_160?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_161?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_162?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_163?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_164?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_165?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_166?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_167?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_168?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_169?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_170?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_171?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_172?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_173?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_174?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_175?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_176?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_177?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_178?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_179?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_180?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_181?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_182?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_183?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_184?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_185?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_186?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_187?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_188?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_189?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_190?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_191?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_192?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_193?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_194?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_195?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_196?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_197?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_198?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_199?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_200?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_201?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_202?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_203?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_204?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_205?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_206?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_207?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_208?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_209?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_210?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_211?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_212?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_213?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_214?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_215?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_216?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_217?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_218?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_219?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_220?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_221?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_222?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_223?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_224?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_225?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_226?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_227?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_228?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_229?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_230?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_231?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_232?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_233?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_234?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_235?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_236?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_237?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_238?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_239?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_240?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_241?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_242?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_243?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_244?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_245?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_246?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_247?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_248?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_249?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_250?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_251?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_252?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_253?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_254?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_255?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_256?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_257?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_258?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_259?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_260?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_261?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_262?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_263?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_264?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_265?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_266?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_267?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_268?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_269?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_270?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_271?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_272?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_273?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_274?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_275?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_276?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_277?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_278?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_279?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_280?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_281?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_282?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_283?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_284?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_285?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_286?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_287?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_288?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_289?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_290?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_291?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_292?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_293?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_294?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_295?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_296?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_297?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_298?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_299?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_300?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_301?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_302?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_303?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_304?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_305?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_20ms_306?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_2ms?type=Task" name="Task_2ms" stimuli="periodic_2ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="13" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_2ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_2ms_27?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_50ms?type=Task" name="Task_50ms" stimuli="periodic_50ms?type=PeriodicStimulus" preemption="cooperative" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="8" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_50ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_22?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_23?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_24?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_25?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_26?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_27?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_28?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_29?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_30?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_31?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_32?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_33?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_34?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_35?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_36?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_37?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_38?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_39?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_40?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_41?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_42?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_43?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_44?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_50ms_45?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <tasks xmi:id="Task_5ms?type=Task" name="Task_5ms" stimuli="periodic_5ms?type=PeriodicStimulus" preemption="preemptive" multipleTaskActivationLimit="1">
+      <customProperties key="priority">
+        <value xsi:type="am:StringObject" value="12" />
+      </customProperties>
+      <activityGraph>
+        <items xsi:type="am:Group" name="CS_Task_5ms" ordered="true">
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_0?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_1?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_2?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_3?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_4?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_5?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_6?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_7?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_8?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_9?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_10?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_11?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_12?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_13?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_14?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_15?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_16?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_17?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_18?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_19?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_20?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_21?type=Runnable" />
+          <items xsi:type="am:RunnableCall" runnable="Runnable_5ms_22?type=Runnable" />
+        </items>
+      </activityGraph>
+    </tasks>
+    <runnables xmi:id="Runnable_10ms_0?type=Runnable" name="Runnable_10ms_0" activations="periodic_10ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_4071?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1867?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2596?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1209?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_699?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3550?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_406?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6510?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8680?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="427" upperBound="561" average="442.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1867?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_944?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_3281?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4619?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4281?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4901?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_540?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1741?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_1349?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3942?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_100ms_0?type=Runnable" name="Runnable_100ms_0" activations="periodic_100ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2614?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1030?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1374?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4735?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3510?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_712?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4983?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4434?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5282?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5530?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5567?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5749?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6582?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7346?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8974?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="3619" upperBound="6156" average="5290.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_641?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4730?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9289?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_6660us_0?type=Runnable" name="Runnable_6660us_0" activations="periodic_6660us?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_4322?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4227?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2037?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4805?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7010?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7105?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7971?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="452" upperBound="1782" average="979.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3805?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_700?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_435?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4336?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_774?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4936?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_sporadic_700us_800us_0?type=Runnable" name="Runnable_sporadic_700us_800us_0" activations="sporadic_700us_800us?type=SporadicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_5564?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6354?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8480?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="902" upperBound="1817" average="1252.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_232?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_20ms_0?type=Runnable" name="Runnable_20ms_0" activations="periodic_20ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_4881?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6829?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="927" upperBound="12478" average="7557.0" pRemainPromille="5.0E-4" />
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_10ms_1?type=Runnable" name="Runnable_10ms_1" activations="periodic_10ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2655?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3605?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4725?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1646?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_893?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1845?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3600?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1690?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_770?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3961?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7099?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="1739" upperBound="3253" average="2502.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1198?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_948?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4071?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1690?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_161?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_1706?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3637?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_10ms_2?type=Runnable" name="Runnable_10ms_2" activations="periodic_10ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_448?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1760?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1766?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3139?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_240?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_683?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_414?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5392?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6547?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6624?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8291?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="143" upperBound="1273" average="670.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3103?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2418?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4747?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_3622?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4643?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_2ms_0?type=Runnable" name="Runnable_2ms_0" activations="periodic_2ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_6652?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7485?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7772?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8173?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="2491" upperBound="4523" average="3717.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9153?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_9462?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_10ms_3?type=Runnable" name="Runnable_10ms_3" activations="periodic_10ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_1098?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1907?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6644?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7085?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="12545" upperBound="23334" average="15488.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_87?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1484?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3035?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_100ms_1?type=Runnable" name="Runnable_100ms_1" activations="periodic_100ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_4117?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2703?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4092?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1062?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_163?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_263?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6134?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7255?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8605?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8796?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="347" upperBound="716" average="523.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1062?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4779?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4931?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_57?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1432?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_23?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_3563?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3927?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1133?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_20ms_1?type=Runnable" name="Runnable_20ms_1" activations="periodic_20ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2494?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4160?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2096?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_823?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_417?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3000?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3826?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7591?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8451?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="15175" upperBound="22953" average="20142.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1838?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4372?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2883?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_405?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_9305?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9526?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_10ms_4?type=Runnable" name="Runnable_10ms_4" activations="periodic_10ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2557?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2304?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2792?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_327?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1189?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1036?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1469?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4350?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3557?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2619?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3714?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_258?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3031?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5463?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5989?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7574?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8461?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8803?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="1846" upperBound="9278" average="6888.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1565?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_448?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1390?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_1189?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4868?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1999?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9434?type=Label" access="write" implementation="explicit" />
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_6660us_1?type=Runnable" name="Runnable_6660us_1" activations="periodic_6660us?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_3011?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1218?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2135?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3350?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6323?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="4078" upperBound="7300" average="4613.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_839?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1738?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4227?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1327?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9095?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_100ms_2?type=Runnable" name="Runnable_100ms_2" activations="periodic_100ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_1457?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1835?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4685?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3603?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5635?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5777?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5922?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6419?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6514?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="1145" upperBound="8943" average="6370.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3185?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3603?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4983?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1120?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_263?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1282?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2084?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2230?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9733?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_100ms_3?type=Runnable" name="Runnable_100ms_3" activations="periodic_100ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_3163?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4710?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1407?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3747?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2751?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_173?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1437?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4729?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_427?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5427?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="12018" upperBound="25260" average="20602.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_830?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_3510?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_173?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1981?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9235?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9360?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_100ms_4?type=Runnable" name="Runnable_100ms_4" activations="periodic_100ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2913?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1488?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4142?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2817?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2250?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7974?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8507?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="4.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_8741?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="1440" upperBound="11668" average="7040.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1488?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4654?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4142?type=Label" access="write" implementation="explicit" />
+        <items xsi:type="am:LabelAccess" data="Label_899?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3991?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_6660us_2?type=Runnable" name="Runnable_6660us_2" activations="periodic_6660us?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_3957?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4810?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3556?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_912?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7496?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="412" upperBound="580" average="529.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_4810?type=Label" access="write" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_20ms_2?type=Runnable" name="Runnable_20ms_2" activations="periodic_20ms?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_2377?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3133?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_973?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_500?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_1336?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_5765?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_6818?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_7102?type=Label" access="read" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="3.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:Ticks">
+          <default xsi:type="am:DiscreteValueWeibullEstimatorsDistribution" lowerBound="4685" upperBound="8086" average="5179.0" pRemainPromille="5.0E-4" />
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3000?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_9605?type=Label" access="write" implementation="implicit">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="IMPLICIT" />
+          </customProperties>
+        </items>
+      </activityGraph>
+    </runnables>
+    <runnables xmi:id="Runnable_6660us_3?type=Runnable" name="Runnable_6660us_3" activations="periodic_6660us?type=PeriodicActivation" callback="false" service="false">
+      <activityGraph>
+        <items xsi:type="am:LabelAccess" data="Label_1398?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="5.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_2450?type=Label" access="read" implementation="explicit">
+          <statistic>
+            <value xsi:type="am:SingleValueStatistic" value="2.0" />
+          </statistic>
+        </items>
+        <items xsi:type="am:LabelAccess" data="Label_3341?type=Label" access="read" implementation="timed">
+          <customProperties key="COMMUNINCATION_TYPE">
+            <value xsi:type="am:StringObject" value="TIMED" />
+          </customProperties>