From 540c157b84a9ffa210da57d4ca2667a524b84f78 Mon Sep 17 00:00:00 2001
From: Alexander Diewald <diewald@fortiss.org>
Date: Tue, 26 Jun 2018 13:56:52 +0200
Subject: [PATCH] DSE-DI: Cleanup for DI-based decoders (DI --> Guice).

* Create a GuiceDecoder class that serves as a container at which
  Guice-based decoders can be registered. It calls the Decoder that
  provides the demanded output encoding (Provides annotation). The
  Guice injector will be responsible to resolve the dependencies between
  the decoders.
* Simplify the Phenotype classes such that there exists only a single
  phenotype that can host sub-phenotypes.
* Also remove the generic from the phenotype that declares it's primary
  input genotype: There is almost no gain in terms of safety/robustness
  versus a ton of code complications.

Signed-off-by: Alexander Diewald <diewald@fortiss.org>
---
 .../model/.ratings                            |  3 +
 .../org/fortiss/af3/exploration/alg/.ratings  |  4 +-
 .../alg/annotation/valueprovider/.ratings     |  6 +-
 .../af3/exploration/alg/backend/.ratings      |  2 +-
 .../fortiss/af3/exploration/alg/dse/.ratings  | 12 ++--
 .../af3/exploration/alg/dse/backend/.ratings  |  6 +-
 .../alg/dse/backend/ExplorerBackendBase.java  |  4 +-
 .../alg/dse/backend/opt4j/.ratings            |  6 +-
 .../alg/dse/backend/opt4j/create/.ratings     |  4 +-
 .../opt4j/create/partitionmapping/.ratings    |  2 +-
 .../backend/opt4j/create/platform/.ratings    |  2 +-
 .../opt4j/create/safetyfunctionarch/.ratings  |  2 +-
 .../backend/opt4j/create/taskmapping/.ratings |  8 +--
 .../alg/dse/backend/opt4j/encoding/.ratings   |  8 +--
 .../opt4j/encoding/MappingEncoding.java       |  4 +-
 .../dse/backend/opt4j/encoding/comm/.ratings  |  2 +-
 .../opt4j/encoding/comm/MessageEncoding.java  | 10 +--
 .../opt4j/encoding/comm/constraint/.ratings   |  2 +-
 .../opt4j/encoding/partitionmapping/.ratings  |  6 +-
 .../PartitionMappingEncoding.java             |  7 +-
 .../backend/opt4j/encoding/platform/.ratings  |  2 +-
 .../PlatformCommunicationGraphEncoding.java   | 10 +--
 .../encoding/safetyfunctionarch/.ratings      |  4 +-
 .../SafetyFunctionArchEncoding.java           | 12 ++--
 .../backend/opt4j/encoding/taskgraph/.ratings | 10 +--
 .../taskgraph/AbstractTaskGraphEncoding.java  | 10 +--
 .../InstantiatedAcyclicTaskGraphEncoding.java | 10 ++-
 .../InstantiatedTaskGraphEncoding.java        | 11 ++--
 .../taskgraph/SafeTaskGraphEncoding.java      | 11 ++--
 .../encoding/taskgraph/TaskGraphEncoding.java | 20 +++---
 .../opt4j/encoding/taskmapping/.ratings       |  4 +-
 .../taskmapping/abstractmapping/.ratings      |  4 +-
 .../AbstractTaskMappingEncoding.java          | 20 +++---
 .../encoding/taskmapping/constraint/.ratings  |  4 +-
 .../taskmapping/instantiatedmapping/.ratings  | 12 ++--
 .../InstantiatedTaskMappingEncoding.java      | 28 ++++----
 .../extensions/compositegene/create/.ratings  |  8 +--
 .../create/ComposableCreator.java             | 10 ++-
 .../create/ComposableCreatorBase.java         | 46 +++++++------
 .../create/CompositeCreator.java              |  6 +-
 .../create/CompositeCreatorBase.java          |  9 ++-
 .../extensions/compositegene/decode/.ratings  | 12 ++--
 .../decode/ComposableDecoder.java             |  9 ++-
 .../decode/ComposableDecoderBase.java         |  8 +--
 .../decode/CompositeDecoder.java              | 16 ++---
 .../decode/CompositeDecoderBase.java          | 49 +++++++-------
 .../compositegene/decode/GuiceDecoder.java    | 47 ++++++++++++++
 .../GuicePhenotype.java}                      | 60 ++++++++---------
 .../decode/PhenotypeDecoder.java              | 10 +--
 .../compositegene/evaluate/.ratings           |  6 +-
 .../evaluate/ComposableEvaluator.java         | 12 ++--
 .../evaluate/CompositeEvaluator.java          | 17 +++--
 .../evaluate/CompositeEvaluatorBase.java      | 65 ++++++++-----------
 .../compositegene/exception/.ratings          |  6 +-
 .../compositegene/genotype/.ratings           |  4 +-
 .../genotype/FlatGenotypeMap.java             |  4 +-
 .../extensions/compositegene/graph/.ratings   |  4 +-
 .../graph/DecoderDependencyGraph.java         | 19 +++---
 .../compositegene/graph/DecoderEdge.java      |  4 +-
 .../compositegene/phenotype/.ratings          |  8 +--
 .../phenotype/CompositePhenotype.java         | 59 -----------------
 .../phenotype/FlatPhenotypeMap.java           | 10 +--
 .../compositegene/phenotype/Phenotype.java    | 38 ++++++++++-
 ...ePhenotypeBase.java => PhenotypeBase.java} | 48 ++++++--------
 .../extensions/compositegene/problem/.ratings |  2 +-
 .../problem/CompositeProblemModuleBase.java   |  9 ++-
 .../backend/opt4j/extensions/decode/.ratings  |  2 +-
 .../opt4j/extensions/encoding/.ratings        |  2 +-
 .../alg/dse/backend/opt4j/mating/.ratings     |  4 +-
 .../alg/dse/backend/opt4j/operator/.ratings   |  4 +-
 .../operator/copy/partitionmapping/.ratings   |  4 +-
 .../opt4j/operator/copy/platform/.ratings     |  4 +-
 .../operator/copy/safetyfunctionarch/.ratings |  4 +-
 .../opt4j/operator/copy/taskmapping/.ratings  |  6 +-
 .../backend/opt4j/operator/crossover/.ratings | 20 +++---
 .../operator/crossover/failSilent/.ratings    |  2 +-
 .../crossover/faultDetectionVoting/.ratings   |  2 +-
 .../backend/opt4j/operator/mutate/.ratings    |  6 +-
 .../operator/mutate/partitionmapping/.ratings |  8 +--
 .../opt4j/operator/mutate/platform/.ratings   |  2 +-
 .../opt4j/operator/mutate/safetyarch/.ratings | 10 +--
 .../mutate/taskinstantiation/.ratings         |  4 +-
 .../operator/mutate/taskmapping/.ratings      | 12 ++--
 .../backend/opt4j/operator/selection/.ratings | 14 ++--
 .../alg/dse/backend/opt4j/problem/.ratings    | 16 ++---
 .../opt4j/problem/ArchitectureDecoder.java    | 11 ++--
 .../opt4j/problem/DseProblemModuleBase.java   | 29 ++++-----
 .../opt4j/problem/EvaluatorWrapper.java       |  6 +-
 .../dse/backend/opt4j/problem/comm/.ratings   |  2 +-
 .../problem/instantiatetaskgraph/.ratings     |  4 +-
 .../opt4j/problem/partitionmapping/.ratings   |  4 +-
 .../opt4j/problem/safetyfunction/.ratings     |  8 +--
 .../safetyfunction/SFEncodingDecoder.java     | 16 ++---
 .../opt4j/problem/taskmapping/.ratings        |  4 +-
 .../AbstractTaskMappingIdentityDecoder.java   |  4 +-
 .../taskmapping/TaskMappingDecoderBase.java   |  5 +-
 .../problem/taskmapping/instantiate/.ratings  |  8 +--
 .../alg/dse/backend/opt4j/repair/.ratings     |  2 +-
 .../alg/dse/backend/opt4j/solution/.ratings   | 12 ++--
 .../opt4j/solution/ArchExpSubSolution.java    |  5 +-
 .../opt4j/solution/ArchitectureSolution.java  | 32 ++++-----
 .../opt4j/solution/StrictTTSchedule.java      | 55 ++++++++--------
 .../exploration/alg/dse/evaluator/.ratings    | 12 ++--
 .../alg/dse/evaluator/constraint/.ratings     | 20 +++---
 .../alg/dse/evaluator/objective/.ratings      | 10 +--
 .../alg/dse/modeltransformation/.ratings      |  8 +--
 .../alg/dse/modeltransformation/base/.ratings |  8 +--
 .../dse/modeltransformation/comparch/.ratings | 12 ++--
 .../modeltransformation/deployment/.ratings   |  8 +--
 .../modeltransformation/dseinternal/.ratings  | 12 ++--
 .../dse/modeltransformation/element/.ratings  |  4 +-
 .../dse/modeltransformation/graph/.ratings    |  4 +-
 .../modeltransformation/partition/.ratings    |  4 +-
 .../dse/modeltransformation/safety/.ratings   |  4 +-
 .../af3/exploration/alg/dse/sysmodel/.ratings |  4 +-
 .../alg/dse/sysmodel/arch/.ratings            | 34 +++++-----
 .../alg/dse/sysmodel/arch/af3/.ratings        | 26 ++++----
 .../alg/dse/sysmodel/arch/af3/helper/.ratings |  2 +-
 .../alg/dse/sysmodel/arch/taskgraph/.ratings  | 10 +--
 .../alg/dse/sysmodel/comm/.ratings            |  4 +-
 .../alg/dse/sysmodel/faultmodel/.ratings      |  2 +-
 .../alg/dse/sysmodel/mapping/.ratings         |  4 +-
 .../alg/dse/sysmodel/mapping/comm/.ratings    |  6 +-
 .../alg/dse/sysmodel/random/.ratings          |  2 +-
 .../alg/dse/sysmodel/sched/.ratings           |  4 +-
 .../alg/dse/sysmodel/sched/comm/.ratings      |  2 +-
 .../alg/dse/sysmodel/sched/proc/.ratings      |  6 +-
 .../af3/exploration/alg/exception/.ratings    | 14 ++--
 .../af3/exploration/alg/graph/.ratings        |  6 +-
 .../exploration/alg/graph/display/.ratings    | 12 ++--
 .../af3/exploration/alg/guava/.ratings        | 16 ++---
 .../fortiss/af3/exploration/alg/plot/.ratings | 14 ++--
 .../af3/exploration/alg/service/.ratings      | 26 ++++----
 .../alg/service/ExplorationEncodingMap.java   | 13 ++--
 .../exploration/alg/service/internal/.ratings |  8 +--
 .../ExplorationEvaluationService.java         |  4 +-
 .../fortiss/af3/exploration/alg/util/.ratings | 14 ++--
 .../alg/util/ExplorationAlgDebugUtils.java    | 49 +++++++-------
 .../dsl/model/patterns/impl/.ratings          |  2 +-
 .../exploration/model/location/impl/.ratings  |  2 +-
 .../af3/exploration/model/time/impl/.ratings  |  4 +-
 .../moea/model/predefined/impl/.ratings       | 10 +--
 .../org/fortiss/af3/exploration/util/.ratings |  6 +-
 143 files changed, 794 insertions(+), 828 deletions(-)
 create mode 100644 org.fortiss.af3.exploration.alg/model/.ratings
 create mode 100644 org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuiceDecoder.java
 rename org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/{phenotype/ComposablePhenotype.java => decode/GuicePhenotype.java} (68%)
 delete mode 100644 org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotype.java
 rename org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/{CompositePhenotypeBase.java => PhenotypeBase.java} (54%)

diff --git a/org.fortiss.af3.exploration.alg/model/.ratings b/org.fortiss.af3.exploration.alg/model/.ratings
new file mode 100644
index 00000000..f54baab0
--- /dev/null
+++ b/org.fortiss.af3.exploration.alg/model/.ratings
@@ -0,0 +1,3 @@
+common.ecore 3e3e3a1484cebe698e99621a60be4fa285238c92 RED
+explorationDsl.ecore 6950a6116721764800ad6bf3b301e0dec934c365 RED
+moea.ecore 099cf6fd45522f4b427d21f6bca28ec493e36c35 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/.ratings
index ce6480c4..7cd75bc2 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/.ratings
@@ -1,2 +1,2 @@
-ExplorationAlg.java 23b771227aa82ddc80f010e14d1ef977e47fbdd5 RED
-ExplorationAlgActivator.java d51cc105f23cc84dee0130d36fbd5bbd840c0398 RED
+ExplorationAlg.java 7ef701a3a7624df35f3bb76048af31a41aafe3cd RED
+ExplorationAlgActivator.java 1970505dc53286fd3752c909abc568e0bf598fe0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
index 17c79725..b4520fba 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/annotation/valueprovider/.ratings
@@ -1,3 +1,3 @@
-ComponentImplDiversityRefValueProvider.java d2cbe7d1acefd9941a766ea7cf2ac958a4347ef6 RED
-MaxReplicationBoundValueProvider.java 78cde3b9543ff06c9310f96de8ad24e9feacc5d4 RED
-MinReplicationBoundValueProvider.java 7ef7176ae0f4e64ad0e0923f09f3bc8fe0a14b67 RED
+ComponentImplDiversityRefValueProvider.java 30d88e9a239c9e7db07d94b5279f0e9e01f0724a RED
+MaxReplicationBoundValueProvider.java 965e454e52d5ec88bf718c528caa12237e7ddeb6 RED
+MinReplicationBoundValueProvider.java c6c1939474c0cd6b47bc89d1c068509039ef270e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/backend/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/backend/.ratings
index ac94feeb..826fc063 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/backend/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/backend/.ratings
@@ -1 +1 @@
-Opt4JDseBackend.java f0485dc7fbc69c31f2f7fd15a7dad582ee5d7636 RED
+Opt4JDseBackend.java 91928dee43716df571dc3a6a5f4031401ed3ae61 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/.ratings
index 09629640..2aec5eb2 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/.ratings
@@ -1,6 +1,6 @@
-CompositeExplorationSolution.java 88849af9f8a52684cc523f89e235599e16dd9ac3 RED
-DSEFactory.java 0a2f2cc6a197e760c1f8223339ffa5f16856b184 RED
-Explorer.java 2194a74cbe51ca9e7dafb008dcefb51a54064dc8 RED
-ImplicitExplorationTargetFactory.java 6c16c6712886b549dda0a73aef4a4c3fe18c1850 RED
-SolutionQuantification.java efd31f192c3adbf1a4434452a19eb836a17390e2 RED
-TaskMappingFactory.java 5e41df9d45e338dbcfa95bc3818ca17774951893 RED
+CompositeExplorationSolution.java 1910fcd1d1e4a1b003b7a4e1bb52460eec5362dd RED
+DSEFactory.java ae8a0f876a1db3372d116066db10aa1e736980ab RED
+Explorer.java 91cdb26b6f42e4e5e82a26f7dbd9141ec2ff7b18 RED
+ImplicitExplorationTargetFactory.java 25c3c668ed268843f8af7e37eb03370ed513b482 RED
+SolutionQuantification.java 19cd7caa721bbca3112af7825c7fb20a96a4a799 RED
+TaskMappingFactory.java 47e6b1cd8e26a4a5e775beddff030dcf5df2e33d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
index 52edec4a..30eb5f3e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/.ratings
@@ -1,3 +1,3 @@
-ExplorerBackendBase.java ed85fa4a1638a3e50df5dc2f9d8bfc09f158452c RED
-IExplorerBackend.java 92b54d5179ebb9fe969664a215e1fb701ed98d15 RED
-SolutionCandidateBase.java d4b54cf5ec00fc62028d75c44068c99261af3a3c RED
+ExplorerBackendBase.java 3171b381ae145417c339607ccc57eb8037cbb354 RED
+IExplorerBackend.java 608f40896becf86dd68cc7b6994383e58c0885a8 RED
+SolutionCandidateBase.java ba1b16d55680ea45bffd665ac7b0fd71b589b769 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
index 704b078e..3171b381 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/ExplorerBackendBase.java
@@ -23,7 +23,7 @@ import javax.activation.UnsupportedDataTypeException;
 
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.fortiss.af3.exploration.alg.dse.DSEFactory;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.EvaluatorWrapper;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.IExplorationSolution;
@@ -62,7 +62,7 @@ public abstract class ExplorerBackendBase<O extends IOptimizer> implements IExpl
 	/** Representation of system model (=input) that is evaluated during this DSE run */
 	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
-	/** Set of requested {@link ComposablePhenotype}s that form the solution set. */
+	/** Set of requested {@link Phenotype}s that form the solution set. */
 	protected Set<Class<? extends IExplorationEncoding>> requestedSolutions;
 
 	/**
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
index 1a8861b9..a26bfd56 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/.ratings
@@ -1,3 +1,3 @@
-Opt4JExplorationSolutionSet.java fd1ca946198990604ea7a521e9d0335bef4ad8e1 RED
-Opt4JExplorerBackend.java 60aa6a82a54b7fff0819591939fb91db10116bf1 RED
-Opt4JSingleExplorationSolution.java 5b9e6ccdb887605faaa4d2a8b17b8fa1350fbafd RED
+Opt4JExplorationSolutionSet.java 8578ee9c438bc3327a64172e996306a89606c782 RED
+Opt4JExplorerBackend.java 000231dcd7f3a76d06567c7bb987410fa80602ba RED
+Opt4JSingleExplorationSolution.java 41ce92d11b2e7a6a8c39bffa990c691160c36c8d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
index e93a81d6..a3003df9 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/.ratings
@@ -1,2 +1,2 @@
-ArchitectureExplorationCreator.java d0a638d783ec90959bf1f95af42ea5a15606ebd2 RED
-InitialEncodingProvider.java 20e7cff927769c1911855e1549eca382be3effea RED
+ArchitectureExplorationCreator.java 1d101999bf56eca36a607b45c7e8fddb5fe06b67 RED
+InitialEncodingProvider.java d378a0d5e952144ee93eff3557bd2253f84e62a9 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
index b6c77c3a..4f0e777b 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/partitionmapping/.ratings
@@ -1 +1 @@
-PartitionMappingCreator.java 624850b3bbf31e965005ed1acf8622e81f1103b6 RED
+PartitionMappingCreator.java 6c83f8a857b0fa1e1bf90121a91d58038ed5d9d0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
index 8581fab1..0076d06e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/platform/.ratings
@@ -1 +1 @@
-PlatformCommunicationGraphCreator.java fd016186eea8e716f9f6699b46c5d386acf2db8a RED
+PlatformCommunicationGraphCreator.java 54301f92ded2065b76a45ad27aeb6a8dcbac01fb RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
index a6d95f4f..e864fdd3 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/safetyfunctionarch/.ratings
@@ -1 +1 @@
-SafetyFunctionArchCreator.java 29178efd61d31c86d719a8fac9a110745e3cf5aa RED
+SafetyFunctionArchCreator.java e15712cd3dbf2a62f38c5dcad6cf101fff8525e1 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
index 5c511d7e..0003728d 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/create/taskmapping/.ratings
@@ -1,4 +1,4 @@
-AbstractTaskMappingCreator.java f0cee5bfa4e83539c2b7ad2ac8e66c1457c39ab5 RED
-FailSilentTaskMappingCreator.java e21d4f6d6ed24fb42adeb9cd9f7b0069aeb40fd5 RED
-FaultDetectionVotingTaskMappingCreator.java 8b18ef5401d28cc61ba4ce3545c16d531289549e RED
-TaskMappingCreator.java 154b1528e3b96078a4f00a633adce5fbe6233151 RED
+AbstractTaskMappingCreator.java 813a927b1b10b29e7707f4207901d3e0a3529b43 RED
+FailSilentTaskMappingCreator.java 7375dc0d4c424606672e0fd88a2f97bf2f0c58ea RED
+FaultDetectionVotingTaskMappingCreator.java 0b8ce4eb8f73d3fa0fa1d3ef0d4ffec2e2be253e RED
+TaskMappingCreator.java 1b09ee1d49cd4a8424d922fa605463f810063c78 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/.ratings
index eee0df77..d60cb801 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/.ratings
@@ -1,4 +1,4 @@
-ArchExpSubEncoding.java 60e13a2cb13bb36e9f8f7149f322dbed5398eafb RED
-ArchitectureExplorationEncoding.java e7ff265079ae5838bf84abf9d05712409031a970 RED
-MappingEncoding.java f23852b2e5ae6e327a6c5609142e0307ca6bf5a1 RED
-MappingEntryBase.java 8dfa84697f5042eb09522d4fc49a58115c6e3027 RED
+ArchExpSubEncoding.java 0cd944e97251e7e37e06400b104bc3158f5ee30e RED
+ArchitectureExplorationEncoding.java fbc6b8031c3673ff380a044398faac7ee18dcc39 RED
+MappingEncoding.java 75baf2518a5be578cc35bfec4b2a305d29bef1e9 RED
+MappingEntryBase.java 6c8e8c59126d3d381fc98284f2ce2bef469b0b4d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/MappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/MappingEncoding.java
index 7d6c8ae7..75baf251 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/MappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/MappingEncoding.java
@@ -23,7 +23,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IRequestAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEncoding;
@@ -40,7 +40,7 @@ import com.google.common.collect.ListMultimap;
  * @author diewald
  */
 public abstract class MappingEncoding<G extends Genotype, S extends IRequestAdapter<?>, T extends IResourceAdapter<?>, M extends IMappingEntry<S, T>>
-		implements ComposablePhenotype<G>, IMappingEncoding<S, T, M>, Cloneable {
+		extends PhenotypeBase implements IMappingEncoding<S, T, M>, Cloneable {
 
 	/**
 	 * Allocation map
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
index c2323e22..2fee1268 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/.ratings
@@ -1 +1 @@
-MessageEncoding.java 523e16c2ec3d890b6715bfcd24ab39da4f850621 RED
+MessageEncoding.java bb8e1c30c878dc4fe0bc56aa097060ac003ad891 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
index ced70c11..bb8e1c30 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/MessageEncoding.java
@@ -22,7 +22,8 @@ import java.util.Collection;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISignalAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.comm.Message;
@@ -35,7 +36,7 @@ import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
  * @author diewald
  */
 public class MessageEncoding<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>>
-		implements IExplorationEncoding, ComposablePhenotype<T> {
+		extends PhenotypeBase implements IExplorationEncoding {
 
 	/** Contains the set of generated messages. */
 	Collection<Message> messages;
@@ -57,9 +58,8 @@ public class MessageEncoding<S extends TaskMappingEntry<ITaskAdapter<?>, Partiti
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)MessageEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return MessageEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/constraint/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/constraint/.ratings
index 34829a41..69f806a9 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/constraint/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/comm/constraint/.ratings
@@ -1 +1 @@
-InternalIsolatedCommunicationSet.java 46aa91e7690c31e46c6e852d8eed54b246fa4654 RED
+InternalIsolatedCommunicationSet.java 7b5f0edda6a6bcadd60ced408f214c5d4bac59c0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
index f053d6c1..0f36a288 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/.ratings
@@ -1,3 +1,3 @@
-Partition.java 9cde7e1eed7eb12767b0f8f2c104afab6d64a9c1 RED
-PartitionMappingEncoding.java 45388dce4228074541b17410baabf30f9c22f858 RED
-PartitionMappingEntry.java 2f8f082e6bcd49dbe2f5ba88724850b54b20d637 RED
+Partition.java 89cfb87a73d3ae080a9dbe5594b48ad552f7a9f1 RED
+PartitionMappingEncoding.java f974bacb9d792679e784b150b5ed4bf04b07987d RED
+PartitionMappingEntry.java 1af8d4e9544e3493329d93fc5d948b9d5e0bb158 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
index 0bad93c3..f974bacb 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/partitionmapping/PartitionMappingEncoding.java
@@ -22,7 +22,7 @@ import java.util.Map;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.MappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.random.RandomExploration;
@@ -33,7 +33,8 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.random.RandomExploration;
  * 
  * @author diewald
  */
-public class PartitionMappingEncoding extends
+public class PartitionMappingEncoding
+		extends
 		MappingEncoding<PartitionMappingEncoding, Partition, IResourceAdapter<?>, PartitionMappingEntry>
 		implements ComposableGenotype, Cloneable {
 	/** Set of physical target resources, i.e., execution units. */
@@ -131,7 +132,7 @@ public class PartitionMappingEncoding extends
 
 	/** {@inheritDoc} */
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
+	public Class<? extends Phenotype> getPTypeToRegister() {
 		return getClass();
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
index d5a16a58..3fab49e2 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/.ratings
@@ -1 +1 @@
-PlatformCommunicationGraphEncoding.java 69cdf4968c8572f70b4360b0c027cf6cbfd28a92 RED
+PlatformCommunicationGraphEncoding.java f0361039e0d012f0de4f4f29982cb271039dcf1a RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
index e44f92b6..f0361039 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/platform/PlatformCommunicationGraphEncoding.java
@@ -15,9 +15,9 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.platform;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.PartitionMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.graph.display.JGraphTVisualizer;
@@ -33,8 +33,8 @@ import org.jgrapht.graph.DefaultEdge;
  * 
  * @author diewald
  */
-public class PlatformCommunicationGraphEncoding implements IExplorationEncoding, ComposableGenotype,
-		ComposablePhenotype<PartitionMappingEncoding>, Cloneable {
+public class PlatformCommunicationGraphEncoding extends PhenotypeBase implements
+		IExplorationEncoding, ComposableGenotype, Cloneable {
 	/** The graph representing the communication structure of a platform. */
 	protected DirectedGraph<IResourceAdapter<?>, DefaultEdge> platformGraph;
 
@@ -84,7 +84,7 @@ public class PlatformCommunicationGraphEncoding implements IExplorationEncoding,
 
 	/** {@inheritDoc} */
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
+	public Class<? extends Phenotype> getPTypeToRegister() {
 		return PlatformCommunicationGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
index ea3901e2..5a9feb1b 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/.ratings
@@ -1,2 +1,2 @@
-SafetyFunctionArchEncoding.java 08787ff7cf5544ad80b1ff85c953ab6c51a9881a RED
-SafetyFunctionArchEntry.java ec95cc0ef4c297fa97555cbcf803049e53039fad RED
+SafetyFunctionArchEncoding.java d66e000c4063e5c0938085d73030970695b6478e RED
+SafetyFunctionArchEntry.java 745ccb0f4754be1610fdfa4f9cc6947348c6c154 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
index d2877386..d66e000c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/safetyfunctionarch/SafetyFunctionArchEncoding.java
@@ -27,7 +27,8 @@ import java.util.Optional;
 import java.util.stream.Collectors;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ISafetyFunctionAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.random.RandomExploration;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
@@ -40,8 +41,8 @@ import org.opt4j.core.Genotype;
  * 
  * @author diewald
  */
-public class SafetyFunctionArchEncoding<C> implements IExplorationEncoding, ComposableGenotype,
-		ComposablePhenotype<SafetyFunctionArchEncoding<C>>, Cloneable {
+public class SafetyFunctionArchEncoding<C> extends PhenotypeBase implements IExplorationEncoding,
+		ComposableGenotype, Cloneable {
 
 	/** Random generator */
 	private RandomExploration rand = RandomExploration.getInstance();
@@ -179,9 +180,8 @@ public class SafetyFunctionArchEncoding<C> implements IExplorationEncoding, Comp
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)SafetyFunctionArchEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return SafetyFunctionArchEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
index eb0056ef..8f88c0bd 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/.ratings
@@ -1,5 +1,5 @@
-AbstractTaskGraphEncoding.java 1a6b9a31e85b0bba9ab59ef893558537ac6dfc7d RED
-InstantiatedAcyclicTaskGraphEncoding.java 03f8687d9f83bd48bd545856160d6a022ba58228 RED
-InstantiatedTaskGraphEncoding.java 18284256299c6ce54226254aab867e41a6530141 RED
-SafeTaskGraphEncoding.java 27f0d06ed34f1cd46dee7332f32fc13279d55cc9 RED
-TaskGraphEncoding.java 21b7be288439e4ee61d2726720a32fdcbfcfcbcf RED
+AbstractTaskGraphEncoding.java 6877ab11ffa719fc830f7cfc8992c85df9d00531 RED
+InstantiatedAcyclicTaskGraphEncoding.java 6457b136cecb40baff385e415e2d1a975f82c090 RED
+InstantiatedTaskGraphEncoding.java a97dab2f3695c9d3a4ab62e5fbe062c736c9baaf RED
+SafeTaskGraphEncoding.java bf51882e640d22da5e82e2203b29d50beddc7b0e RED
+TaskGraphEncoding.java 44dba5f97c80579f31fcb14f0d1fabfa80a6734a RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
index 400f4288..6877ab11 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/AbstractTaskGraphEncoding.java
@@ -18,7 +18,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph;
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
@@ -28,8 +28,8 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
  * 
  * @author diewald
  */
-public class AbstractTaskGraphEncoding<G extends ComposableGenotype, C>
-		extends TaskGraphEncoding<G, C, DefaultTaskGraph<?>> {
+public class AbstractTaskGraphEncoding<G extends ComposableGenotype, C> extends
+		TaskGraphEncoding<G, C, DefaultTaskGraph<?>> {
 
 	/** Constructor. */
 	public AbstractTaskGraphEncoding(Collection<? extends DefaultTaskGraph<?>> originalTaskGraphs,
@@ -45,7 +45,7 @@ public class AbstractTaskGraphEncoding<G extends ComposableGenotype, C>
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)AbstractTaskGraphEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return AbstractTaskGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
index 31bcc495..6457b136 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedAcyclicTaskGraphEncoding.java
@@ -19,7 +19,7 @@ import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.AcyclicTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
@@ -40,15 +40,13 @@ public class InstantiatedAcyclicTaskGraphEncoding<T extends InstantiatedTaskMapp
 	}
 
 	/** Copy Constructor. See {@link TaskGraphEncoding#TaskGraphEncoding(TaskGraphEncoding)}. */
-	public InstantiatedAcyclicTaskGraphEncoding(
-			InstantiatedAcyclicTaskGraphEncoding<T, C> encoding) {
+	public InstantiatedAcyclicTaskGraphEncoding(InstantiatedAcyclicTaskGraphEncoding<T, C> encoding) {
 		super(encoding);
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)InstantiatedAcyclicTaskGraphEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return InstantiatedAcyclicTaskGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
index bb630ced..a97dab2f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/InstantiatedTaskGraphEncoding.java
@@ -19,7 +19,7 @@ import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.instantiatedmapping.InstantiatedTaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
 
@@ -28,8 +28,8 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
  * 
  * @author diewald
  */
-public class InstantiatedTaskGraphEncoding<T extends InstantiatedTaskMappingEntry, C>
-		extends TaskGraphEncoding<InstantiatedTaskMappingEncoding<T>, C, DefaultTaskGraph<?>> {
+public class InstantiatedTaskGraphEncoding<T extends InstantiatedTaskMappingEntry, C> extends
+		TaskGraphEncoding<InstantiatedTaskMappingEncoding<T>, C, DefaultTaskGraph<?>> {
 	/** Constructor. */
 	public InstantiatedTaskGraphEncoding(Collection<DefaultTaskGraph<?>> originalTaskGraphs,
 			Double hyperPeriod) {
@@ -42,9 +42,8 @@ public class InstantiatedTaskGraphEncoding<T extends InstantiatedTaskMappingEntr
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)InstantiatedTaskGraphEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return InstantiatedTaskGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
index 68d4a0a8..bf51882e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/SafeTaskGraphEncoding.java
@@ -18,7 +18,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph;
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunctionarch.SafetyFunctionArchEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.DefaultTaskGraph;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
@@ -29,8 +29,8 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.TaskGraph;
  * 
  * @author diewald
  */
-public class SafeTaskGraphEncoding<C>
-		extends AbstractTaskGraphEncoding<SafetyFunctionArchEncoding<C>, C> {
+public class SafeTaskGraphEncoding<C> extends
+		AbstractTaskGraphEncoding<SafetyFunctionArchEncoding<C>, C> {
 	/** Collection of task graphs extracted from the input models. */
 	Collection<TaskGraph> originalTaskGraphs;
 
@@ -59,9 +59,8 @@ public class SafeTaskGraphEncoding<C>
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)SafeTaskGraphEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return SafeTaskGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
index ec7985e9..44dba5f9 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskgraph/TaskGraphEncoding.java
@@ -22,7 +22,8 @@ import java.util.HashSet;
 
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.af3.component.model.Component;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.taskgraph.SignalAdapterWeightedEdge;
@@ -37,8 +38,8 @@ import org.opt4j.core.Genotype;
  * 
  * @author diewald
  */
-public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
-		implements IExplorationEncoding, ComposablePhenotype<G>, Cloneable {
+public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph> extends PhenotypeBase
+		implements IExplorationEncoding, Cloneable {
 	/** {@link TaskGraph} that represents the deployable components and their signals. */
 	protected Collection<T> taskGraphs;
 
@@ -91,8 +92,8 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	}
 
 	/**
-	 * Adds the given {@link ITaskAdapter} to its corresponding {@link TaskGraph} in
-	 * {@code this} encoding.
+	 * Adds the given {@link ITaskAdapter} to its corresponding {@link TaskGraph} in {@code this}
+	 * encoding.
 	 */
 	public void addTask(ITaskAdapter<C> task) {
 		// TODO: Here, we use the assumption that the given task refers to a task that is also
@@ -111,9 +112,8 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	}
 
 	/**
-	 * Adds all signals defined in the input models for the given
-	 * {@link ITaskAdapter} which must be contained in any of the internal
-	 * {@link TaskGraph}s.
+	 * Adds all signals defined in the input models for the given {@link ITaskAdapter} which must be
+	 * contained in any of the internal {@link TaskGraph}s.
 	 */
 	public void addSignalsOf(ITaskAdapter<C> task, TaskGraph origTaskGraph) {
 		// The given task must be in the any of the task graphs!
@@ -286,7 +286,7 @@ public class TaskGraphEncoding<G extends Genotype, C, T extends TaskGraph>
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)TaskGraphEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return (Class<? extends Phenotype>)TaskGraphEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
index ceadd362..c7152a3e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/.ratings
@@ -1,2 +1,2 @@
-TaskMappingEncoding.java 978f19bbba5b01c9b5157292775610d2a40df378 RED
-TaskMappingEntry.java 8872e14a5d29f267ce2be78e9a3f3f817f16edd2 RED
+TaskMappingEncoding.java 49480f278fb9d8c40710ef8b8fc574b325c62a54 RED
+TaskMappingEntry.java 407c9065007f8cd4adc8b64eea13a837bba581ae RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
index 80ee4955..bc824ed6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/.ratings
@@ -1,2 +1,2 @@
-AbstractTaskMappingEncoding.java 285c8a15dda294bee34119d914e46bd8f0864283 RED
-AbstractTaskMappingEntry.java 0bef4c1102baf6bfbddc759fd103cf18df4b5553 RED
+AbstractTaskMappingEncoding.java 9ce20cd18e406164d3c7f5365cef6277e582e094 RED
+AbstractTaskMappingEntry.java 5a402c12dbf882f6c6f19146a66f837764f50e1f RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
index bf776e42..9ce20cd1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/abstractmapping/AbstractTaskMappingEncoding.java
@@ -26,7 +26,7 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskgraph.Task
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 import org.fortiss.af3.exploration.moea.model.DseSpecification;
@@ -38,8 +38,8 @@ import org.opt4j.core.Genotype;
  * 
  * @author diewald
  */
-public class AbstractTaskMappingEncoding
-		extends TaskMappingEncoding<ITaskAdapter<?>, AbstractTaskMappingEntry> {
+public class AbstractTaskMappingEncoding extends
+		TaskMappingEncoding<ITaskAdapter<?>, AbstractTaskMappingEntry> {
 
 	/**
 	 * Constructor that is initialized with a reference to the DSE specification and the input
@@ -54,8 +54,7 @@ public class AbstractTaskMappingEncoding
 	 * Constructor that optionally initializes the encoding to a random encoding
 	 * 
 	 * @throws ExplorationException
-	 *             if no valid allocation targets can be identified for one
-	 *             {@link ITaskAdapter}.
+	 *             if no valid allocation targets can be identified for one {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse, PartitionMappingEncoding partEnc,
 			SafeTaskGraphEncoding<?> tgEncoding, boolean initialize) throws ExplorationException {
@@ -72,12 +71,10 @@ public class AbstractTaskMappingEncoding
 	 * Constructor for UPDATES.
 	 * 
 	 * @throws ExplorationException
-	 *             if no valid allocation targets can be identified for one
-	 *             {@link ITaskAdapter}.
+	 *             if no valid allocation targets can be identified for one {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse, PartitionMappingEncoding partEnc,
-			AbstractTaskGraphEncoding<?, ?> atgEnc, boolean initialize)
-			throws ExplorationException {
+			AbstractTaskGraphEncoding<?, ?> atgEnc, boolean initialize) throws ExplorationException {
 		super(dse, partEnc, atgEnc, initialize);
 	}
 
@@ -88,8 +85,7 @@ public class AbstractTaskMappingEncoding
 	 * Constructor for UPDATES.
 	 * 
 	 * @throws ExplorationException
-	 *             if no valid allocation targets can be identified for one
-	 *             {@link ITaskAdapter}.
+	 *             if no valid allocation targets can be identified for one {@link ITaskAdapter}.
 	 */
 	public AbstractTaskMappingEncoding(DseSpecification dse, PartitionMappingEncoding partEnc,
 			AbstractTaskGraphEncoding<?, ?> atgEnc, AbstractTaskMappingEncoding partialEncoding)
@@ -151,7 +147,7 @@ public class AbstractTaskMappingEncoding
 
 	/** {@inheritDoc} */
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
+	public Class<? extends Phenotype> getPTypeToRegister() {
 		return AbstractTaskMappingEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/constraint/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/constraint/.ratings
index e276d792..97f4a023 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/constraint/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/constraint/.ratings
@@ -1,2 +1,2 @@
-InternalReplicationConstraint.java 32ce4fbb95f5a887fa808c13276a4cc3d25e70da RED
-InternalSeparationConstraint.java e9ffce7d46b5cd8ae4a7fe66ade1e7c074c744b2 RED
+InternalReplicationConstraint.java 78cc908ad03ea3881e2434b483032a309bcd1dc2 RED
+InternalSeparationConstraint.java ca06fdc9d7a9384e5247776627ca6710ebc8fbb8 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
index 962cb0eb..972b0d37 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/.ratings
@@ -1,6 +1,6 @@
-FailSilentTaskMappingEncoding.java 6cd0c0d865f7930e9c1ef5aa24006c1c118f9ad8 RED
-FailSilentTaskMappingEntry.java 28c15e958f6208c1c65e5076bc7c3be26d7a2dc9 RED
-FaultDetectionVotingTaskMappingEncoding.java dee2b30029af89891814450e064cbfdb70af3124 RED
-FaultDetectionVotingTaskMappingEntry.java c6f6588154665d765b506850a78d8a434000c843 RED
-InstantiatedTaskMappingEncoding.java 35e480631da67eebd5e52d20485b6a76c9f030ec RED
-InstantiatedTaskMappingEntry.java 06181aa57ffb0c269c4dac8047cdccc2ae7afdd9 RED
+FailSilentTaskMappingEncoding.java e5a362b79a9f1b78a09b4b18b6538ed4bf4dfbfe RED
+FailSilentTaskMappingEntry.java b73b4242c590b45ad30c482390fee8eaa06179dc RED
+FaultDetectionVotingTaskMappingEncoding.java e906d793528ba8a329b3549ead4b904135ce73bb RED
+FaultDetectionVotingTaskMappingEntry.java ae401b16a2098ee85809f895c2469f494b6fc279 RED
+InstantiatedTaskMappingEncoding.java d875cefeb1bcc28550804ee102c9dd63ea0dc8f6 RED
+InstantiatedTaskMappingEntry.java ffac1e77d53b2a9253b864b876aae18b6820f1f0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
index f5653360..d875cefe 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/encoding/taskmapping/instantiatedmapping/InstantiatedTaskMappingEncoding.java
@@ -24,7 +24,7 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.Ta
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
@@ -62,8 +62,7 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 * Constructor that optionally initializes the encoding to a random encoding
 	 * 
 	 * @throws ExplorationException
-	 *             if no valid allocation targets can be identified for one
-	 *             {@link ITaskAdapter}.
+	 *             if no valid allocation targets can be identified for one {@link ITaskAdapter}.
 	 */
 	public InstantiatedTaskMappingEncoding(DseSpecification dse, PartitionMappingEncoding partEnc,
 			AbstractTaskGraphEncoding<?, ?> tgEncoding, boolean initialize)
@@ -76,18 +75,16 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	 * given {@link AbstractTaskMappingEncoding}.
 	 */
 	public InstantiatedTaskMappingEncoding(DseSpecification dse, PartitionMappingEncoding partEnc,
-			AbstractTaskGraphEncoding<?, ?> tgEncoding,
-			AbstractTaskMappingEncoding abstractEncoding) {
+			AbstractTaskGraphEncoding<?, ?> tgEncoding, AbstractTaskMappingEncoding abstractEncoding) {
 		super(dse, partEnc, tgEncoding);
 		this.constraintMap = abstractEncoding.copyConstraintMap(null);
 		instantiateAbstractEntries(abstractEncoding);
 	}
 
 	/**
-	 * Instantiates the {@link ITaskAdapter}s of the given
-	 * {@link AbstractTaskMappingEncoding} which must be replaced by a "concrete"
-	 * {@link ITaskAdapter} representing one possible implementation of the
-	 * {@link ITaskAdapter} that shall be replaced. (ref. Diversity)
+	 * Instantiates the {@link ITaskAdapter}s of the given {@link AbstractTaskMappingEncoding} which
+	 * must be replaced by a "concrete" {@link ITaskAdapter} representing one possible
+	 * implementation of the {@link ITaskAdapter} that shall be replaced. (ref. Diversity)
 	 */
 	public void instantiateAbstractEntries(AbstractTaskMappingEncoding abstractEncoding) {
 		for(AbstractTaskMappingEntry abstractEntry : abstractEncoding.getMappingEntries()) {
@@ -100,8 +97,8 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 
 	/** {@inheritDoc} */
 	@Override
-	public Collection<IExecutionUnitAdapter<?>>
-			getAllowedAllocations(ITaskAdapter<?> deployableComponent) {
+	public Collection<IExecutionUnitAdapter<?>> getAllowedAllocations(
+			ITaskAdapter<?> deployableComponent) {
 		if(deployableComponent.isInstantiation()) {
 			deployableComponent = deployableComponent.getReplacedComponent();
 		}
@@ -110,8 +107,8 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 
 	/** {@inheritDoc} */
 	@Override
-	public Collection<IExecutionUnitAdapter<?>>
-			getDisAllowedAllocations(ITaskAdapter<?> deployableComponent) {
+	public Collection<IExecutionUnitAdapter<?>> getDisAllowedAllocations(
+			ITaskAdapter<?> deployableComponent) {
 		if(deployableComponent.isInstantiation()) {
 			deployableComponent = deployableComponent.getReplacedComponent();
 		}
@@ -125,9 +122,8 @@ public abstract class InstantiatedTaskMappingEncoding<T extends InstantiatedTask
 	}
 
 	/** {@inheritDoc} */
-	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)InstantiatedTaskMappingEncoding.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return InstantiatedTaskMappingEncoding.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
index a0053d4e..c2b05422 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/.ratings
@@ -1,4 +1,4 @@
-ComposableCreator.java 14cb174847cd3a0882bc4fd17cf8cbe18b2b7f36 RED
-ComposableCreatorBase.java 336e1e319b4a7650851eddf0417f6dd6726afff7 RED
-CompositeCreator.java 65ab9f283191b081e40e8587431fd0a95f1daca6 RED
-CompositeCreatorBase.java ac356e2a17e5929c965f14766d85e609eaf011d2 RED
+ComposableCreator.java 6d2d61205890a2b0b99f41d2caa4debc511c8b4a RED
+ComposableCreatorBase.java e1a898541dd2b480e6c345ad2429bf93393957e6 RED
+CompositeCreator.java bb054d281931f461ca67def20360cc767940e204 RED
+CompositeCreatorBase.java d897947ff0db02ea1cac4034a4912f9afce283ec RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreator.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreator.java
index 5b5a4e83..6d2d6120 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreator.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreator.java
@@ -22,7 +22,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.FlatGenotypeMap;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
@@ -64,8 +63,7 @@ public interface ComposableCreator<G extends ComposableGenotype> {
 	 * @param decoders
 	 *            List of {@link Decoder}s that are executed in the order of the List.
 	 */
-	void registerAssocDecoders(
-			List<ComposableDecoder<G, ? extends ComposablePhenotype<G>>> decoders);
+	void registerAssocDecoders(List<ComposableDecoder<G, ? extends Phenotype>> decoders);
 
 	/**
 	 * Registers {@link Decoder}s that decode the {@link Genotype} created by {@code this}
@@ -95,7 +93,7 @@ public interface ComposableCreator<G extends ComposableGenotype> {
 	 *         {@link Decoder}s.
 	 * @throws DecodingException
 	 */
-	<P extends ComposablePhenotype<G>> FlatPhenotypeMap<Phenotype> decodeCreatedGenotype(G genotype,
+	<P extends Phenotype> FlatPhenotypeMap<Phenotype> decodeCreatedGenotype(G genotype,
 			FlatPhenotypeMap<Phenotype> decodedPhenotypes,
 			Set<Class<? extends Genotype>> createdGenotypeTypeSet) throws DecodingException;
 
@@ -112,8 +110,8 @@ public interface ComposableCreator<G extends ComposableGenotype> {
 	 * @throws DecodingException
 	 *             if the identity decoder fails.
 	 */
-	<P extends ComposablePhenotype<G>> FlatPhenotypeMap<Phenotype> identityDecodeCreatedGenotype(
-			G genotype, FlatPhenotypeMap<Phenotype> decodedPhenotypes) throws DecodingException;
+	<P extends Phenotype> FlatPhenotypeMap<Phenotype> identityDecodeCreatedGenotype(G genotype,
+			FlatPhenotypeMap<Phenotype> decodedPhenotypes) throws DecodingException;
 
 	/** Returns the type of the created {@link IExplorationEncoding} / {@link Genotype}. */
 	Class<? extends IExplorationEncoding> getCreatedEncodingType();
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
index 69bbbb7a..e1a89854 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/ComposableCreatorBase.java
@@ -29,7 +29,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.graph.DecoderDependencyGraph;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.decode.ConstraintGenerationDecoder;
@@ -45,17 +44,16 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public abstract class ComposableCreatorBase<G extends ComposableGenotype>
-		implements ComposableCreator<G> {
+public abstract class ComposableCreatorBase<G extends ComposableGenotype> implements
+		ComposableCreator<G> {
 	/** References the {@link ComposableDecoder}s that decode the created {@link Genotype}. */
-	private List<ComposableDecoder<G, ? extends ComposablePhenotype<G>>> subDecoders =
-			new ArrayList<>();
+	private List<ComposableDecoder<G, ? extends Phenotype>> subDecoders = new ArrayList<>();
 
 	/**
 	 * Captures which {@link ComposableDecoder}s were already executed to avoid multiple executions
 	 * of already executed decoders in the creation phase.
 	 */
-	private Map<ComposableDecoder<G, ? extends ComposablePhenotype<G>>, Boolean> decoderExecuted =
+	private Map<ComposableDecoder<G, ? extends Phenotype>, Boolean> decoderExecuted =
 			new HashMap<>();
 
 	/**
@@ -71,8 +69,7 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 
 	/** {@inheritDoc} */
 	@Override
-	public void registerAssocDecoders(
-			List<ComposableDecoder<G, ? extends ComposablePhenotype<G>>> decoders) {
+	public void registerAssocDecoders(List<ComposableDecoder<G, ? extends Phenotype>> decoders) {
 		subDecoders.addAll(decoders);
 		decoders.forEach(d -> decoderExecuted.put(d, false));
 	}
@@ -82,8 +79,8 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 	@Override
 	final public void registerAssocDecoders(ComposableDecoder<G, ?>... decoders) {
 		for(ComposableDecoder<G, ?> dec : decoders) {
-			@SuppressWarnings("unchecked") ComposableDecoder<G, ? extends ComposablePhenotype<G>> castedDec =
-					(ComposableDecoder<G, ? extends ComposablePhenotype<G>>)dec;
+			@SuppressWarnings("unchecked") ComposableDecoder<G, ? extends Phenotype> castedDec =
+					dec;
 			subDecoders.add(castedDec);
 			decoderExecuted.put(castedDec, false);
 		}
@@ -96,8 +93,8 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public <P extends ComposablePhenotype<G>> FlatPhenotypeMap<Phenotype> decodeCreatedGenotype(
-			G genotype, FlatPhenotypeMap<Phenotype> decodedPhenotypes,
+	public <P extends Phenotype> FlatPhenotypeMap<Phenotype> decodeCreatedGenotype(G genotype,
+			FlatPhenotypeMap<Phenotype> decodedPhenotypes,
 			Set<Class<? extends Genotype>> createdGenotypeTypeSet) throws DecodingException {
 		FlatPhenotypeMap<Phenotype> phenotypes = new FlatPhenotypeMap<>();
 		Collection<Class<? extends IExplorationEncoding>> reqPhenotypeTypes =
@@ -106,11 +103,12 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 		intermediatePhenos.addAll(decodedPhenotypes);
 
 		Optional<? extends ComposableDecoder<G, P>> idDecoder =
-				(Optional<? extends ComposableDecoder<G, P>>)subDecoders.stream().filter(
-						d -> Arrays.asList(genotype.getClass()).containsAll(d.getRequiredTypes()))
-						.findAny();
+				(Optional<? extends ComposableDecoder<G, P>>)subDecoders
+						.stream()
+						.filter(d -> Arrays.asList(genotype.getClass()).containsAll(
+								d.getRequiredTypes())).findAny();
 
-		for(ComposableDecoder<G, ? extends ComposablePhenotype<G>> decoder : subDecoders) {
+		for(ComposableDecoder<G, ? extends Phenotype> decoder : subDecoders) {
 			/*
 			 * if(!isHybridPhenoRequiredAndCreated(createdGenotypeTypeSet,
 			 * decoder.getRequiredTypes()) ||
@@ -136,8 +134,8 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 
 				if(decPhenotype != null) {
 					if(decPhenotype instanceof TaskMappingEncoding &&
-							!ExplorationAlgDebugUtils.checkTaskMappingForSFConsistency(
-									(TaskMappingEncoding<ITaskAdapter<?>, ?>)decPhenotype)) {
+							!ExplorationAlgDebugUtils
+									.checkTaskMappingForSFConsistency((TaskMappingEncoding<ITaskAdapter<?>, ?>)decPhenotype)) {
 						// TODO: Remove this debug code. Is an Exception required instead?
 						System.out.println("Error.");
 					}
@@ -152,9 +150,8 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 
 	/** {@inheritDoc} */
 	@Override
-	public <P extends ComposablePhenotype<G>> FlatPhenotypeMap<Phenotype>
-			identityDecodeCreatedGenotype(G genotype, FlatPhenotypeMap<Phenotype> decodedPhenotypes)
-					throws DecodingException {
+	public <P extends Phenotype> FlatPhenotypeMap<Phenotype> identityDecodeCreatedGenotype(
+			G genotype, FlatPhenotypeMap<Phenotype> decodedPhenotypes) throws DecodingException {
 		FlatPhenotypeMap<Phenotype> phenotypes = new FlatPhenotypeMap<>();
 		FlatPhenotypeMap<Phenotype> intermediatePhenos = new FlatPhenotypeMap<>();
 		intermediatePhenos.addAll(decodedPhenotypes);
@@ -162,9 +159,10 @@ public abstract class ComposableCreatorBase<G extends ComposableGenotype>
 		// If an identity decoder is present, execute it before any other decoder to ensure all
 		// required data is available to the decoders.
 		@SuppressWarnings("unchecked") Optional<? extends ComposableDecoder<G, P>> idDecoder =
-				(Optional<? extends ComposableDecoder<G, P>>)subDecoders.stream().filter(
-						d -> Arrays.asList(genotype.getClass()).containsAll(d.getRequiredTypes()))
-						.findAny();
+				(Optional<? extends ComposableDecoder<G, P>>)subDecoders
+						.stream()
+						.filter(d -> Arrays.asList(genotype.getClass()).containsAll(
+								d.getRequiredTypes())).findAny();
 		if(idDecoder.isPresent()) {
 			P decPhenotype = idDecoder.get().decodeComposable(genotype, intermediatePhenos);
 			if(decPhenotype == null) {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreator.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreator.java
index 152e09ec..bb054d28 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreator.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreator.java
@@ -17,7 +17,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.opt4j.core.genotype.CompositeGenotype;
 import org.opt4j.core.problem.Creator;
 
@@ -39,8 +39,8 @@ public interface CompositeCreator<G extends CompositeGenotype<Class<? extends Co
 	 * 
 	 * @throws DecodingException
 	 */
-	<N extends ComposableGenotype, P extends ComposablePhenotype<N>> void createSubGenotypes(
-			G compositeGenotype) throws DecodingException;
+	<N extends ComposableGenotype, P extends Phenotype> void
+			createSubGenotypes(G compositeGenotype) throws DecodingException;
 
 	/**
 	 * Registers a {@link Creator} of a {@link ComposableGenotype} with this
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
index 88bb3e8d..d897947f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/create/CompositeCreatorBase.java
@@ -21,7 +21,6 @@ import java.util.List;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.FlatGenotypeMap;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
@@ -63,8 +62,8 @@ public abstract class CompositeCreatorBase<G extends CompositeGenotype<Class<? e
 	 */
 	// TODO: Also requires the dependency graph?
 	@Override
-	public <N extends ComposableGenotype, P extends ComposablePhenotype<N>> void
-			createSubGenotypes(G compositeGenotype) throws DecodingException {
+	public <N extends ComposableGenotype, P extends Phenotype> void createSubGenotypes(
+			G compositeGenotype) throws DecodingException {
 		FlatGenotypeMap createdGenotypes = new FlatGenotypeMap();
 		FlatPhenotypeMap<Phenotype> decodedPhenotypes = new FlatPhenotypeMap<>();
 
@@ -86,8 +85,8 @@ public abstract class CompositeCreatorBase<G extends CompositeGenotype<Class<? e
 
 			// Directly execute the identity decoders. They have no other dependencies, but allow
 			// the access to the created
-			decodedPhenotypes.addAll(
-					castedCreator.identityDecodeCreatedGenotype(subGenotype, decodedPhenotypes));
+			decodedPhenotypes.addAll(castedCreator.identityDecodeCreatedGenotype(subGenotype,
+					decodedPhenotypes));
 
 			// TODO #checking: invoke the checking here.
 
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
index 2600abd4..220d028a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/.ratings
@@ -1,5 +1,7 @@
-ComposableDecoder.java 197abec80b880e25fccfc66d61b471b0b5d7e10f RED
-ComposableDecoderBase.java 96e7e4b9f24902b2699e04401225935108cc0d29 YELLOW
-CompositeDecoder.java 9d34dd0b342e6433ab894974f9430531ce2de39a RED
-CompositeDecoderBase.java 1bc1860ed616010f7f459ed6579989f155f607c2 RED
-PhenotypeDecoder.java 44079e8545aaf8b8729919f0b07c774c3ca0df06 RED
+ComposableDecoder.java 0ef247e0e8424968cd8dab8317df0e504c5018d4 RED
+ComposableDecoderBase.java 7a4c510bcdff54df5b27045d06db4ee923f995e2 RED
+CompositeDecoder.java 68864146cbd7b0d1444d4157cf88023deb4a21ea RED
+CompositeDecoderBase.java cc878483ec3dcf3afd60509579c7c17a3433893c RED
+GuiceDecoder.java eb0fec9132b95dd8ecd07c134339ec93e9fbb3b7 RED
+GuicePhenotype.java 36deb82848fd14c0bf2649f9cb0553f24de68e9a RED
+PhenotypeDecoder.java 82766d64d8d6d0aa02078921517848c3585240a6 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoder.java
index cedb145d..0ef247e0 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoder.java
@@ -17,7 +17,6 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.problem.CompositeProblemModuleBase;
@@ -33,8 +32,8 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public interface ComposableDecoder<G extends ComposableGenotype, P extends ComposablePhenotype<?>>
-		extends IDependencyModule<IExplorationEncoding, P> {
+public interface ComposableDecoder<G extends ComposableGenotype, P extends Phenotype> extends
+		IDependencyModule<IExplorationEncoding, P> {
 
 	/**
 	 * Returns the most relevant {@link Genotype} used for the Decoder whereas other dependencies
@@ -44,7 +43,7 @@ public interface ComposableDecoder<G extends ComposableGenotype, P extends Compo
 
 	/**
 	 * Passes the {@link ComposableGenotype} to the concrete decode method of the concrete
-	 * {@link ComposableDecoder} and returns the resulting {@link ComposablePhenotype}.
+	 * {@link ComposableDecoder} and returns the resulting {@link Phenotype}.
 	 * <p>
 	 * <b>Implementation note:</b> <br>
 	 * The body of the method typically looks as follows: <br>
@@ -52,7 +51,7 @@ public interface ComposableDecoder<G extends ComposableGenotype, P extends Compo
 	 * 
 	 * @genotype The concrete {@link ComposableGenotype} that shall be decoded.
 	 * 
-	 * @returns The concrete {@link ComposablePhenotype} resulting form the decoding.
+	 * @returns The concrete {@link Phenotype} resulting form the decoding.
 	 * 
 	 * @throws DecodingException
 	 *             If decoding the given {@link Genotype} is not possible.
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java
index 58a6cd79..7a4c510b 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/ComposableDecoderBase.java
@@ -19,7 +19,7 @@ import java.util.Collection;
 import java.util.Collections;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 
 import com.google.common.reflect.TypeToken;
 
@@ -28,14 +28,14 @@ import com.google.common.reflect.TypeToken;
  * 
  * @author diewald
  */
-public abstract class ComposableDecoderBase<G extends ComposableGenotype, P extends ComposablePhenotype<?>>
+public abstract class ComposableDecoderBase<G extends ComposableGenotype, P extends Phenotype>
 		implements ComposableDecoder<G, P> {
 	/** Type information: Concrete input genotype of the decoder. */
 	private TypeToken<G> genotype = new TypeToken<G>(getClass()) { // Empty class
-	};
+			};
 	/** Type information: Concrete input phenotype of the decoder. */
 	private TypeToken<P> phenotype = new TypeToken<P>(getClass()) { // Empty class
-	};
+			};
 
 	/** {@inheritDoc} */
 	@Override
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoder.java
index d22c97b5..68864146 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoder.java
@@ -18,8 +18,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 import java.util.Map;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.jgrapht.experimental.dag.DirectedAcyclicGraph.CycleFoundException;
 import org.opt4j.core.Genotype;
 import org.opt4j.core.genotype.CompositeGenotype;
@@ -32,7 +31,7 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public interface CompositeDecoder<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ? extends ComposableGenotype>, P extends CompositePhenotype<? extends Genotype>>
+public interface CompositeDecoder<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ? extends ComposableGenotype>, P extends Phenotype>
 		extends Decoder<C, P> {
 
 	/**
@@ -43,18 +42,17 @@ public interface CompositeDecoder<C extends CompositeGenotype<Class<? extends Co
 	 *            Map relating the sub-{@link Genotype}s with their decoding result (aka phenotype).
 	 * @return The {@link CompositeGenotype} {#link P} or {@code null} if the merge fails.
 	 */
-	<CP extends ComposablePhenotype<? extends Genotype>> P
-			mergeSubPhenotypes(Map<Class<CP>, CP> subPhenotypes);
+	<CP extends Phenotype> P mergeSubPhenotypes(Map<Class<CP>, CP> subPhenotypes);
 
 	/**
-	 * Adds a {@link ComposableDecoder} for the given {@link ComposablePhenotype}. The decoding
+	 * Adds a {@link ComposableDecoder} for the given {@link Phenotype}. The decoding
 	 * will triggered automatically and user defined merge function will consider the resulting
-	 * {@link ComposablePhenotype} of this {@link ComposableDecoder}.
+	 * {@link Phenotype} of this {@link ComposableDecoder}.
 	 * 
 	 * @throws CycleFoundException
 	 *             if a circular dependency between decoders exist.
 	 */
 	// TODO: add doc for exception.
-	<G extends ComposableGenotype, CP extends ComposablePhenotype<G>, D extends ComposableDecoder<G, CP>>
-			void registerSubDecoder(Class<G> subGenotype, D subDecoder) throws CycleFoundException;
+	<G extends ComposableGenotype, CP extends Phenotype, D extends ComposableDecoder<G, CP>> void
+			registerSubDecoder(Class<G> subGenotype, D subDecoder) throws CycleFoundException;
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
index 15d6562e..cc878483 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/CompositeDecoderBase.java
@@ -28,8 +28,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.MissingDependencyException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.graph.DecoderDependencyGraph;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
@@ -44,7 +42,7 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends CompositePhenotype<?>>
+public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends Phenotype>
 		implements CompositeDecoder<C, P> {
 	/**
 	 * References the {@link DecoderDependencyGraph} which defines execution orders and which
@@ -53,26 +51,26 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	protected DecoderDependencyGraph depGraph;
 
 	/**
-	 * Collection of {@link ComposablePhenotype} types that are needed to generated the {#link
+	 * Collection of {@link Phenotype} types that are needed to generated the {#link
 	 * requestedPhenotypeTypes}.
 	 */
 	Collection<Class<? extends Phenotype>> requiredPhenotypeTypes;
 
 	/**
-	 * Collection of {@link ComposablePhenotype}s that were externally demanded as a solution to
+	 * Collection of {@link Phenotype}s that were externally demanded as a solution to
 	 * input DSE problem.
 	 */
 	Collection<Class<? extends Phenotype>> requestedPhenotypeTypes;
 
 	/** Relates decoders with the {@link Genotype}-Type that they decode. */
-	private Map<ComposableDecoder<? extends ComposableGenotype, ? extends ComposablePhenotype<?>>, Class<? extends ComposableGenotype>> registeredSubDecoders =
+	private Map<ComposableDecoder<? extends ComposableGenotype, ? extends Phenotype>, Class<? extends ComposableGenotype>> registeredSubDecoders =
 			new HashMap<>();
 
 	/**
 	 * {@link LinkedHashMap} referencing the required decoders for the given optimization problem
 	 * that respects the execution order calculated by the {@link DecoderDependencyGraph}.
 	 */
-	private LinkedHashMap<ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>, Class<? extends ComposableGenotype>> subDecoders =
+	private LinkedHashMap<ComposableDecoder<ComposableGenotype, Phenotype>, Class<? extends ComposableGenotype>> subDecoders =
 			new LinkedHashMap<>();
 
 	/**
@@ -98,8 +96,7 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	 * @param genotype
 	 *            {@link Genotype} (i.e., a {@link CompositeGenotype}) for which the sub-decoders
 	 *            will be launched.
-	 * @return The decoded {@link CompositePhenotype} which contains the decoded
-	 *         {@link ComposablePhenotype}s.
+	 * @return The decoded {@link Phenotype} which contains the decoded {@link Phenotype}s.
 	 * @throws DecodingException
 	 *             if a required {@link ComposableDecoder} is not registered, or one of the
 	 *             sub-Decoders produces an error.
@@ -107,26 +104,29 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	 *             if some required {@link IExplorationEncoding} of a {@link ComposableDecoder} is
 	 *             not provided by another one, a {@link ComposableCreator}.
 	 */
-	public <SP extends Genotype, CG extends ComposableGenotype, CP extends ComposablePhenotype<CG>>
-			P decodeInternal(C genotype) throws DecodingException, MissingDependencyException {
+	public <SP extends Genotype, CG extends ComposableGenotype, CP extends Phenotype> P
+			decodeInternal(C genotype) throws DecodingException, MissingDependencyException {
 		Map<Class<CP>, CP> subPhenotypes = new HashMap<>();
 		FlatPhenotypeMap<Phenotype> decodedPhenotypes = new FlatPhenotypeMap<>();
 		if(!isDecoderRegistrationChecked) {
 			isDecoderRegistrationChecked = true;
 			for(ComposableDecoder<?, ?> decoder : depGraph.getOperatorExecOrder()) {
 				if(registeredSubDecoders.containsKey(decoder)) {
-					@SuppressWarnings("unchecked") ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>> castedDecoder =
-							(ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>)decoder;
+					@SuppressWarnings("unchecked") ComposableDecoder<ComposableGenotype, Phenotype> castedDecoder =
+							(ComposableDecoder<ComposableGenotype, Phenotype>)decoder;
 					subDecoders.put(castedDecoder, registeredSubDecoders.get(decoder));
 				} else {
-					throw new DecodingException(genotype, decoder, "The sub-decoder " +
-							decoder.getClass().getSimpleName() +
-							" has been found in the dependency graph but it has not been regirstered at this composite decoder.");
+					throw new DecodingException(
+							genotype,
+							decoder,
+							"The sub-decoder " +
+									decoder.getClass().getSimpleName() +
+									" has been found in the dependency graph but it has not been regirstered at this composite decoder.");
 				}
 			}
 		}
 
-		for(Entry<ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>, Class<? extends ComposableGenotype>> decodeEntry : subDecoders
+		for(Entry<ComposableDecoder<ComposableGenotype, Phenotype>, Class<? extends ComposableGenotype>> decodeEntry : subDecoders
 				.entrySet()) {
 			@SuppressWarnings("unchecked") Class<CG> genotypeKey =
 					(Class<CG>)decodeEntry.getValue();
@@ -142,8 +142,9 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 			// shall not be just overridden.
 			if(Genotype.class.isAssignableFrom(decType)) {
 				CP oldGenotype = genotype.get(decType);
-				curPhenotype = castedDecoder.updateComposable(decodeableGenotype, oldGenotype,
-						decodedPhenotypes);
+				curPhenotype =
+						castedDecoder.updateComposable(decodeableGenotype, oldGenotype,
+								decodedPhenotypes);
 			} else {
 				curPhenotype =
 						castedDecoder.decodeComposable(decodeableGenotype, decodedPhenotypes);
@@ -207,8 +208,8 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	 * that is used to calculate an dependent Phenotype.
 	 */
 	@SuppressWarnings("unchecked")
-	private <V extends ComposableGenotype, M extends ComposablePhenotype<?>> void
-			addHybridGenoPhenotype(C genotype, M curPhenotype, Class<M> penotypeClass) {
+	private <V extends ComposableGenotype, M extends Phenotype> void addHybridGenoPhenotype(
+			C genotype, M curPhenotype, Class<M> penotypeClass) {
 		for(Class<? extends ComposableGenotype> registeredType : genotype.keySet()) {
 			if(registeredType.isAssignableFrom(penotypeClass)) {
 				genotype.put((Class<V>)penotypeClass, (V)curPhenotype);
@@ -227,7 +228,7 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 	 */
 	@SuppressWarnings("unchecked")
 	@Override
-	public <G extends ComposableGenotype, CP extends ComposablePhenotype<G>, D extends ComposableDecoder<G, CP>>
+	public <G extends ComposableGenotype, CP extends Phenotype, D extends ComposableDecoder<G, CP>>
 			void registerSubDecoder(Class<G> subGenotype, D subDecoder) throws CycleFoundException {
 		if(subGenotype == null || subDecoder == null) {
 			return;
@@ -236,8 +237,8 @@ public abstract class CompositeDecoderBase<C extends CompositeGenotype<Class<? e
 		registeredSubDecoders.put(subDecoder,
 				(Class<? extends ComposableGenotype>)subDecoder.getPrimaryInputType());
 
-		ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>> castedSubDecoder =
-				(ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>)subDecoder;
+		ComposableDecoder<ComposableGenotype, Phenotype> castedSubDecoder =
+				(ComposableDecoder<ComposableGenotype, Phenotype>)subDecoder;
 		depGraph.addOperator(castedSubDecoder);
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuiceDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuiceDecoder.java
new file mode 100644
index 00000000..eb0fec91
--- /dev/null
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuiceDecoder.java
@@ -0,0 +1,47 @@
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode;
+
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.opt4j.core.Genotype;
+import org.opt4j.core.problem.Decoder;
+
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+/**
+ * 
+ * @author diewald
+ */
+public class GuiceDecoder implements Decoder<Genotype, GuicePhenotype> {
+
+	protected GuicePhenotype composedPhenotype;
+
+	@Inject
+	Class<Phenotype> resultType;
+
+	@Inject
+	protected Injector decoderInjector;
+
+	/** {@inheritDoc} */
+	@Override
+	public GuicePhenotype decode(Genotype genotype) {
+		// The decode operations are responsible to add the results of the decode operation to the
+		// parent phenotype.
+		Phenotype resultPhenotype = decoderInjector.getInstance(resultType);
+		return composedPhenotype;
+	}
+}
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/ComposablePhenotype.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuicePhenotype.java
similarity index 68%
rename from org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/ComposablePhenotype.java
rename to org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuicePhenotype.java
index a9f2f81f..36deb828 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/ComposablePhenotype.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/GuicePhenotype.java
@@ -1,34 +1,26 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2015 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
-
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.opt4j.core.Genotype;
-
-/**
- * Interface for {@link Phenotype}s that compose a {@link CompositePhenotype}. Counterpart to
- * {@link ComposableGenotype}.
- * 
- * @author diewald
- */
-public interface ComposablePhenotype<G extends Genotype> extends Phenotype {
-
-	/**
-	 * Returns the type which shall be used to register the {@link ComposablePhenotype} at its
-	 * containing {@link CompositePhenotype}.
-	 */
-	Class<? extends ComposablePhenotype<?>> getPTypeToRegister();
-}
+/*-------------------------------------------------------------------------+
+| Copyright 2018 fortiss GmbH                                              |
+|                                                                          |
+| Licensed under the Apache License, Version 2.0 (the "License");          |
+| you may not use this file except in compliance with the License.         |
+| You may obtain a copy of the License at                                  |
+|                                                                          |
+|    http://www.apache.org/licenses/LICENSE-2.0                            |
+|                                                                          |
+| Unless required by applicable law or agreed to in writing, software      |
+| distributed under the License is distributed on an "AS IS" BASIS,        |
+| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
+| See the License for the specific language governing permissions and      |
+| limitations under the License.                                           |
++--------------------------------------------------------------------------*/
+package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode;
+
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
+
+/**
+ * 
+ * @author diewald
+ */
+public class GuicePhenotype extends PhenotypeBase {
+
+}
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/PhenotypeDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/PhenotypeDecoder.java
index 0f60dabc..82766d64 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/PhenotypeDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/decode/PhenotypeDecoder.java
@@ -18,7 +18,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 import java.util.Collection;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.problem.CompositeProblemModuleBase;
@@ -41,7 +41,7 @@ public interface PhenotypeDecoder<P extends Phenotype> {
 	 * @param decodedPhenotypes
 	 *            Map of already decoded {@link Phenotype}s.
 	 * 
-	 * @returns The concrete {@link ComposablePhenotype} resulting form the decoding.
+	 * @returns The concrete {@link Phenotype} resulting form the decoding.
 	 * 
 	 * @throws DecodingException
 	 *             If decoding the given {@link Genotype} is not possible.
@@ -60,7 +60,7 @@ public interface PhenotypeDecoder<P extends Phenotype> {
 	 * @param decodedPhenotypes
 	 *            Map of already decoded {@link Phenotype}s.
 	 * 
-	 * @returns The concrete {@link ComposablePhenotype} resulting form the decoding.
+	 * @returns The concrete {@link Phenotype} resulting form the decoding.
 	 * 
 	 * @throws DecodingException
 	 *             If decoding the given {@link Genotype} is not possible.
@@ -69,7 +69,7 @@ public interface PhenotypeDecoder<P extends Phenotype> {
 			throws DecodingException;
 
 	/**
-	 * Returns the collection of {@link ComposablePhenotype} types that are required as direct
+	 * Returns the collection of {@link Phenotype} types that are required as direct
 	 * inputs to this {@link PhenotypeDecoder}.
 	 */
 	Collection<Class<? extends IExplorationEncoding>> getRequiredPhenotypeTypes();
@@ -81,6 +81,6 @@ public interface PhenotypeDecoder<P extends Phenotype> {
 	 */
 	Collection<Class<? extends IExplorationEncoding>> getOptionalEncodingTypes();
 
-	/** Returns the type of the decoded {@link ComposablePhenotype}. */
+	/** Returns the type of the decoded {@link Phenotype}. */
 	Class<? extends Phenotype> getDecodedPhenotypeType();
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
index 3740a0d2..b011da1e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/.ratings
@@ -1,3 +1,3 @@
-ComposableEvaluator.java 5882908b5b90aa31bcf806cbfca047d2d0725640 RED
-CompositeEvaluator.java 185b9a6776a419ce0fc2adae31eced97c0d756d5 RED
-CompositeEvaluatorBase.java a7e7f0d30206ef74b7c6f4b8f1244433ec3f8cc6 RED
+ComposableEvaluator.java bd332c13b22a8608ac0e42edbb423fd2adf84140 RED
+CompositeEvaluator.java 9301bc973ccc4b0fd46d70e6101e173cca691439 RED
+CompositeEvaluatorBase.java dbe962b02445b989a624969ae74e212897c6090f RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/ComposableEvaluator.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/ComposableEvaluator.java
index b6ae0272..bd332c13 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/ComposableEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/ComposableEvaluator.java
@@ -16,7 +16,6 @@
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.evaluate;
 
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.opt4j.core.Objectives;
@@ -25,13 +24,13 @@ import org.opt4j.core.problem.Evaluator;
 import com.google.common.collect.ClassToInstanceMap;
 
 /**
- * Common interface of {@link Evaluator}s of {@link ComposablePhenotype}s.
+ * Common interface of {@link Evaluator}s of {@link Phenotype}s.
  * 
  * @author diewald
  */
 public interface ComposableEvaluator<P extends Object> {
 	/**
-	 * Passes the {@link ComposablePhenotype} to the concrete evaluate method of the concrete
+	 * Passes the {@link Phenotype} to the concrete evaluate method of the concrete
 	 * {@link ComposableEvaluator} and returns the resulting {@link Objectives}.
 	 * <p>
 	 * <b>Implementation note:</b> <br>
@@ -39,7 +38,7 @@ public interface ComposableEvaluator<P extends Object> {
 	 * {@code return decode((ConecretePhenotype)phenotype);}
 	 * 
 	 * @param clazz
-	 *            Type of the {@link ComposablePhenotype} to be evaluated.
+	 *            Type of the {@link Phenotype} to be evaluated.
 	 * @param phenotype
 	 *            The concrete {@link Phenotype} that shall be decoded.
 	 * @param phenotypes
@@ -48,7 +47,6 @@ public interface ComposableEvaluator<P extends Object> {
 	 *            TODO
 	 * @returns The concrete evaluation results in the form of {@link Objectives}.
 	 */
-	<CP extends ComposablePhenotype<?>> Objectives evaluateComposable(Class<CP> clazz,
-			CP phenotype, FlatPhenotypeMap<Phenotype> phenotypes,
-			ClassToInstanceMap<EObject> transformedModels);
+	<CP extends Phenotype> Objectives evaluateComposable(Class<CP> clazz, CP phenotype,
+			FlatPhenotypeMap<Phenotype> phenotypes, ClassToInstanceMap<EObject> transformedModels);
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluator.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluator.java
index 1c637049..9301bc97 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluator.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluator.java
@@ -18,33 +18,32 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 import java.util.Collection;
 import java.util.Set;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.opt4j.core.Objectives;
 import org.opt4j.core.Value;
 import org.opt4j.core.genotype.CompositeGenotype;
 import org.opt4j.core.problem.Evaluator;
 
 /**
- * Interface for evaluators of {@link CompositePhenotype}s. It defines a 'merge' method that each
+ * Interface for evaluators of {@link Phenotype}s. It defines a 'merge' method that each
  * concrete {@link CompositeEvaluator} must implement and which describes how the single
- * {@link ComposablePhenotype}s are merged into a {@link CompositePhenotype}.
+ * {@link Phenotype}s are merged into a {@link Phenotype}.
  * 
  * @author diewald
  */
 public interface CompositeEvaluator<P> extends Evaluator<P> {
 
 	/**
-	 * Adds a {@link ComposableEvaluator} for the given {@link ComposablePhenotype} class. The
+	 * Adds a {@link ComposableEvaluator} for the given {@link Phenotype} class. The
 	 * evaluation will be triggered automatically by the evaluation of the {@link CompositeGenotype}
 	 * and user defined merge function will consider the resulting {@link Objectives} of this
 	 * {@link ComposableEvaluator}, if desired.
 	 */
-	<S extends ComposablePhenotype<?>> void registerSubEvaluator(Class<S> subPhenotype,
+	<S extends Phenotype> void registerSubEvaluator(Class<S> subPhenotype,
 			ComposableEvaluator<S> subEvaluator) throws Exception;
 
 	/**
-	 * Merges the evaluations of {@link ComposablePhenotype}s into an evaluation of the overall
+	 * Merges the evaluations of {@link Phenotype}s into an evaluation of the overall
 	 * {@link CompositeGenotype}.
 	 */
 	Value<?> mergeSubEvaluations(Collection<Value<?>> results);
@@ -53,12 +52,12 @@ public interface CompositeEvaluator<P> extends Evaluator<P> {
 	 * Returns the collection of {@link ComposableEvaluator}s registered for this
 	 * {@link ComposableEvaluator}.
 	 */
-	Collection<ComposableEvaluator<? extends ComposablePhenotype<?>>> getSubEvaluators();
+	Collection<ComposableEvaluator<? extends Phenotype>> getSubEvaluators();
 
 	/**
 	 * Returns the collection of {@link ComposableEvaluator}s registered for this
 	 * {@link ComposableEvaluator} and all its children. Recursive version of
 	 * {@link #getSubEvaluators()}.
 	 */
-	Set<ComposableEvaluator<? extends ComposablePhenotype<?>>> getAllSubEvaluators();
+	Set<ComposableEvaluator<? extends Phenotype>> getAllSubEvaluators();
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
index 0cce028e..dbe962b0 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/evaluate/CompositeEvaluatorBase.java
@@ -28,8 +28,6 @@ import java.util.Set;
 
 import org.eclipse.emf.ecore.EObject;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.EvaluatorWrapper;
@@ -49,12 +47,11 @@ import com.google.common.collect.Multimap;
 import com.google.common.collect.MutableClassToInstanceMap;
 
 /**
- * Base class for Evaluators of {@link CompositePhenotype}s.
+ * Base class for Evaluators of {@link Phenotype}s.
  * 
  * @author diewald
  */
-public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
-		implements CompositeEvaluator<P> {
+public abstract class CompositeEvaluatorBase<P extends Phenotype> implements CompositeEvaluator<P> {
 	/** Flag to mark that marks the top-most evaluator in the composite structure. */
 	protected boolean isTopLevelEvaluator = false;
 
@@ -68,13 +65,12 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 	protected Collection<Class<? extends EObject>> requiredTransformedModelTypes;
 
 	/**
-	 * Correlates the {@link ComposablePhenotype}s with the corresponding
-	 * {@link ComposableEvaluator}s forming this CompositeEvaluator.
+	 * Correlates the {@link Phenotype}s with the corresponding {@link ComposableEvaluator}s forming
+	 * this CompositeEvaluator.
 	 */
 	@SuppressWarnings("unchecked")
-	private SubClassToInstanceMultiMap<ComposablePhenotype<?>, ComposableEvaluator<? extends ComposablePhenotype<?>>> subEvaluators =
-			new SubClassToInstanceMultiMap<>(
-					(Class<? extends ComposablePhenotype<?>>)ComposablePhenotype.class);
+	private SubClassToInstanceMultiMap<Phenotype, ComposableEvaluator<? extends Phenotype>> subEvaluators =
+			new SubClassToInstanceMultiMap<>(Phenotype.class);
 
 	/** Constructor. */
 	public CompositeEvaluatorBase() {
@@ -86,7 +82,7 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 	/**
 	 * Performs the initialization of {@code this} {@link CompositeEvaluator} that cannot be done in
 	 * the constructor, e.g., due to the missing registration of sub evaluators.
-	 * It is executed when {@link #evaluateInternal(CompositePhenotype)} is executed for the first
+	 * It is executed when {@link #evaluateInternal(Phenotype)} is executed for the first
 	 * time of this instance.
 	 */
 	protected void init() {
@@ -101,8 +97,8 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 					e -> allSubEvaluators.add(((EvaluatorWrapper<?, ?, ?>)e).getEvaluator()));
 
 			@SuppressWarnings("unchecked") Collection<Class<? extends EObject>> tempReqModels =
-					getService(IExplorationEvaluatationService.class)
-							.getRequiredTransformedModels(allSubEvaluators);
+					getService(IExplorationEvaluatationService.class).getRequiredTransformedModels(
+							allSubEvaluators);
 			requiredTransformedModelTypes = tempReqModels;
 		}
 	}
@@ -116,7 +112,7 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 	 *            {@link ExplorationSpecification}.
 	 * @return Evaluation result as {@link Objectives}.
 	 */
-	public <S extends ComposablePhenotype<?>> Objectives evaluateInternal(P phenotype) {
+	public <S extends Phenotype> Objectives evaluateInternal(P phenotype) {
 		init();
 
 		Multimap<Objective, Value<?>> subObjectivesEvaluations = HashMultimap.create();
@@ -146,23 +142,21 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 			}
 		}
 
-		Iterator<Entry<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>>> phenoIter =
-				phenotype.iterator();
+		Iterator<Entry<Class<? extends Phenotype>, Phenotype>> phenoIter = phenotype.iterator();
 		while(phenoIter.hasNext()) {
-			Entry<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>> phenoEntry =
-					phenoIter.next();
+			Entry<Class<? extends Phenotype>, Phenotype> phenoEntry = phenoIter.next();
 			@SuppressWarnings("unchecked") S subPhenotype = (S)phenoEntry.getValue();
 			@SuppressWarnings("unchecked") Class<S> key = (Class<S>)phenoEntry.getKey();
-			@SuppressWarnings("unchecked") Collection<ComposableEvaluator<? extends ComposablePhenotype<?>>> phenoSubEvaluators =
-					subEvaluators.get((Class<? extends ComposablePhenotype<?>>)phenoEntry.getValue()
-							.getClass());
+			@SuppressWarnings("unchecked") Collection<ComposableEvaluator<? extends Phenotype>> phenoSubEvaluators =
+					subEvaluators.get(phenoEntry.getValue().getClass());
 			if(phenoSubEvaluators != null) {
 				// If no subEvaluator is registered, only decoding shall be performed -> no
 				// evaluation.
 				Objectives evalResults = new Objectives();
-				for(ComposableEvaluator<? extends ComposablePhenotype<?>> subEvaluator : phenoSubEvaluators) {
-					evalResults = subEvaluator.evaluateComposable(key, subPhenotype,
-							phenotypeTypeMap, transformedModels);
+				for(ComposableEvaluator<? extends Phenotype> subEvaluator : phenoSubEvaluators) {
+					evalResults =
+							subEvaluator.evaluateComposable(key, subPhenotype, phenotypeTypeMap,
+									transformedModels);
 					Iterator<Entry<Objective, Value<?>>> resultIterator = evalResults.iterator();
 					while(resultIterator.hasNext()) {
 						Entry<Objective, Value<?>> result = resultIterator.next();
@@ -204,18 +198,16 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 
 	/** {@inheritDoc} */
 	@Override
-	public <S extends ComposablePhenotype<?>> void registerSubEvaluator(Class<S> subPhenotype,
+	public <S extends Phenotype> void registerSubEvaluator(Class<S> subPhenotype,
 			ComposableEvaluator<S> subEvaluator) throws Exception {
 		subEvaluators.put(subPhenotype, subEvaluator);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public Collection<ComposableEvaluator<? extends ComposablePhenotype<?>>> getSubEvaluators() {
-		Collection<ComposableEvaluator<? extends ComposablePhenotype<?>>> allSubEvaluators =
-				new HashSet<>();
-		for(ComposableEvaluator<? extends ComposablePhenotype<?>> evaluators : subEvaluators
-				.values()) {
+	public Collection<ComposableEvaluator<? extends Phenotype>> getSubEvaluators() {
+		Collection<ComposableEvaluator<? extends Phenotype>> allSubEvaluators = new HashSet<>();
+		for(ComposableEvaluator<? extends Phenotype> evaluators : subEvaluators.values()) {
 			allSubEvaluators.add(evaluators);
 		}
 		return allSubEvaluators;
@@ -223,9 +215,8 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 
 	/** {@inheritDoc} */
 	@Override
-	public Set<ComposableEvaluator<? extends ComposablePhenotype<?>>> getAllSubEvaluators() {
-		Set<ComposableEvaluator<? extends ComposablePhenotype<?>>> allSubEvaluators =
-				new HashSet<>();
+	public Set<ComposableEvaluator<? extends Phenotype>> getAllSubEvaluators() {
+		Set<ComposableEvaluator<? extends Phenotype>> allSubEvaluators = new HashSet<>();
 		// Get the direct sub-Evaluators.
 		allSubEvaluators.addAll(subEvaluators.values());
 
@@ -240,10 +231,10 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 	}
 
 	/**
-	 * Constructs a flattened version of the given {@link CompositePhenotype}, i.e. a
+	 * Constructs a flattened version of the given {@link Phenotype}, i.e. a
 	 * {@link FlatPhenotypeMap}.
 	 */
-	private <G extends Genotype, CP extends CompositePhenotype<?>, SP extends ComposablePhenotype<G>>
+	private <G extends Genotype, CP extends Phenotype, SP extends Phenotype>
 			FlatPhenotypeMap<Phenotype> constructPhenotypeMap(CP phenotype) {
 		FlatPhenotypeMap<Phenotype> phenotypeTypeMap = new FlatPhenotypeMap<>();
 		@SuppressWarnings("unchecked") LinkedList<SP> subPhenotypes =
@@ -253,9 +244,9 @@ public abstract class CompositeEvaluatorBase<P extends CompositePhenotype<?>>
 			@SuppressWarnings("unchecked") Class<SP> currSupPhenotypeType =
 					(Class<SP>)currSubPhenotype.getClass();
 			phenotypeTypeMap.putEncoding(currSupPhenotypeType, currSubPhenotype);
-			if(CompositePhenotype.class.isAssignableFrom(currSubPhenotype.getClass())) {
+			if(Phenotype.class.isAssignableFrom(currSubPhenotype.getClass())) {
 				@SuppressWarnings("unchecked") List<SP> subPhenos =
-						(List<SP>)((CompositePhenotype<?>)currSubPhenotype).getSubPhenotypes();
+						(List<SP>)((Phenotype)currSubPhenotype).getSubPhenotypes();
 				subPhenotypes.addAll(0, subPhenos);
 			}
 		}
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/exception/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/exception/.ratings
index fa6b70ff..ea6d806f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/exception/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/exception/.ratings
@@ -1,3 +1,3 @@
-DecodingException.java 7d04410f9bc0652f03acf60ad9daed294baed4cc RED
-DependencyException.java 5e32c3f8f4dbc4d38e7ef3df74ee211def0892c4 RED
-MissingDependencyException.java 72bfd2b179c32015bb1c3eeb330a890e2db06b4c RED
+DecodingException.java 2988884a382981eac51bb42fec30f41d2cc683b6 RED
+DependencyException.java b5ebab9ef715091cfe6d998c0acc70658a8e5536 RED
+MissingDependencyException.java 474cd48820802b026a7109abb2ae56a2ab8eb7b3 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/.ratings
index 6f0433fc..3f13f8dd 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/.ratings
@@ -1,2 +1,2 @@
-ComposableGenotype.java 585499a88ff7df6255ca21aae4d05c2e828fabc6 RED
-FlatGenotypeMap.java 441a0f20f5d73932537e9a031d7a9408a8f2e96b RED
+ComposableGenotype.java b6a703d6bcf76be93e8547f1c4c3b469680fa92b RED
+FlatGenotypeMap.java 35ed579faad674c61e67ae87f6a05764bda249c6 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/FlatGenotypeMap.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/FlatGenotypeMap.java
index 679f79a1..35ed579f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/FlatGenotypeMap.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/genotype/FlatGenotypeMap.java
@@ -15,7 +15,7 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.opt4j.core.Genotype;
 import org.opt4j.core.genotype.CompositeGenotype;
@@ -23,7 +23,7 @@ import org.opt4j.core.genotype.CompositeGenotype;
 /**
  * Allows to capture the already created/decoded {@link Phenotype}s and pass them to their successor
  * creators/decoders as a flat map that associates a {@link Phenotype}s type with its instance.
- * Using a {@link CompositePhenotype} for this job allows to "protect" the internal map from
+ * Using a {@link Phenotype} for this job allows to "protect" the internal map from
  * unintended read/write operations.
  * 
  * @author diewald
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
index 2d24dbfd..5bf819a7 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/.ratings
@@ -1,2 +1,2 @@
-DecoderDependencyGraph.java a67fe21e5c6e54e426fd3a8502b92275592794ca RED
-DecoderEdge.java 364767c6d4b15b02830e1c58a47f28f6e3bf3fcb RED
+DecoderDependencyGraph.java c2d1a8d6c86002c4faea11b6ab822b0d1bef408b RED
+DecoderEdge.java b72d75a14a0cf4b7fd7c632951b6d88474a1ba56 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
index 8c706a82..c2d1a8d6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderDependencyGraph.java
@@ -24,7 +24,7 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoder;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.MissingDependencyException;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.decode.ConstraintGenerationDecoder;
 import org.fortiss.af3.exploration.alg.graph.DependencyGraph;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
@@ -36,8 +36,9 @@ import org.opt4j.core.problem.Decoder;
  * 
  * @author diewald
  */
-public class DecoderDependencyGraph extends
-		DependencyGraph<IExplorationEncoding, ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>, DecoderEdge<ComposableGenotype, ComposablePhenotype<?>>> {
+public class DecoderDependencyGraph
+		extends
+		DependencyGraph<IExplorationEncoding, ComposableDecoder<ComposableGenotype, Phenotype>, DecoderEdge<ComposableGenotype, Phenotype>> {
 	// TODO: Move to the parent?
 	/** Internal graph representation for the execution order of {@link Creator}s. */
 	private HashSet<ComposableCreator<?>> registeredCreators = new HashSet<>();
@@ -56,8 +57,8 @@ public class DecoderDependencyGraph extends
 			for(Class<?> reqEnc : reqEncodings) {
 				if(!dependencyDagGraph
 						.containsVertex((Class<? extends IExplorationEncoding>)reqEnc) &&
-						!registeredCreators.stream()
-								.anyMatch(c -> c.getCreatedEncodingType().equals(reqEnc))) {
+						!registeredCreators.stream().anyMatch(
+								c -> c.getCreatedEncodingType().equals(reqEnc))) {
 					throw new MissingDependencyException(dec,
 							(Class<? extends IExplorationEncoding>)reqEnc, "");
 				}
@@ -67,12 +68,12 @@ public class DecoderDependencyGraph extends
 
 	/** {@inheritDoc} */
 	@Override
-	protected Comparator<ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>>
+	protected Comparator<ComposableDecoder<ComposableGenotype, Phenotype>>
 			getSubExecListComparator() {
-		return new Comparator<ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>>>() {
+		return new Comparator<ComposableDecoder<ComposableGenotype, Phenotype>>() {
 			@Override
-			public int compare(ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>> o1,
-					ComposableDecoder<ComposableGenotype, ComposablePhenotype<?>> o2) {
+			public int compare(ComposableDecoder<ComposableGenotype, Phenotype> o1,
+					ComposableDecoder<ComposableGenotype, Phenotype> o2) {
 				if(o1 instanceof ConstraintGenerationDecoder &&
 						o2 instanceof ConstraintGenerationDecoder) {
 					return 0;
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderEdge.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderEdge.java
index 33154999..b72d75a1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderEdge.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/graph/DecoderEdge.java
@@ -17,7 +17,7 @@ package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositege
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoder;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.graph.DependencyEdge;
 
 /**
@@ -25,7 +25,7 @@ import org.fortiss.af3.exploration.alg.graph.DependencyEdge;
  * 
  * @author diewald
  */
-public class DecoderEdge<G extends ComposableGenotype, P extends ComposablePhenotype<?>> extends
+public class DecoderEdge<G extends ComposableGenotype, P extends Phenotype> extends
 		DependencyEdge<ComposableDecoder<G, P>> {
 	// All required implementation is to found in the parent class.
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
index 97ce0da1..5b66f64c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/.ratings
@@ -1,5 +1,3 @@
-ComposablePhenotype.java c480ccbf2ed93bdb5a0ec5461629475bff033e18 RED
-CompositePhenotype.java 8706a2d636e49472dd5160dc8a0c871801f4fb69 RED
-CompositePhenotypeBase.java dc30951b9b55fef23ba657c54fef512a8886ec93 RED
-FlatPhenotypeMap.java f6d74992bbdcc84d358c27616b13c512ef7841b1 RED
-Phenotype.java 3b01d5fc912747b3409fe2868447f395dafd860c RED
+FlatPhenotypeMap.java e14d80c49f974bb9857fe0d2068b39ccee6b0c87 RED
+Phenotype.java 724ee55fdbd1a040e4363ec1fe2cb4d9f42b8e55 RED
+PhenotypeBase.java 0f0fc0300fdad1b3516dab143e657767ddaf36fa RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotype.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotype.java
deleted file mode 100644
index cedd386a..00000000
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotype.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*-------------------------------------------------------------------------+
-| Copyright 2015 fortiss GmbH                                              |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
-
-import java.util.List;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.opt4j.core.Genotype;
-import org.opt4j.core.genotype.CompositeGenotype;
-
-/**
- * Interface for {@link CompositePhenotype}s generated by decoders which operate on
- * {@link CompositeGenotype}s.
- * 
- * @author diewald
- */
-public interface CompositePhenotype<G extends Genotype>
-		extends
-		Phenotype,
-		Iterable<Entry<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>>> {
-
-	/**
-	 * Returns the {@link ComposablePhenotype} that corresponds to the given
-	 * {@link ComposablePhenotype} class.
-	 */
-	<GT extends Genotype, CP extends ComposablePhenotype<GT>> CP getSubPhenotype(
-			Class<CP> subPhenotype);
-
-	/**
-	 * Defines a correspondence between a {@link ComposableGenotype} class and its
-	 * {@link ComposablePhenotype}.
-	 */
-	<GT extends Genotype, CP extends ComposablePhenotype<GT>> void putSubPhenotype(
-			Class<CP> subGenotype, CP curPhenotype);
-
-	/**
-	 * Returns the collection of {@link ComposablePhenotype}s that make up this
-	 * {@link ComposableGenotype}.
-	 */
-	List<ComposablePhenotype<? extends Genotype>> getSubPhenotypes();
-
-	/** Returns the Class -> {@link Phenotype} entries of the enclosed map. */
-	Set<Class<? extends ComposablePhenotype<? extends Genotype>>> keySet();
-}
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
index f1145eab..e14d80c4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/FlatPhenotypeMap.java
@@ -27,7 +27,7 @@ import org.opt4j.core.problem.Creator;
 /**
  * Allows to capture the already created/decoded {@link Phenotype}s and pass them to their successor
  * creators/decoders as a flat map that associates a {@link Phenotype}s type with its instance.
- * Using a {@link CompositePhenotype} for this job allows to "protect" the internal map from
+ * Using a {@link Phenotype} for this job allows to "protect" the internal map from
  * unintended read/write operations.
  * 
  * @author diewald
@@ -45,8 +45,8 @@ public class FlatPhenotypeMap<T extends Phenotype> extends ExplorationEncodingMa
 	 * can be found, {@code null} is returned.
 	 */
 	@Override
-	public <P extends T> P getEncoding(Class<P> subGenotypeClass) {
-		P phenotype = getEncodingInternal(subGenotypeClass);
+	public <P extends T> P getEncoding(Class<?> subGenotypeClass) {
+		P phenotype = getEncodingInternal((Class<P>)subGenotypeClass);
 		if(phenotype == null) {
 			if(IExplorationEncoding.class.isAssignableFrom(subGenotypeClass)) {
 				@SuppressWarnings("unchecked") Class<IExplorationEncoding> inputEncoding =
@@ -60,8 +60,8 @@ public class FlatPhenotypeMap<T extends Phenotype> extends ExplorationEncodingMa
 	}
 
 	/**
-	 * Determines whether {@code this} {@link FlatPhenotypeMap} contains {@link ComposablePhenotype}
-	 * s of all given types, or it is able to retrieve the demanded types via the {@link Creator}s.
+	 * Determines whether {@code this} {@link FlatPhenotypeMap} contains {@link Phenotype} s of all
+	 * given types, or it is able to retrieve the demanded types via the {@link Creator}s.
 	 */
 	@SuppressWarnings("unchecked")
 	public <P extends T> boolean containsAll(Collection<Class<?>> phenoCollection) {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
index a81b1d20..724ee55f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/Phenotype.java
@@ -15,13 +15,45 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
 
+import java.util.List;
+import java.util.Map.Entry;
+import java.util.Set;
+
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
 import org.fortiss.af3.exploration.alg.service.IExplorationEncoding;
+import org.opt4j.core.genotype.CompositeGenotype;
 
 /**
- * Interface for phenotypes (not present any more in Opt4J).
+ * Interface for {@link Phenotype}s generated by decoders which operate on {@link CompositeGenotype}
+ * s.
  * 
  * @author diewald
  */
-public interface Phenotype extends IExplorationEncoding {
-	// Marker interface.
+public interface Phenotype extends IExplorationEncoding,
+		Iterable<Entry<Class<? extends Phenotype>, Phenotype>> {
+
+	/**
+	 * Returns the type which shall be used to register the {@link Phenotype} at its
+	 * containing {@link Phenotype}.
+	 */
+	Class<? extends Phenotype> getPTypeToRegister();
+
+	/**
+	 * Returns the {@link Phenotype} that corresponds to the given {@link Phenotype} class.
+	 */
+	<CP extends Phenotype> CP getSubPhenotype(Class<CP> subPhenotype);
+
+	/**
+	 * Defines a correspondence between a {@link ComposableGenotype} class and its {@link Phenotype}
+	 * .
+	 */
+	<CP extends Phenotype> void putSubPhenotype(Class<CP> subGenotype, CP curPhenotype);
+
+	/**
+	 * Returns the collection of {@link Phenotype}s that make up this {@link ComposableGenotype}.
+	 */
+	List<Phenotype> getSubPhenotypes();
+
+	/** Returns the Class -> {@link Phenotype} entries of the enclosed map. */
+	Set<Class<? extends Phenotype>> keySet();
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotypeBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
similarity index 54%
rename from org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotypeBase.java
rename to org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
index 92887357..0f0fc030 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/CompositePhenotypeBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/phenotype/PhenotypeBase.java
@@ -16,68 +16,62 @@
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.Iterator;
-import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.opt4j.core.Genotype;
-
 /**
- * Base class for {@link CompositePhenotype}s which consists of {@link ComposablePhenotype}s.
+ * Base class for {@link Phenotype}s which consists of {@link Phenotype}s.
  * 
  * @author diewald
  */
-public abstract class CompositePhenotypeBase<G extends Genotype> implements CompositePhenotype<G> {
+public class PhenotypeBase implements Phenotype {
 
 	/**
-	 * Map which correlates the {@link ComposablePhenotype} classes with their corresponding
-	 * {@link ComposablePhenotype}s, out of which this {@link CompositePhenotype} consists.
+	 * Map which correlates the {@link Phenotype} classes with their corresponding {@link Phenotype}
+	 * s, out of which this {@link Phenotype} consists.
 	 */
-	protected LinkedHashMap<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>> subPhenotypes =
-			new LinkedHashMap<>();
+	protected Map<Class<? extends Phenotype>, Phenotype> subPhenotypes = new HashMap<>();
 
 	/** {@inheritDoc} */
 	@Override
-	public <GT extends Genotype, CP extends ComposablePhenotype<GT>> CP getSubPhenotype(
-			Class<CP> subGenotypeClass) {
-		for(Entry<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>> composablePheno : subPhenotypes
-				.entrySet()) {
-			if(subGenotypeClass.isAssignableFrom(composablePheno.getKey())) {
-				@SuppressWarnings("unchecked") CP retPhenotype = (CP)composablePheno.getValue();
-				return retPhenotype;
-			}
-		}
-		return null;
+	public <CP extends Phenotype> CP getSubPhenotype(Class<CP> subGenotypeClass) {
+		return (CP)subPhenotypes.get(subGenotypeClass);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public <GT extends Genotype, CP extends ComposablePhenotype<GT>> void putSubPhenotype(
-			Class<CP> subGenotypeClass, CP subPhenotype) {
+	public <CP extends Phenotype> void putSubPhenotype(Class<CP> subGenotypeClass, CP subPhenotype) {
 		subPhenotypes.put(subGenotypeClass, subPhenotype);
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public List<ComposablePhenotype<?>> getSubPhenotypes() {
-		ArrayList<ComposablePhenotype<?>> retList = new ArrayList<>();
+	public List<Phenotype> getSubPhenotypes() {
+		ArrayList<Phenotype> retList = new ArrayList<>();
 		subPhenotypes.values().stream().forEachOrdered(p -> retList.add(p));
 		return retList;
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public
-			Iterator<Entry<Class<? extends ComposablePhenotype<? extends Genotype>>, ComposablePhenotype<? extends Genotype>>>
-			iterator() {
+	public Iterator<Entry<Class<? extends Phenotype>, Phenotype>> iterator() {
 		return subPhenotypes.entrySet().iterator();
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public Set<Class<? extends ComposablePhenotype<? extends Genotype>>> keySet() {
+	public Set<Class<? extends Phenotype>> keySet() {
 		return subPhenotypes.keySet();
 	}
+
+	/** {@inheritDoc} */
+	@Override
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		// TODO Auto-generated method stub
+		return null;
+	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/.ratings
index 3f1af4a6..eb65f07f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/.ratings
@@ -1 +1 @@
-CompositeProblemModuleBase.java 6a94bd41f5c78a9559878c05b6fa881de2c70d24 RED
+CompositeProblemModuleBase.java 621b7fbaebedd15f13273464284462b0929ecb45 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/CompositeProblemModuleBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/CompositeProblemModuleBase.java
index 24f2ed01..621b7fba 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/CompositeProblemModuleBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/compositegene/problem/CompositeProblemModuleBase.java
@@ -22,8 +22,7 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoder;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.CompositeDecoder;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.ProblemModuleBase;
 import org.jgrapht.experimental.dag.DirectedAcyclicGraph.CycleFoundException;
 import org.opt4j.core.Genotype;
@@ -38,7 +37,7 @@ import org.opt4j.core.problem.ProblemModule;
  * 
  * @author diewald
  */
-public abstract class CompositeProblemModuleBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends CompositePhenotype<?>, CD extends CompositeDecoder<C, P>>
+public abstract class CompositeProblemModuleBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends Phenotype, CD extends CompositeDecoder<C, P>>
 		extends ProblemModuleBase<C, CompositeCreator<C>, CD> {
 
 	/**
@@ -57,7 +56,7 @@ public abstract class CompositeProblemModuleBase<C extends CompositeGenotype<Cla
 	 */
 	// TODO: document exception.
 	public
-			<CG extends ComposableGenotype, CP extends ComposablePhenotype<CG>, CC extends ComposableCreator<CG>, D extends ComposableDecoder<CG, CP>>
+			<CG extends ComposableGenotype, CP extends Phenotype, CC extends ComposableCreator<CG>, D extends ComposableDecoder<CG, CP>>
 			void registerSubProblem(Class<CG> subGenotypeClass, CC subCreator, D subDecoder)
 					throws CycleFoundException {
 		creator.registerSubCreator(subCreator);
@@ -79,7 +78,7 @@ public abstract class CompositeProblemModuleBase<C extends CompositeGenotype<Cla
 	 */
 	// TODO: document exception.
 	public
-			<CG extends ComposableGenotype, CP extends ComposablePhenotype<CG>, CC extends ComposableCreator<CG>, D extends ComposableDecoder<CG, CP>>
+			<CG extends ComposableGenotype, CP extends Phenotype, CC extends ComposableCreator<CG>, D extends ComposableDecoder<CG, CP>>
 			void registerSubProblem(Class<CG> subGenotypeClass, CC subCreator, List<D> subDecoders)
 					throws CycleFoundException {
 		creator.registerSubCreator(subCreator);
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/decode/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/decode/.ratings
index 1f0e2155..5c93b0f7 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/decode/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/decode/.ratings
@@ -1 +1 @@
-ConstraintGenerationDecoder.java 4a13624ea55e384ccb59c7323ea795ae80d29e25 RED
+ConstraintGenerationDecoder.java 854c091376882863d91ce7b422659e3e6c611271 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/encoding/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/encoding/.ratings
index 1ea6a103..3b32b3d2 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/encoding/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/extensions/encoding/.ratings
@@ -1 +1 @@
-ConstrainedEncoding.java 80455c30bb3d5eb45ba92876ae4f03e473aca9f8 RED
+ConstrainedEncoding.java 48865f63c9ef57505c028766ba7be71857343c79 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
index 44f4b293..d5aa2a4c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/mating/.ratings
@@ -1,2 +1,2 @@
-MatingCrossoverMutateRepair.java 375a1ad682cda5af5d01f118a1c6c75d26f0b0d2 RED
-MatingCrossoverMutateRepairModule.java 81eee7535b64c5547572349f1a4c70b2f35ec2bb RED
+MatingCrossoverMutateRepair.java ea9784bc7846a4c5b35a533e45b821b24f436383 RED
+MatingCrossoverMutateRepairModule.java ae5182b0db7401f2509dfe24ac3b85f42b00d5c1 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/.ratings
index 4f7241d2..a88bd1c6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/.ratings
@@ -1,2 +1,2 @@
-ComposableOperatorClassPredicate.java 295490c0e60422d117b161eab0bf83db8e76649e RED
-OperatorUtil.java 49c9e69fe706568a088c7df9c271bad48382c34b RED
+ComposableOperatorClassPredicate.java 402b631f26ecff002f33f1dffa6989dc565a207e RED
+OperatorUtil.java c95253d64ee68df857ef743df8cc151c5b1fc678 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/partitionmapping/.ratings
index da01c918..7b74e818 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/partitionmapping/.ratings
@@ -1,2 +1,2 @@
-CopyPartitionMapping.java 3e77f3bb93cdcb5839e6c050261f7a671bef6de0 RED
-CopyPartitionMappingModule.java 679212216ca3f9ae3fbeeaeeeeb5813dc762952d RED
+CopyPartitionMapping.java 641348ea8742dd1dc41770b434263c227aeecc87 RED
+CopyPartitionMappingModule.java 3e2539c219d0ec618ee4b155bbcb910e48520672 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/platform/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/platform/.ratings
index f94f131c..d64fb46b 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/platform/.ratings
@@ -1,2 +1,2 @@
-CopyPlatformCommunicationGraph.java 33a0bca299979ad7d6a25848e7828ca2d7017513 RED
-CopyPlatformCommunicationGraphModule.java 0dd4ad33e694d3b4ddb8fb404b56e46b51bf5fd3 RED
+CopyPlatformCommunicationGraph.java 940b8a0b104f8ee9809c53fa8d364cd3c892854d RED
+CopyPlatformCommunicationGraphModule.java ff27643cf25d732fd46106847a544d5a0bc4a39e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/safetyfunctionarch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/safetyfunctionarch/.ratings
index 3621b5f0..3a20768d 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/safetyfunctionarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/safetyfunctionarch/.ratings
@@ -1,2 +1,2 @@
-CopySafetyFunctionArch.java 05e41d7d980f48698ccda668a75c4189b28b6a4d RED
-CopySafetyFunctionArchModule.java 33038dd75c06df9b55cb4618a742656f5f305a7c RED
+CopySafetyFunctionArch.java 92c728e3c40e1dde265d43564957d2cd55e7109b RED
+CopySafetyFunctionArchModule.java ed14d74cc2f945124b7383ef1a1c1262ff546dea RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/taskmapping/.ratings
index 6fd222c9..e79f83b6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/copy/taskmapping/.ratings
@@ -1,3 +1,3 @@
-CopyAbstractTaskMapping.java c6df9e76c182ca083303703cdd7d53ebe5cb6960 RED
-CopyInstanceTaskMapping.java 902538ef9927500d5e16ff8b50364560bed10a6b RED
-CopyTaskMappingModule.java 4904f2062265901c4a9d070449a06d40f6c054a4 RED
+CopyAbstractTaskMapping.java 41356d99a196d9e50c19653a395f6d33945420af RED
+CopyInstanceTaskMapping.java 9a7cf966b8b63ff2f82131ac803ce604564722b2 RED
+CopyTaskMappingModule.java dd7d4d52cc66de6fb7b19d016571e6d62cee12c1 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
index 1241fd9c..972ab98a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/.ratings
@@ -1,10 +1,10 @@
-CrossoverAbstractTaskMappingModule.java 4942a1dc7547a656b75cb899f06556f8dedd342e RED
-CrossoverAllocationBase.java a2d0db2e860103bad3d7f8af1982623182103a80 RED
-CrossoverOperatorModuleBase.java 03f237eba55f15043082bb1f5cc47f052cb24d33 RED
-CrossoverRandManyAllocation.java c6a1ec9d0975247bbfc32a114f814eb52568cdb0 RED
-CrossoverSingleAllocation.java 823db1f9c10e7ed4c7eb8212310a6d411526db88 RED
-NopCrossover.java 70500c9db651250298c97e261e4f8a0d8b6941e3 RED
-NopCrossoverInstantiatedTaskMappingModule.java 95156489b862633b428a87df2ae51aa304c7f6f1 RED
-NopCrossoverPartitionMappingModule.java ac1eb750baf51027e352f4b95e6145e914bc4d19 RED
-NopCrossoverPlatformCommunicationGraphModule.java 1e4b42a28f38a42fbddd0b5ad793679c96cb3330 RED
-NopCrossoverSFArchModule.java 65379d3a5e26993de3cb72856e0e66b645e8b064 RED
+CrossoverAbstractTaskMappingModule.java 04c64460b461c69b09fe66b3af2a9423906ffaa8 RED
+CrossoverAllocationBase.java d11fd0c9627fd8224d49ee7541b7640b7f164bbb RED
+CrossoverOperatorModuleBase.java 4343d7a3e8d5dc926b63fde625e8fee891b6ba9d RED
+CrossoverRandManyAllocation.java 961182441dfde02a76373791aec4db804fa2e675 RED
+CrossoverSingleAllocation.java 551f5c07151b80aac1e77e73d5c380474ef200c1 RED
+NopCrossover.java 6c6c7ab84b33865dae3740604372d3c7d544738f RED
+NopCrossoverInstantiatedTaskMappingModule.java 92c26b59d4a876dca6b6d76d4eeb8b9354f5e69a RED
+NopCrossoverPartitionMappingModule.java b7589a430adad3c0221ab26ccedb68c45645875d RED
+NopCrossoverPlatformCommunicationGraphModule.java fbad012d253b15353a0bd4d64b0a3ad93fdccd3e RED
+NopCrossoverSFArchModule.java 7dacb3ecaa4e0eadd00d71ad6d980301951ec830 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
index d4a80ce8..a0f72b64 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/failSilent/.ratings
@@ -1 +1 @@
-CrossoverAllocationFailSilent.java 668b310ffa5544d81938bb957eabd1034c899219 RED
+CrossoverAllocationFailSilent.java a3ea300ed0460b6222eec4067b161845cb201018 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
index f6c755ce..2a159b1a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/crossover/faultDetectionVoting/.ratings
@@ -1 +1 @@
-CrossoverAllocationFaultDetectionVoting.java 7ad980120a322084cfc0085106c91e4722a37a72 RED
+CrossoverAllocationFaultDetectionVoting.java 03955ce30ac9329bdf5fbf32765f4aaa829c5f0b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
index 2eb432b3..d60f92a5 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/.ratings
@@ -1,3 +1,3 @@
-MutateBase.java 270e544e90864adfb4e92f369db369eaab4a0f17 RED
-MutateOperatorModuleBase.java b17ea95c0f3e8ccbdd9005c416c6d9aff54a5517 RED
-NopMutateOperator.java c016ee80e96392d663e59d151b16ea546111cecf RED
+MutateBase.java 74235bf78f594b887cba7a5005443eda80fc94f7 RED
+MutateOperatorModuleBase.java 353924ab96686b5019c68c4bdd7741879cd998c4 RED
+NopMutateOperator.java 6cc7d102046e582360a62dcf12a24806f6525df5 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
index c6d7a468..a5fe5c17 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/partitionmapping/.ratings
@@ -1,4 +1,4 @@
-MutatePartitionBase.java bb0c22283f538959a4896dd7cfc9ef3686df5eb9 RED
-MutatePartitionDecrement.java a502f96ffaf4510828cdfc67346185f9fffdfbce RED
-MutatePartitionIncrement.java 121c27c9e8bf3df7364a4245ef6f93300f221931 RED
-PartitionMappingModule.java c39d8441752a67ef10398de2b810d178452fd326 RED
+MutatePartitionBase.java 6cb254826ed2feb9a1609eb9208c8060868c5fe5 RED
+MutatePartitionDecrement.java aa364f0d6e970ecc7e5d004c5d132878465951c0 RED
+MutatePartitionIncrement.java 4b8e804d7b8e18bbd422cd74a204c7c5d458a31e RED
+PartitionMappingModule.java 0eb2323ca27acf3ad32a973984a127a006e4f4aa RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/platform/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/platform/.ratings
index 028b9bd0..f3a359e2 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/platform/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/platform/.ratings
@@ -1 +1 @@
-NopPlatformCommGraphMutateModule.java 08577f7b156f428332be4a371fa6bc7f1f129c2b RED
+NopPlatformCommGraphMutateModule.java 65589cc7a519b6acb1665724b22a7c3d837cf526 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
index fc52acc0..a8076f4f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/safetyarch/.ratings
@@ -1,5 +1,5 @@
-MutateChannelNumber.java 3cc953a73ceeff9f4d78d6ceccd003310f71097a RED
-MutateConnectedDiagnosisPresent.java 2b6053d44d11bcab37ba7fa4b780c17538af5fbf RED
-MutateSafetyArchBase.java 940804b02cdf0f631b870a5458a7782835b2cdef RED
-MutateSafetyFunctionArchitectureModule.java f45953e9f11655d90295f9a25ce46889b5c7f14d RED
-MutateSafetyTriggerSignalNumber.java c883a170a4d9a6cc5a1b1ee86586dd79b44c2ab4 RED
+MutateChannelNumber.java 2e49168b8d78cf98669babe400f47e6beb2fcfe5 RED
+MutateConnectedDiagnosisPresent.java 9089e7c8c0fdf2f2b2fe3a91495090dcd840efab RED
+MutateSafetyArchBase.java 572ca678c91ba6b7288ae672312c89d67e117bd9 RED
+MutateSafetyFunctionArchitectureModule.java 005944541da58e07816b67cd7ab15872b7503dfc RED
+MutateSafetyTriggerSignalNumber.java 385efb314ad5faabc4a18f25d189a413b6c2ac64 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
index 495a3e3e..82224c77 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskinstantiation/.ratings
@@ -1,2 +1,2 @@
-MutateTaskInstance.java 7bb9d0cd22886796e77d7d2ba4b46323a88e4957 RED
-MutateTaskInstanceModule.java 2d1a1227e1f14028d00ec77a8b2d19bb1437cf5e RED
+MutateTaskInstance.java 0c101e73c2605c3ce7338a4894ed7fc4b388e880 RED
+MutateTaskInstanceModule.java 4ec43fc3539409b360dd3c4939d22cc1b487e6b5 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
index 8cb12bd9..f082b56e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/mutate/taskmapping/.ratings
@@ -1,6 +1,6 @@
-MutateAllocation.java 6de15219d302a04e89891372be98c54320d1a97e RED
-MutateRedundancy.java f8d8eb0b1404e211a3b4c46a22dd0f8b3557530e RED
-MutateRedundancyDecrement.java 087a249c93eb7f247b880bc82922337edb47c097 RED
-MutateRedundancyIncrement.java 3a7aa2fc44b81982a77ca4daff458cab2eed6454 RED
-MutateTaskMappingModule.java ac26c4c284593e2a326ff4ecb22d4282cab41ebf RED
-MutateTasksBase.java e1df983535ca07c9e90081fd64c4a605b178d033 RED
+MutateAllocation.java cee21301311e7e1bc1164f152e11760297bbd793 RED
+MutateRedundancy.java 4b8f9ba0a9aa542bb4d3d168115f3fb01cd31829 RED
+MutateRedundancyDecrement.java d2b176412ccf746641e7f7ebeade83f94de5d3dc RED
+MutateRedundancyIncrement.java 6fb9e2312877fa57bb8970f167564f186008def8 RED
+MutateTaskMappingModule.java 4f2d680a94c6aadb99eb576b66dbd3c06f193d33 RED
+MutateTasksBase.java 237e281449ec0601623873db8d07ffe0c94f80bf RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/selection/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/selection/.ratings
index 4e033de9..5f93fb40 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/selection/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/operator/selection/.ratings
@@ -1,7 +1,7 @@
-IMultiSelectorOperatorModule.java 0f94e8a916ce600dae0a7a993731dfa776136d2a RED
-IOperatorSelector.java 65ff646a4f39ef93e6dc5bfc6cfb2eda2411a4d1 RED
-ISelectorOperatorModule.java 2979612094a036d0ce1429fdbb15c3666a23f410 RED
-OperatorSelectorBase.java 972b17f677a504786761a4a3a8bb55e7a08e7c36 RED
-OperatorSelectorPredicate.java 6410075f62fdc8a6604c6d5cbf7c9a06f63b4049 RED
-RandomOperatorSelector.java 13c9fcf7283f0bcac0c373fb72b1724c0abe6eb3 RED
-RoundRobinOperatorSelector.java 399a6b84b5fa2b05c99ff8ec05442ce35e266611 RED
+IMultiSelectorOperatorModule.java 157eea7b5b736034703db099931fdda439a632ba RED
+IOperatorSelector.java 3da9c10eb864458097b7097bf2dd5129dd5ec271 RED
+ISelectorOperatorModule.java 8b7254d5a2c6eaf0ca802153cf637a65df7af182 RED
+OperatorSelectorBase.java b7763544dd214d20bf0a4cfc48a752cc831bb595 RED
+OperatorSelectorPredicate.java 8dbd944b60956c9414af0ba27f86a837a266372d RED
+RandomOperatorSelector.java 48fd49694fb011b45bbc63291ec65c261d2cef3b RED
+RoundRobinOperatorSelector.java 1cd0027f6d38e8829b03c88304eba424def673c0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
index d4bd2506..6161d377 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/.ratings
@@ -1,8 +1,8 @@
-ArchExpSubDecoder.java b53315dae39fd6afdae22e2412af5cf9dff5e574 RED
-ArchitectureDecoder.java 9a002b7e7ecf05835276dd0302faf0bd7c3aa656 RED
-ArchitectureExplorationProblemModule.java 650201476e17b6c7df1b9844e69fe979d20f04f6 RED
-DseProblemModuleBase.java e088ed91aae6391bdec7ba93df65e677665f9596 RED
-EvaluatorWrapper.java 47ff0b2df7f75e232fa269b55750f0e2c408b08c RED
-ExplorationGoalPriorityMultiEvaluator.java 0f900f86c8adc14b69d95bb8eb3a34ea1ed2d41e RED
-ProblemModuleBase.java fb1401b846d001dfc78bbd8b8881929788b10d41 RED
-StrictTTDecoder.java 293d4e08d0ad1474aaa9c234807d140291cf40ae RED
+ArchExpSubDecoder.java 8878133e8b65858b4cd7cedd243d49d391066323 RED
+ArchitectureDecoder.java d067dc995e0895860d98d717647c0f7b061f5908 RED
+ArchitectureExplorationProblemModule.java 6a8f34a29885d14c6f96e7516d23b30a646cd032 RED
+DseProblemModuleBase.java 0eba41852529e92e7255c7a7d8fce18354facbca RED
+EvaluatorWrapper.java 3747e5b78b1dcef8e1595c1ae9354e8ef2738e79 RED
+ExplorationGoalPriorityMultiEvaluator.java 1f6d2aa6ece8acdf4f57face0439f3429ab87329 RED
+ProblemModuleBase.java 4d5c2a80cada7ba6e4722c27f4625777ee0bbd87 RED
+StrictTTDecoder.java d44d02b5f866717ebaa40a8a1a32225852e56af8 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
index bae36d87..d067dc99 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/ArchitectureDecoder.java
@@ -21,9 +21,8 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.ArchExpSubEnco
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.ArchitectureExplorationEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.CompositeDecoderBase;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.graph.DecoderDependencyGraph;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution.ArchitectureSolution;
-import org.opt4j.core.Genotype;
 import org.opt4j.core.genotype.CompositeGenotype;
 import org.opt4j.core.problem.Decoder;
 
@@ -35,8 +34,8 @@ import com.google.inject.Inject;
  * 
  * @author diewald
  */
-public class ArchitectureDecoder
-		extends CompositeDecoderBase<ArchitectureExplorationEncoding, ArchitectureSolution> {
+public class ArchitectureDecoder extends
+		CompositeDecoderBase<ArchitectureExplorationEncoding, ArchitectureSolution> {
 
 	/** Default constructor that makes the input models accessible for the decoders. */
 	@Inject
@@ -46,8 +45,8 @@ public class ArchitectureDecoder
 
 	/** {@inheritDoc} */
 	@Override
-	public <CP extends ComposablePhenotype<? extends Genotype>> ArchitectureSolution
-			mergeSubPhenotypes(Map<Class<CP>, CP> subPhenotypes) {
+	public <CP extends Phenotype> ArchitectureSolution mergeSubPhenotypes(
+			Map<Class<CP>, CP> subPhenotypes) {
 		return new ArchitectureSolution();
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
index 77cd950a..0eba4185 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/DseProblemModuleBase.java
@@ -26,8 +26,6 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.evaluate.ComposableEvaluator;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.evaluate.CompositeEvaluator;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.problem.CompositeProblemModuleBase;
 import org.fortiss.af3.exploration.alg.dse.evaluator.ArchitectureEvaluator;
@@ -50,7 +48,7 @@ import org.opt4j.core.problem.Evaluator;
  * 
  * @author diewald
  */
-public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends CompositePhenotype<?>, CD extends CompositeDecoder<C, P>>
+public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? extends ComposableGenotype>, ComposableGenotype>, P extends Phenotype, CD extends CompositeDecoder<C, P>>
 		extends CompositeProblemModuleBase<C, P, CD> {
 
 	/** DSE configuration */
@@ -60,7 +58,7 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 	// TODO(#3270)
 	protected SystemModelAdapter<?, ?, ?, ?, ?, ?, ?> systemModelAdapter;
 
-	/** Set of requested {@link ComposablePhenotype}s that form the solution set. */
+	/** Set of requested {@link Phenotype}s that form the solution set. */
 	Set<Class<? extends IExplorationEncoding>> requestedSolutions;
 
 	/**
@@ -123,12 +121,12 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 					priorityMap.put(objectiveType, objectivePrioOffset + objPrio);
 				}
 			} /*
-				 * else {
-				 * throw new IllegalClassException(
-				 * "Objectives that are not MOExplorationObjectives are currently not supported by this backend."
-				 * );
-				 * }
-				 */
+			 * else {
+			 * throw new IllegalClassException(
+			 * "Objectives that are not MOExplorationObjectives are currently not supported by this backend."
+			 * );
+			 * }
+			 */
 		}
 
 		for(ExplorationTarget<?> target : targets) {
@@ -145,7 +143,8 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 	 * 
 	 * @throws Exception
 	 */
-	protected <RT, T extends ExplorationTarget<RT>, S extends ComposablePhenotype<?>, E extends ComposableEvaluator<S>>
+	protected
+			<RT, T extends ExplorationTarget<RT>, S extends Phenotype, E extends ComposableEvaluator<S>>
 			EvaluatorWrapper<?, RT, T> addGoalEvaluator(CompositeEvaluator<P> dseEvaluator, T goal,
 					int priority) throws Exception {
 		@SuppressWarnings("unchecked") EvaluatorWrapper<?, RT, T> wrappedEvaluator =
@@ -154,12 +153,11 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 		if(wrappedEvaluator != null) {
 			// Here, we check whether the goal evaluator is defined for composable phenotypes (only
 			// composable evaluators are allowed then).
-			if(ComposablePhenotype.class
-					.isAssignableFrom(wrappedEvaluator.getTargetPhenotypeType())) {
+			if(Phenotype.class.isAssignableFrom(wrappedEvaluator.getTargetPhenotypeType())) {
 
 				Class<?> phenotypeClass = wrappedEvaluator.getTargetPhenotypeType();
 
-				if(ComposablePhenotype.class.isAssignableFrom(phenotypeClass)) {
+				if(Phenotype.class.isAssignableFrom(phenotypeClass)) {
 					// if(phenoClass.isAssignableFrom(phenotypeClass) &&
 					// evalClass.isAssignableFrom(wrappedEvaluator.getClass())) {
 					@SuppressWarnings("unchecked") Class<S> subPhenotypeClass =
@@ -184,8 +182,7 @@ public abstract class DseProblemModuleBase<C extends CompositeGenotype<Class<? e
 				} else {
 					throw new Exception();
 				}
-			} else if(!(ComposablePhenotype.class
-					.isAssignableFrom(wrappedEvaluator.getTargetPhenotypeType()))) {
+			} else if(!(Phenotype.class.isAssignableFrom(wrappedEvaluator.getTargetPhenotypeType()))) {
 				// Otherwise, a "simple" goal evaluator is created
 				addEvaluator(wrappedEvaluator);
 			} else {
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/EvaluatorWrapper.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/EvaluatorWrapper.java
index 9c355fc1..3747e5b7 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/EvaluatorWrapper.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/EvaluatorWrapper.java
@@ -16,7 +16,6 @@
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem;
 
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.evaluator.ArchExpSubEvaluator;
@@ -116,9 +115,8 @@ public class EvaluatorWrapper<P, RT, T extends ExplorationTarget<RT>> implements
 
 	/** {@inheritDoc} */
 	@Override
-	public <CP extends ComposablePhenotype<?>> Objectives evaluateComposable(Class<CP> clazz,
-			CP phenotype, FlatPhenotypeMap<Phenotype> phenotypes,
-			ClassToInstanceMap<EObject> transformedModels) {
+	public <CP extends Phenotype> Objectives evaluateComposable(Class<CP> clazz, CP phenotype,
+			FlatPhenotypeMap<Phenotype> phenotypes, ClassToInstanceMap<EObject> transformedModels) {
 		Objectives objectives = new Objectives();
 
 		// TODO: Do we really need the evalu
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
index e73620a3..f910098e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/comm/.ratings
@@ -1 +1 @@
-MessageDecoder.java 4ad8b9325ad1032437426c5f1636448b54b7883c RED
+MessageDecoder.java 78eda9938a9d176f0e69bcffd4bbec28049db93d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
index a198648b..80c558fe 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/instantiatetaskgraph/.ratings
@@ -1,2 +1,2 @@
-InstantiatedTaskMappingDecoder.java 7c814ec27683f24c4122d1c977ab47b76f36a379 RED
-InstantiatedTaskMappingDecoderAcyclic.java 9d2823e418fe0dae98fbfe00427b5bf6fe3ceb3b RED
+InstantiatedTaskMappingDecoder.java e73da437e703017adacce54f6778f553180c02b2 RED
+InstantiatedTaskMappingDecoderAcyclic.java 979d34e0bfc76cc39ac201b3d9d34500f44ce30d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings
index a70ad051..2ae985fa 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/partitionmapping/.ratings
@@ -1,2 +1,2 @@
-PartitionMappingDecoderGraph.java 4541c30721d8898a269320fbf5bbc65627548160 RED
-PartitionMappingIdentityDecoder.java 45a0f3748f01beb741390d564a707f19cf3fd2b6 RED
+PartitionMappingDecoderGraph.java 73645b119904fb34c8a1136a7603af8830a94778 RED
+PartitionMappingIdentityDecoder.java 964e0e992dd33aeec4ed55a83d9c6c6f7883a7a0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
index 400accbb..8ac9f6e4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/.ratings
@@ -1,4 +1,4 @@
-SFEncodingDecoder.java ed80fb718ebef561d42610709820852ff777d609 RED
-SFGraphDecoder.java 5b6a65e02f9132348a5051b431581a32fe14046e RED
-SFMappingConstraintDecoder.java 3fe95f631eb32d8f1757dba46a2c93be3e04f5af RED
-SFMappingDecoder.java b3985407125fe2e36882385aff269b0dc46689cd RED
+SFEncodingDecoder.java 38d5a6c261315d2fd24f06f764c97e9d9f6808db RED
+SFGraphDecoder.java 82c9b536a526e0e2b23d35a64124e622e5eedd5a RED
+SFMappingConstraintDecoder.java 69b46dc6184f316102df770ebad3814361db6d11 RED
+SFMappingDecoder.java 0fe8c6aad79085a5be5ead4c38b21e06095944a9 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java
index d8f81ab1..f7c4dfe7 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/safetyfunction/SFEncodingDecoder.java
@@ -22,20 +22,19 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.safetyfunction
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoder;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoderBase;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.exception.DecodingException;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.ArchExpSubDecoder;
 
 /**
- * Provides a {@link SafetyFunctionArchEncoding} to the set of {@link ComposablePhenotype} types.
+ * Provides a {@link SafetyFunctionArchEncoding} to the set of {@link Phenotype} types.
  * This {@link ComposableDecoder} is an identity operation.
  * 
  * @author diewald
  */
-public class SFEncodingDecoder<C>
-		extends ComposableDecoderBase<SafetyFunctionArchEncoding<C>, SafetyFunctionArchEncoding<C>>
-		implements ArchExpSubDecoder {
+public class SFEncodingDecoder<C> extends
+		ComposableDecoderBase<SafetyFunctionArchEncoding<C>, SafetyFunctionArchEncoding> implements
+		ArchExpSubDecoder {
 
 	/**
 	 * {@inheritDoc}
@@ -56,9 +55,10 @@ public class SFEncodingDecoder<C>
 	 *             see {@link ComposableDecoderBase}.
 	 */
 	@Override
-	public SafetyFunctionArchEncoding<C> updateComposable(SafetyFunctionArchEncoding<C> inGenotype,
-			SafetyFunctionArchEncoding<C> outGenotype,
-			FlatPhenotypeMap<Phenotype> decodedPhenotypes) throws DecodingException {
+	public SafetyFunctionArchEncoding<C>
+			updateComposable(SafetyFunctionArchEncoding<C> inGenotype,
+					SafetyFunctionArchEncoding<C> outGenotype,
+					FlatPhenotypeMap<Phenotype> decodedPhenotypes) throws DecodingException {
 		return inGenotype;
 	}
 
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/.ratings
index 74500d69..05e34d61 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/.ratings
@@ -1,2 +1,2 @@
-AbstractTaskMappingIdentityDecoder.java b1556259f12c67e465031f63f21a47e327f42ab9 RED
-TaskMappingDecoderBase.java 0b0fefc3bb48ea5b65956266b48bd97eed90d9f5 RED
+AbstractTaskMappingIdentityDecoder.java 35871c7a2d43f7645282a75507f0d2276a53dbc4 RED
+TaskMappingDecoderBase.java f75f02c16f7b9b9eb16fa9935f904bde9eaf293c RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/AbstractTaskMappingIdentityDecoder.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/AbstractTaskMappingIdentityDecoder.java
index 65d9b47f..35871c7a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/AbstractTaskMappingIdentityDecoder.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/AbstractTaskMappingIdentityDecoder.java
@@ -22,13 +22,13 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmappi
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoder;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.ArchExpSubDecoder;
 
 /**
- * Provides a {@link AbstractTaskMappingEncoding} to the set of {@link ComposablePhenotype} types.
+ * Provides a {@link AbstractTaskMappingEncoding} to the set of {@link Phenotype} types.
  * This {@link ComposableDecoder} is an identity operation.
  * 
  * @author diewald
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/TaskMappingDecoderBase.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/TaskMappingDecoderBase.java
index 4fc4acda..f75f02c1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/TaskMappingDecoderBase.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/TaskMappingDecoderBase.java
@@ -23,18 +23,17 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmappi
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.decode.ComposableDecoderBase;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.FlatPhenotypeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
-import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IResourceAdapter;
+import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.exception.ExplorationException;
 
 /**
  * 
  * @author diewald
  */
-public abstract class TaskMappingDecoderBase<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>, P extends ComposablePhenotype<?>>
+public abstract class TaskMappingDecoderBase<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>, P extends Phenotype>
 		extends ComposableDecoderBase<T, P> {
 
 	/**
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
index 01dfb3ae..5d7a238a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/problem/taskmapping/instantiate/.ratings
@@ -1,4 +1,4 @@
-AbstractTaskMappingDecoder.java 2f3aa1860a3f10224bd8f5eab4ee07f136f44065 RED
-FailSilentAbstractTaskMappingDecoder.java 737f312502e0e41eb7de9e78985572436ec95ce9 RED
-FaultDetectionVotingAbstractTaskMappingDecoder.java bf75917b2a858e77feb677957a6eb9333bf099d9 RED
-TaskInstanceResourceAlignmentDecoder.java 4e9e61817df2e869ef84b67943c4e9874bbd4f37 RED
+AbstractTaskMappingDecoder.java 52a08984ae1270bba11cf3a215009c9d8c1f9a17 RED
+FailSilentAbstractTaskMappingDecoder.java 0d68a832a1e9bca8ef93aaffb9d309c1fe7d7f7a RED
+FaultDetectionVotingAbstractTaskMappingDecoder.java 91ad48817fdd592a70da6a08d4a0f666c01acc33 RED
+TaskInstanceResourceAlignmentDecoder.java fe8b789f3a0185585a90cf1882fd3983453b4a0d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
index 6f59fb7e..166dafe4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/repair/.ratings
@@ -1 +1 @@
-RepairModuleBase.java 9e491c2e726c0d72370b3ae71813aed1a4932f83 RED
+RepairModuleBase.java 8ad46913cc775f17607ac5ae660248f4a01910f5 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
index 2d79db22..340112b8 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/.ratings
@@ -1,6 +1,6 @@
-ArchExpSubSolution.java 3bb56206fe70f19f7cb6aee575eba552ce9bbc4e RED
-ArchitectureSolution.java 4403246ed4c40e907e5def4ff503001081f0f47d YELLOW
-IExplorationSolution.java a6153937197358907ceec46606a7f28620c26f2b RED
-IScheduleSolution.java 8a2959147bdca874fd43b1591bc5471b68c04333 RED
-StrictTTSchedule.java eec7ffce1047cec7b869a938fd428e56cd705163 RED
-TimeSlot.java 499ba8b40aca05351c4baf03d104dd20e5eb19d1 RED
+ArchExpSubSolution.java 01ed04e438843a9c55c69a3c32c37f7d76f783a3 RED
+ArchitectureSolution.java fe7357822289ac1890f84ebe4e93abbd4a56b658 RED
+IExplorationSolution.java 28e3033f9a77bc4bc43a1d170df89256d9052a59 RED
+IScheduleSolution.java 1f219222f59260ca87ab38fc11bebe91b790812b RED
+StrictTTSchedule.java 58bccb7781b2a636a03fa6414fd733bf8a13547b RED
+TimeSlot.java 055e615eeba569813c4edf1896d136f4a0fc6b3e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchExpSubSolution.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchExpSubSolution.java
index 62eb8db9..01ed04e4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchExpSubSolution.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchExpSubSolution.java
@@ -15,14 +15,13 @@
 +--------------------------------------------------------------------------*/
 package org.fortiss.af3.exploration.alg.dse.backend.opt4j.solution;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.opt4j.core.Genotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 
 /**
  * Marker interface for solutions of a sub-problem a architectural exploration problem.
  * 
  * @author diewald
  */
-public interface ArchExpSubSolution<S extends Genotype> extends ComposablePhenotype<S> {
+public interface ArchExpSubSolution extends Phenotype {
 	// Marker interface.
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchitectureSolution.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchitectureSolution.java
index 3e476e72..fe735782 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchitectureSolution.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/ArchitectureSolution.java
@@ -20,11 +20,8 @@ import java.util.Collection;
 import java.util.LinkedList;
 import java.util.Queue;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.ArchitectureExplorationEncoding;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 
 /**
  * Base class for solutions (=> {@link Phenotype}s) of an architecture exploration problem.
@@ -33,24 +30,23 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegen
  */
 // TODO: Check commonalities of this class with the FlatPhenotypeMap.
 // TODO: Check whether it would be beneficial to create a IExplorationSolutionBase Class.
-public class ArchitectureSolution extends CompositePhenotypeBase<ArchitectureExplorationEncoding>
-		implements IExplorationSolution<ArchExpSubSolution<?>> {
+public class ArchitectureSolution extends PhenotypeBase implements
+		IExplorationSolution<ArchExpSubSolution> {
 
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Collection<Class<? extends ArchExpSubSolution<?>>> getAllSubSolutionClasses() {
-		Collection<Class<? extends ArchExpSubSolution<?>>> subSolutionClasses = new ArrayList<>();
-		Queue<ComposablePhenotype<?>> traversalList = new LinkedList<>();
+	public Collection<Class<? extends ArchExpSubSolution>> getAllSubSolutionClasses() {
+		Collection<Class<? extends ArchExpSubSolution>> subSolutionClasses = new ArrayList<>();
+		Queue<Phenotype> traversalList = new LinkedList<>();
 		traversalList
-				.addAll((Collection<? extends ComposablePhenotype<?>>)(Collection<?>)subPhenotypes
-						.values());
+				.addAll((Collection<? extends Phenotype>)(Collection<?>)subPhenotypes.values());
 		while(!traversalList.isEmpty()) {
-			ComposablePhenotype<?> phenotype = traversalList.poll();
-			subSolutionClasses
-					.add((Class<? extends ArchExpSubSolution<?>>)phenotype.getPTypeToRegister());
-			if(phenotype instanceof CompositePhenotype) {
-				traversalList.addAll(((CompositePhenotype<?>)phenotype).getSubPhenotypes());
+			Phenotype phenotype = traversalList.poll();
+			subSolutionClasses.add((Class<? extends ArchExpSubSolution>)phenotype
+					.getPTypeToRegister());
+			if(phenotype != null) {
+				traversalList.addAll(phenotype.getSubPhenotypes());
 			}
 		}
 		return subSolutionClasses;
@@ -69,8 +65,8 @@ public class ArchitectureSolution extends CompositePhenotypeBase<ArchitectureExp
 				return retPheno;
 			}
 
-			if(phenotype instanceof CompositePhenotype) {
-				traversalList.addAll(((CompositePhenotype<?>)phenotype).getSubPhenotypes());
+			if(phenotype != null) {
+				traversalList.addAll(phenotype.getSubPhenotypes());
 			}
 		}
 		return null;
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
index d6685ea0..58bccb77 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/backend/opt4j/solution/StrictTTSchedule.java
@@ -25,7 +25,8 @@ import java.util.TreeMap;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.partitionmapping.Partition;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.TaskMappingEntry;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.PhenotypeBase;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ICommunicationResourceAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IExecutionUnitAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.IGatewayUnitAdapter;
@@ -46,8 +47,8 @@ import org.fortiss.af3.exploration.alg.dse.sysmodel.sched.ScheduleRuntimeExcepti
  */
 
 public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partition>, T extends TaskMappingEncoding<ITaskAdapter<?>, S>>
-		implements IScheduleSolution<StrictTTSchedule<S, T>>, ComposablePhenotype<T>,
-		ArchExpSubSolution<T> {
+		extends PhenotypeBase implements IScheduleSolution<StrictTTSchedule<S, T>>,
+		ArchExpSubSolution {
 	/**
 	 * Amount (of time) which {@link TimeSlot}s are allowed to overlap. Here due to numerical
 	 * imprecision.
@@ -120,10 +121,8 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 
 	/**
 	 * Performs a validation of this schedule. Returns {@code true} if the following conditions
-	 * hold:
-	 * <li>The number of allocations defined in the mapping matches the number of scheduled
-	 * components.</li>
-	 * <li>No overlap of {@link TimeSlot}s within the schedule of each
+	 * hold: <li>The number of allocations defined in the mapping matches the number of scheduled
+	 * components.</li> <li>No overlap of {@link TimeSlot}s within the schedule of each
 	 * {@link IResourceAdapter}.</li>
 	 */
 	public boolean validateSchedule(boolean enableScheduleException) {
@@ -137,11 +136,10 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	}
 
 	/**
-	 * Validates whether the number of {@link TimeSlot}s representing a
-	 * {@link ITaskAdapter} matches the number of allocations defined in the
-	 * {@link IMappingEncoding} from which this {@link StrictTTSchedule} is derived.
-	 * This check is performed for each {@link ITaskAdapter} in the
-	 * {@link IMappingEncoding}.
+	 * Validates whether the number of {@link TimeSlot}s representing a {@link ITaskAdapter} matches
+	 * the number of allocations defined in the {@link IMappingEncoding} from which this
+	 * {@link StrictTTSchedule} is derived.
+	 * This check is performed for each {@link ITaskAdapter} in the {@link IMappingEncoding}.
 	 */
 	private boolean validateAllocationNumberInSchedule(boolean enableScheduleException) {
 		for(ITaskAdapter<?> comp : encoding.getRequesters()) {
@@ -155,8 +153,9 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 				}
 			}
 			if(compEncNum != compSchedNum && encoding.getRequesters().contains(comp)) {
-				System.out.println("The number of scheduled Components of " + comp.getName() +
-						" does not match the number defined in the Component->ExecutionUnit mapping.");
+				System.out
+						.println("The number of scheduled Components of " + comp.getName() +
+								" does not match the number defined in the Component->ExecutionUnit mapping.");
 				if(enableScheduleException) {
 					throw new ScheduleRuntimeException(this);
 				}
@@ -171,8 +170,7 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 * with another {@link TimeSlot} of that {@link ResourceSchedule}.
 	 */
 	private boolean validateNoTimeSlotOverlaps(boolean enableScheduleException) {
-		for(Map.Entry<IResourceAdapter<?>, ResourceSchedule> resourceSchedule : schedule
-				.entrySet()) {
+		for(Map.Entry<IResourceAdapter<?>, ResourceSchedule> resourceSchedule : schedule.entrySet()) {
 			for(TimeSlot currentTimeSlot : resourceSchedule.getValue().keySet()) {
 				TimeSlot nextTimeSlot = resourceSchedule.getValue().higherKey(currentTimeSlot);
 				if(nextTimeSlot != null &&
@@ -200,8 +198,7 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 * validated.
 	 */
 	private boolean validateCausalityOfTasks(boolean enableScheduleException) {
-		for(Map.Entry<IResourceAdapter<?>, ResourceSchedule> resourceSchedule : schedule
-				.entrySet()) {
+		for(Map.Entry<IResourceAdapter<?>, ResourceSchedule> resourceSchedule : schedule.entrySet()) {
 			for(TimeSlot currentTimeSlot : resourceSchedule.getValue().keySet()) {
 				for(TimeSlot predecessorSlot : currentTimeSlot.getPredecessors()) {
 					if(currentTimeSlot.getStartTime() < predecessorSlot.getEndTime() -
@@ -236,8 +233,8 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	}
 
 	/** Registers a {@link TimeSlot} with the appropriate schedule. */
-	public TimeSlot registerTimeSlot(TimeSlot slot, S deployedRequest,
-			IResourceAdapter<?> resource) {
+	public TimeSlot
+			registerTimeSlot(TimeSlot slot, S deployedRequest, IResourceAdapter<?> resource) {
 		// Create a new TimeSlot and eventually add a new ResourceSchedule, if none exists yet for
 		// the deployment target.
 		if(schedule.get(resource) == null) {
@@ -277,8 +274,9 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	 */
 	public TimeSlot createTimeSlot(S deployedRequest, IResourceAdapter<?> resource,
 			Collection<TimeSlot> predessorSlots, double start, double end, long iteration) {
-		TimeSlot slot = new TimeSlot(deployedRequest, resource, predessorSlots, start, end,
-				(int)iteration, false);
+		TimeSlot slot =
+				new TimeSlot(deployedRequest, resource, predessorSlots, start, end, (int)iteration,
+						false);
 		return registerTimeSlot(slot, deployedRequest, resource);
 	}
 
@@ -347,11 +345,12 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	/** Formats the string representation of a resource */
 	private String getResourceName(IResourceAdapter<?> resource) {
 		String str = resource.getName();
-		if(!(resource instanceof ITransmissionUnitAdapter ||
-				resource instanceof IGatewayUnitAdapter)) {
+		if(!(resource instanceof ITransmissionUnitAdapter || resource instanceof IGatewayUnitAdapter)) {
 			// FIXME: Use the name of the partition.
-			str += "@" + resource
-					.toString();/* systemModelAdapter.getHardwareResource(resource).getName(); */
+			str += "@" + resource.toString();/*
+											 * systemModelAdapter.getHardwareResource(resource).getName
+											 * ();
+											 */
 		}
 		return str;
 	}
@@ -384,7 +383,7 @@ public class StrictTTSchedule<S extends TaskMappingEntry<ITaskAdapter<?>, Partit
 	/** {@inheritDoc} */
 	@SuppressWarnings("unchecked")
 	@Override
-	public Class<? extends ComposablePhenotype<?>> getPTypeToRegister() {
-		return (Class<? extends ComposablePhenotype<?>>)StrictTTSchedule.class;
+	public Class<? extends Phenotype> getPTypeToRegister() {
+		return StrictTTSchedule.class;
 	}
 }
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
index 9965c4df..e85fbf07 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/.ratings
@@ -1,6 +1,6 @@
-ArchExpSubEvaluator.java 3516cc5a58514e47f965920012cf0cd738ddbaa4 RED
-ArchitectureEvaluator.java b0c504d4b75bd7286c22713282a5ae38f27db231 RED
-ExplorationTargetEvaluatorBase.java 1b45c04cb27a911806682b9f5ee18bcaa5f0ee0d RED
-ExpressionEvaluatorBase.java 600d61496b9f8cb818cb68e275d8f4260ea8cea7 RED
-ITopLevelEvaluator.java 032ec6375efff2234664690f271cec98816abcc5 RED
-TaskMappingEvaluator.java 742dd84439cfc62186a2799a1293248e2def32e2 RED
+ArchExpSubEvaluator.java b7121690c41fec70955cc76cebebc4ff64787591 RED
+ArchitectureEvaluator.java bd4d481faedd5fb0cb34ae9ab6742ed48a016444 RED
+ExplorationTargetEvaluatorBase.java d50dc78ab5d72b727f4ff305634e3f604e45ba7b RED
+ExpressionEvaluatorBase.java 0361b11e2019a9fa7c2535effde2de6afe02c56b RED
+ITopLevelEvaluator.java 1d271f29368adcb9fa68478ee70888146c91ccbf RED
+TaskMappingEvaluator.java 880a7527976c6dc61998be684997a7bc953ad064 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
index befb3254..8d8579e6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/constraint/.ratings
@@ -1,10 +1,10 @@
-ComponentMultiAllocationConstraintEvaluator.java af0a6ce0274cd07605d03048fa6ec18321c02029 RED
-ComponentMultiDislocationConstraintEvaluator.java fcb867e1317a51c8ef85de00bb958ae1ae7f576a RED
-ConstraintEvaluatorBase.java 4a0e50681708c882bf314d689e1ddce322d0cd50 RED
-DeadlineConstraintEvaluator.java 6763810616860bd149f90a653776276681ee480e RED
-IConstraintEvaluator.java bca49bbdea5e089b0d045fc356ceedcb466df55e RED
-MappingEvaluatorConstraint.java f1f44bffbef03f1650a7f026428423838b16b845 RED
-NoEmptyPartitionConstraintEvaluator.java 0cd05407f2c2958c5c26d4497b6fdca84c03ad3e YELLOW
-PeriodConstraintEvaluator.java 05cf21be06c9ae12593f870efdf9c358efa2d97c RED
-SafetyIntegrityLevelConstraintEvaluator.java 9ad7129faaa35d89af4fced7a7121a0a142cb6f1 RED
-SameSilInPartitionConstraintEvaluator.java 571c4f092ea59266d2bcd4870f2297dfc9ae1ad2 RED
+ComponentMultiAllocationConstraintEvaluator.java 1c3d042eaaec011bd4d2daaa20e3decf8a273c0a RED
+ComponentMultiDislocationConstraintEvaluator.java 851d415151da11a72f1b0b708ec264dfe97f6928 RED
+ConstraintEvaluatorBase.java 390219c84242650b2c5ed3732499a77ce815a552 RED
+DeadlineConstraintEvaluator.java dfe69382d843405eb1c9626c578f04a8c141b49c RED
+IConstraintEvaluator.java dc8c058ba3fa6dccd03f082970890f53174375fc RED
+MappingEvaluatorConstraint.java 9e704335297e306d32ad777e12df978e60e67ab4 RED
+NoEmptyPartitionConstraintEvaluator.java ef3e421ba61f9d69834189aa1d72d85e3587e391 RED
+PeriodConstraintEvaluator.java 10830bfc9386df4a9617914a4830637f3fdb90ae RED
+SafetyIntegrityLevelConstraintEvaluator.java fce18765a86640032e7135cdefc98eee9702366c RED
+SameSilInPartitionConstraintEvaluator.java 6ae270852cc66f603004ed1718406c7ff88f744d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
index 0341d8ab..cec4a3b6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/evaluator/objective/.ratings
@@ -1,5 +1,5 @@
-EnergyObjectiveEvaluator.java ad2b868aa3dce2c7708ee6cc90f357b79a4cf799 RED
-FailSilentReliabilityEvaluator.java 83211c8e2b69579c424a486cd6845bb8d1bb69fa RED
-FaultDetectionVotingReliabilityEvaluator.java 189fdfd0daed3348c510a6aeac0bd391e835c524 RED
-MappingEvaluatorObjective.java 627aa735ebc2d04ed583ee68fd465d676a1008b6 RED
-ReliabilityEvaluatorBase.java 98fa54270cba25137112fe55f3551fbd8064ac28 RED
+EnergyObjectiveEvaluator.java 55b55ad26c1ab1ec6511615678df01f08b4927b7 RED
+FailSilentReliabilityEvaluator.java b3167361dc95242d6a3bedff716890d70be12622 RED
+FaultDetectionVotingReliabilityEvaluator.java f855845cbea8a2aaba5481b3769f6b00d8683480 RED
+MappingEvaluatorObjective.java 17a9b315ed0385a1dca2a753118cae0e5f42af2b RED
+ReliabilityEvaluatorBase.java 303e2f735ec79e533522e1cfedc6b568ce5352d8 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/.ratings
index 8b4b45e1..aa09e380 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/.ratings
@@ -1,4 +1,4 @@
-DeprecatedModelGeneratorBase.java 653a6413139120d4e8949880c6b951aad09fbeaf RED
-EMFModelConcurrencyHandler.java b488636059888b61c2b4af974c1752be1d5f3d3b RED
-ITransformationModule.java 5277a9d1fd452835dbe3fe8b7182bb83edd4c0e9 YELLOW
-ITransformationStrategy.java eb72568e6df58b44ac96418c8d59c3a98715dc5c RED
+DeprecatedModelGeneratorBase.java be9e214555ee28a48d59ecd6856f7b12f5f57ecf RED
+EMFModelConcurrencyHandler.java 7db7ba7548b9785863ce3c72533b5f65307bcac3 RED
+ITransformationModule.java f995cf6c065fcac2df1f4492b33e9659e4b7d6d2 RED
+ITransformationStrategy.java 3e5dc1a41a13ccea617d598ff72bbb747deb452b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/.ratings
index 9139ba4a..caac0311 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/base/.ratings
@@ -1,4 +1,4 @@
-ElementTransformationModuleBase.java 812658d8643df59a7ebd799c85085d762ed8cfde RED
-ElementTransformationStrategyBase.java 468380f3421f4e0e39ddfa1f8ac6138b07baf1cc RED
-TransformationModuleBase.java 62c310e26a9933b668f99c657aef250bffc5fe10 RED
-TransformationStrategyBase.java 4d042b75cbdd0d2f79b0cec79e627c0e9630e512 RED
+ElementTransformationModuleBase.java bc5f586fcb5766b62b5126a5ff0ddad0e8eb63b8 RED
+ElementTransformationStrategyBase.java 1dc8dc3a4fb934bf906765b76c0884993433a063 RED
+TransformationModuleBase.java 0142ab076dccfe2961754e74b8c80f0e5e7c9520 RED
+TransformationStrategyBase.java 5d9fe2c87534a051dab79c323f28aa5576a7a3f4 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/comparch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/comparch/.ratings
index b6753592..1d7efacd 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/comparch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/comparch/.ratings
@@ -1,6 +1,6 @@
-ComponentArchitectureFinalizer.java dc9aaaa71d783537cd7ea9c0b2521932b3a5d95c RED
-ComponentArchitectureInitializer.java b3bdadb89c08659b5892564a4d37d682bb3bb23f RED
-ComponentArchitectureInserter.java 5ffe3b556a71e15b562a8a28694da830dc269b5e RED
-ComponentArchitectureInstantiator.java 0acdb5c6039f53fa01446da5af6c5bb50a854e80 RED
-ComponentArchitectureReplicator.java 72ca8f9428506f489be79b980a0c966a7b388d71 RED
-ComponentArchitectureTransformer.java f4a1ea1337dcb3aeaa99900034dd9ada9b9ee5a7 RED
+ComponentArchitectureFinalizer.java 8aa3c64b93f12d2251f304fcdb275db477a4eec2 RED
+ComponentArchitectureInitializer.java 5a005c23b05705e8fac4bd923ec6cae5a1a9feed RED
+ComponentArchitectureInserter.java 3ecef8e87be344a48ded69cd4ca63cdacbf02abe RED
+ComponentArchitectureInstantiator.java 15a4c9ca75fd66fec93714b6626ccc1eb134984d RED
+ComponentArchitectureReplicator.java 704781b1cb803c643608b458aebcbb7bf7548fc6 RED
+ComponentArchitectureTransformer.java 89152cc839b053c06cc8b289d97d96f56932e76e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/deployment/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/deployment/.ratings
index 8b0b1f1f..4b2877a0 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/deployment/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/deployment/.ratings
@@ -1,4 +1,4 @@
-DeploymentFinalizer.java ce2c53558f008636c3c9f3bddd8432518c0545f1 RED
-DeploymentInitializer.java e190b0fe5af29c887ed59e011d68cdda5f59cf1d RED
-DeploymentReplicator.java 6877c3626ef0ee56db14b0af8688e7ec107290bb RED
-ExplorationSolutionToDeployment.java 6841d5ada7db04f5e6aa68ae40865a3c958ef643 RED
+DeploymentFinalizer.java 23dceff006ee88d2b6cbc19477b7b403c032ca30 RED
+DeploymentInitializer.java b776e12bc184322c5dd75b83c9bbf584b216e265 RED
+DeploymentReplicator.java d717aabfa1705734127e60fa831e648e340db78d RED
+ExplorationSolutionToDeployment.java 1d5c54914de0949ee18830e15021d7970ec1a114 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/dseinternal/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/dseinternal/.ratings
index 12b66ab7..8fb3bfcc 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/dseinternal/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/dseinternal/.ratings
@@ -1,6 +1,6 @@
-ComponentExecutionUnitTransformation.java b4a88521187c8b114fa50bf239a17213add9f746 YELLOW
-PartitionToExecutionUnitTransformation.java 0d93bf39fed3af7f1b0b018bb14893c67ad038ae YELLOW
-PartitionTransformation.java e4f6120eaa59bf853c08918de821382b9390b18b YELLOW
-SuperSetTransformationBase.java 166ece983c1e010f18ed69dc072bd66e9cc94d08 YELLOW
-SuperSetTransformationStrategy.java 305d149e8e7044ea307738f1da2b483af689a726 YELLOW
-TaskToPartitionTransformation.java 12a5e5cc4031e590819970d781b88966dcac31b6 YELLOW
+ComponentExecutionUnitTransformation.java 7eaeba02c12e7a7116ef2cc990c5cbeb900616f4 RED
+PartitionToExecutionUnitTransformation.java c94d7e45718ad7dea22a526bece11c8e2c27bd10 RED
+PartitionTransformation.java 840b975e39f5de8d4831f8153d9b690fe4a4b681 RED
+SuperSetTransformationBase.java f74544987d49beab335544f5e8a543c9f07ae9a7 RED
+SuperSetTransformationStrategy.java 0f658d7bdc90847d4cb809afaef408b5e0ed7615 RED
+TaskToPartitionTransformation.java 5c91f8b4c09c16ba82cf132ec8654a39785e4d5b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/element/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/element/.ratings
index b949ac98..958bc569 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/element/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/element/.ratings
@@ -1,2 +1,2 @@
-IElementTransformationModule.java 74944b50aa164aaa00a760c43674e5c7c5b168f7 RED
-M2MCopier.java 06c90ca296218bf0d5a39215e4200eeb41abd22e RED
+IElementTransformationModule.java 214929f166795c3201bbaab3836b91e6f637566a RED
+M2MCopier.java afd51ed6e73a1e5fc30d60bf90727df9d13da7ba RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/graph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/graph/.ratings
index 80622786..5358bffb 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/graph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/graph/.ratings
@@ -1,2 +1,2 @@
-ElementModuleDependencyGraph.java 4b7b44fbf093f72901dd47e54d4b47c3a30b483c RED
-ElementTransformationModuleEdge.java 3b135b061d35484ac51b5041eac382bc775ea211 RED
+ElementModuleDependencyGraph.java bbb0fc47cdeec172763aa86fd1adb9928caa9b35 RED
+ElementTransformationModuleEdge.java 41abe25b65171af96c3496d29194aa4a8317d0da RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/partition/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/partition/.ratings
index 35170dce..e52a0c0b 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/partition/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/partition/.ratings
@@ -1,2 +1,2 @@
-PartitionTransformationStrategy.java 220d5175ac8ff958f82c053a934095880540fcd3 YELLOW
-PartitionTransformer.java 3226c719980e12590e02eea5b01652b19b290577 RED
+PartitionTransformationStrategy.java 5d29815ba2e501a3423af8ceac831e4a2fd31e8e RED
+PartitionTransformer.java d61f8d062daf4ba9109dfe28a1d8e1e32ae8003c RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/safety/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/safety/.ratings
index bd0ee265..7aaa8c32 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/safety/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/modeltransformation/safety/.ratings
@@ -1,2 +1,2 @@
-SafetyChannelPortReplicator.java 6fc6a909be6baa4d73501cd6d9759b5a47870057 RED
-SafetyDiagUnitRemover.java b3ce9c265511692802ce3c519c5ae2820e5d8ae0 RED
+SafetyChannelPortReplicator.java 5990480f0a7fc3ee1671ab71cf6a650aeb4e7dce RED
+SafetyDiagUnitRemover.java b1a08fa29528ef5df0c21f47161173cf65b94554 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
index 89f21dad..8ac275c4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/.ratings
@@ -1,2 +1,2 @@
-FailSilentExecModelFactory.java 5e9acef92029f7f1cabffb5c1d61f99168a075a6 RED
-FaultDetectionVotingExecModelFactory.java 0357061405b68dcc9f02f17c14fb4bac2f0fd888 RED
+FailSilentExecModelFactory.java 4ee468ad45b7548ee06b0ce3aaa417cbcbcec282 RED
+FaultDetectionVotingExecModelFactory.java b8c7d062f624c18a41bc4ee26e0e8299a82f5cdb RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
index 6ae08730..7152e0ce 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/.ratings
@@ -1,17 +1,17 @@
-ICommunicationResourceAdapter.java 54dd128bfa04c5cfd16551eec8983e712636f86a RED
-IComponentAdapter.java c8425150287be21b48d686469b88ea7fb77793e4 RED
-IExecutionUnitAdapter.java a93c835d5dce6a6054eea7b0abb9663c04a335b8 RED
-IGatewayUnitAdapter.java 5f806d2907ee461938eea14238572311572ecf81 RED
-ILogicalArchitectureAdapter.java 7570a2adab987260e74bc255fcf21862a820226e RED
-IMemoryUnitAdapter.java 588840b8237bd23a048a69961ffe985caf3b425b RED
-IModelElementAdapter.java 3f6ae2fdc68ffed2728d2f895dc287864053e352 RED
-IPlatformArchitectureAdapter.java 0a785dcff9147e1904751714ccd61ed758e0f1fe RED
-IRequestAdapter.java bb7b3c05c4f52215cd79b27207bad8ce66a28506 RED
-IResourceAdapter.java 634866895c9d1aa427f3c8d47e69acd807d0b582 RED
-IResourceConnectionAdapter.java 7e20a8c3e60a9892597301556c891ba2dd43387f RED
-ISafetyFunctionAdapter.java f20249e7c37f54774a9e8eaa0566a85492c80654 RED
-ISignalAdapter.java 4f04154c5802a4f1a5469df90652852e16727421 RED
-ITaskAdapter.java ea35d5d3c9482c3a3f4452eec7fa0e825552be59 RED
-ITransmissionUnitAdapter.java 8965b73bfe9ef232a2a6d5427f7001761716d583 RED
-InternalComponentParameters.java 2b19f4eeddee84e4c6e558ed9a1613cba33b7665 RED
-SystemModelAdapter.java 3621d4aaaeb8b5913194dc4cc6182c20f305149b RED
+ICommunicationResourceAdapter.java 05fba6a2c158545f28393eb4c845b2ace86eb99d RED
+IComponentAdapter.java 2dfb64428d4edc278e6b5f7c3f21e44d07196917 RED
+IExecutionUnitAdapter.java a73348f4bff9a9c8f4a3f0e60177490e2e228388 RED
+IGatewayUnitAdapter.java dcf6aa0afcb20d3035b3034e2183c5dfc867e9b9 RED
+ILogicalArchitectureAdapter.java 2dea1c829c1542ffa788b669ae979854ae7e8480 RED
+IMemoryUnitAdapter.java c4093302720e21dec978479051184c842f1061d4 RED
+IModelElementAdapter.java a7620a897eb9ebfdcaf869ebb25e112d900b5622 RED
+IPlatformArchitectureAdapter.java 399d3cdff468c5ac95ca4cf6f17caabdeb2fef16 RED
+IRequestAdapter.java d9298837caf9e15971471aae0bb567e416e82a41 RED
+IResourceAdapter.java 4d41218b96f25daedad66098250baf622a3f89b3 RED
+IResourceConnectionAdapter.java 67d0a7f54de3e3fe21532fc33f6b853eb844b993 RED
+ISafetyFunctionAdapter.java 503745b2c45c19995f37b10e8d640aeca06d5154 RED
+ISignalAdapter.java 2bdb578564cf1d3351c99811c9090e2e9bd70715 RED
+ITaskAdapter.java 0f8c8699bb48e609211713aef6a7e1e82a00c963 RED
+ITransmissionUnitAdapter.java 217aca158641261dc8035805f341fe4c4c527a36 RED
+InternalComponentParameters.java cd5eea4ddf104c4cb3c4521d3256566812876027 RED
+SystemModelAdapter.java f92341ec7813ad4301b0f3abc084b3dbc6f8055f RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
index 2a9765d6..7c71b98c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/.ratings
@@ -1,13 +1,13 @@
-AF3ExecutionUnitAdapter.java fcc78cb56ae62cc56e2d2985d3586296a226c7b6 RED
-AF3GatewayAdapter.java 4a9d8c3d10c3c92867caea37bbce199b9e634741 RED
-AF3LogicalArchitectureAdapter.java b129b15fefcd1864df1d2584f2ca0820ef6600c4 RED
-AF3MemoryUnitAdapter.java f4846d229dedc3b2b8e023204d0101e2a8c1c0c2 RED
-AF3ModelElementAdapter.java 9266176a61425e1af8efd4ea37856d67c93dbddb RED
-AF3PlatformArchitectureAdapter.java fb657d182999dc73eed16c0adc57c5876c8104b9 RED
-AF3RequestAdapter.java 7cfea424beeacaac81b48efd4e1c24270dcb3929 RED
-AF3ResourceAdapter.java 00070d4e3ec7f19a672b6295c546fa1d30d7fc50 RED
-AF3ResourceConnectionAdapter.java 0e791fd7d9602f4cf00f54c6254d31f1c9cc72b0 RED
-AF3SignalAdapter.java bc102b65b929393808eb747572f9ae05b04a8856 RED
-AF3SystemModelAdapter.java e6ea1aaae3c4867cfc38487d7534e847794fdb82 RED
-AF3TaskAdapter.java e59896eeb0a268435075474947a51fa0689df554 RED
-AF3TransmissionUnitAdapter.java 0ce1a08c29d75a05fb49668d02abddd852487a4c RED
+AF3ExecutionUnitAdapter.java e0a7927c59a16a7f73fe21c4e34267dfede20e02 RED
+AF3GatewayAdapter.java cbfca3b46722cd0e01fa90ffffc4664da369019f RED
+AF3LogicalArchitectureAdapter.java 9bdbd0203f4df4f7a1c2d8e2a7e4d817e8311d5c RED
+AF3MemoryUnitAdapter.java 4d896d2e564a5fd4d88aa00db5aa3a29d3966ad1 RED
+AF3ModelElementAdapter.java 33016711535fdf5d82ef14b91886f68e8b5ebc19 RED
+AF3PlatformArchitectureAdapter.java d5a5a7a88e7fca74d747d4e7720419265c38defe RED
+AF3RequestAdapter.java c859ff360212cdab994895ee84390a235922c3cf RED
+AF3ResourceAdapter.java ca6c78c2cffe0e7c2d28990138e309b851a192d7 RED
+AF3ResourceConnectionAdapter.java 56a9eb31aa8a64702bf82b5c072ccdc3cd32bf53 RED
+AF3SignalAdapter.java 7d124a5c25b8267fa3be16d897253252f96c21c7 RED
+AF3SystemModelAdapter.java 07b8ad0613452cd08b3ef588b7de3c9cbfb3021e RED
+AF3TaskAdapter.java 4ee4e1bcf1f4780f0a4f069d1a0bcf177a241dc7 RED
+AF3TransmissionUnitAdapter.java 41e176391fbb7577fc63b790d3f508d8eeffc445 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/helper/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/helper/.ratings
index fd8bd4ac..746d7d2c 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/helper/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/af3/helper/.ratings
@@ -1 +1 @@
-AF3DeploymentParameterMapAdapter.java 0ddaa1c4eb1cbe2daf72854b266acfe8f85c6e70 RED
+AF3DeploymentParameterMapAdapter.java 070e98cb28028de49305025bf7db0918479c4a85 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
index 1ddc3c73..94515c54 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/arch/taskgraph/.ratings
@@ -1,5 +1,5 @@
-AcyclicTaskGraph.java c8fa01f3ad30f0cc5980838636355a2e041b5cbb RED
-DefaultTaskGraph.java 8c384e8dfd6f9806a04b68b45855ba75dd558a50 RED
-SignalAdapterWeightedEdge.java 6b7dbae1c2e7a658b33c3c7a584cee13b2269891 RED
-TaskGraph.java 90289a46be5c6ad658a06f4ff17d6da648fc97e8 RED
-TaskGraphInstantiator.java bfda013ddc6f4a9d2b063dfa7187827be1cdac73 RED
+AcyclicTaskGraph.java 51100f233b5f74b041e90567792cc6749323bb82 RED
+DefaultTaskGraph.java d93154c7edf376e60e46f5f3b164bfa7d939b959 RED
+SignalAdapterWeightedEdge.java b40989eecb8e94357476bfc5c7e9ef7e59013c9e RED
+TaskGraph.java 27fdf1acbbc10d47db9a4a7f20eaa7525a599aa9 RED
+TaskGraphInstantiator.java 1f8a218f8c4ad885ca7d7d9560932f0f6a063a7b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
index 39ee99a8..6f62fe77 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/comm/.ratings
@@ -1,2 +1,2 @@
-Message.java e6aeffa00605318214ba100758b988b500acfe8c RED
-MessageGenerator.java 841882d4cce69b7bb6cfa4dea4331f7dcfdb0038 RED
+Message.java d4b5432ef03c3630ad1cbb8bd12b867a851f1559 RED
+MessageGenerator.java 13d7678c5043b61a3306ffc50f8af97842ae0817 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/faultmodel/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/faultmodel/.ratings
index 70c5fce3..021ef362 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/faultmodel/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/faultmodel/.ratings
@@ -1 +1 @@
-FaultDetector.java c7dbe496029497f89373225ebd549047c4c490e8 RED
+FaultDetector.java d0774cef6e96b0be40b3d32d4756e8d5ed89d913 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/.ratings
index 9f82cf5a..5554d72f 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/.ratings
@@ -1,2 +1,2 @@
-IMappingEncoding.java faa8d770688ae74d54318b155be59d39a3fe3cd9 RED
-IMappingEntry.java 21bbb8e403894b56a0b0b97685fa526c4ea01c25 RED
+IMappingEncoding.java 02378fcb8e8982995e1fc63d6a6c420ee365ec3e RED
+IMappingEntry.java 616cd919c2519391255f0829626833789f76193c RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
index 5aa80abe..0cb033ff 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/mapping/comm/.ratings
@@ -1,3 +1,3 @@
-IMessageRouter.java 502b0083ba82de6a70813c4c7ca9606ebb2ba65f RED
-MessageRouter.java 8dd059bfa4dabdf1939fb8e46d0499cf2a13664d RED
-ShortestPathRouter.java 1b82cb1fe083ec06411d399ef37d3fdddc7993aa RED
+IMessageRouter.java 1117e989c2a92e41639f6304d5a729f1fa225305 RED
+MessageRouter.java 3a0cbe363bf10ba384c7b1d2e42526f3178653a0 RED
+ShortestPathRouter.java 5625b3183184d3afb7041d1c333adac5ea6aea0d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/random/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/random/.ratings
index 47ef13c7..60eda96a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/random/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/random/.ratings
@@ -1 +1 @@
-RandomExploration.java 41da623c8c658cf79485fb4ad89d1498e56827b5 RED
+RandomExploration.java 3b974e42f1e576a7870299cbeb47b2680fc8852e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
index 73faf2e3..e8d483c7 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/.ratings
@@ -1,2 +1,2 @@
-ScheduleRuntimeException.java d682adaaaff3d366cc6b55dd9c8e9c30bbc51152 RED
-SchedulerBase.java a80ea719f9bfc7d3298515e343b725208d5c1e9f RED
+ScheduleRuntimeException.java 88fefc07c8fdffc468fb8b49ccc4a38864823277 RED
+SchedulerBase.java e6e6cde677b0435fd247b80efd8cd9c662a2ba51 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
index ebcee155..1ab65ac6 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/comm/.ratings
@@ -1 +1 @@
-TDMABusScheduler.java b711592d931474543263e86dccd3b5ac39b17f22 RED
+TDMABusScheduler.java 20b532bc5028b4ab0e117f12001d9138b4ee00d8 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
index ecbc1135..53bbb73e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/dse/sysmodel/sched/proc/.ratings
@@ -1,3 +1,3 @@
-EDFSchedulerBase.java 8bbcd90eeb796de2072d74cd7b669083c2b1bb73 RED
-FailSilentEDFScheduler.java 14c2fbb0ece5087d7c004fb372ad83fa6e85e5cc RED
-FaultDetectionVotingEDFScheduler.java 0d34f4702e29c2610b26656ca07288cfb8b5012e RED
+EDFSchedulerBase.java a8da54ef6ed72e0b7c13f21910e4d148f918d2a1 RED
+FailSilentEDFScheduler.java 6dcfc322b509231a9d621c8f6277ee411df59c5f RED
+FaultDetectionVotingEDFScheduler.java af93ad1d506c88e5969dfde32523e0bd5956bc2b RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
index 1f3e129b..391a96bd 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/exception/.ratings
@@ -1,7 +1,7 @@
-ConstraintGenerationException.java 19f797ab00ccc39baada10cb09f8b90ab0601e9f RED
-ExplorationException.java b0fa9bc9f35234d02f5fb3bd8df210041ba733e3 RED
-ExplorationServiceException.java b51423a0cb273141f8e2c6f1758be99cca05ee30 RED
-InvalidModelException.java 52051b92f446aad76e1de425d9f550160b053525 RED
-InvalidPlatformModelException.java 15d709d1fc33ca99494632cdcde5959e29d4d985 RED
-InvalidTimingModelException.java 42f0053807eca0492d047cbe6b2e1ecb0fa2dba7 RED
-TransformationModuleException.java 474c084589d5e530b3573dd5af43b594c8d3221e RED
+ConstraintGenerationException.java ea88d94abb652ec0c5788cb9f9856b866e7abf09 RED
+ExplorationException.java 62ce085f34132afc32eaf8ca579ae8926a3d3b70 RED
+ExplorationServiceException.java 0d93a35ea1b510d199866b9d847ae2bfa92c48cd RED
+InvalidModelException.java f5ef624ea79418ee5f6bc6acea9126094ec27c49 RED
+InvalidPlatformModelException.java b0e93b8e9b703dc33825c71d7bc542abda83a2ef RED
+InvalidTimingModelException.java 014945b26fffef745844be500ef4c2efe0bc9a27 RED
+TransformationModuleException.java 636e1e6c408539953a356c5fc9429c7f333b5e09 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/.ratings
index 6eefaced..b8cf7a4e 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/.ratings
@@ -1,3 +1,3 @@
-DependencyEdge.java 2de1bcec554c6167f132b3808040704867c65b7f RED
-DependencyGraph.java c00ed51a15597aad876b80d2a323c9053c1b5995 RED
-IDependencyModule.java 51c66e0f96ef56e9c5f34ead3b4efeddf2193b55 RED
+DependencyEdge.java d2b3c82e1830947d42f833b1dd91d36f99a8d307 RED
+DependencyGraph.java 745cb18dfa5992412c063d6280c44ede081e54b2 RED
+IDependencyModule.java 8db4ecbd0a6aa1457bd69f2729028c1b10487a0d RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/display/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/display/.ratings
index 4e939f8b..4f2f9d1a 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/display/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/graph/display/.ratings
@@ -1,6 +1,6 @@
-AF3JGraphTVisualizer.java 3608982f88f8605806a93887c7637f05cfaad39f RED
-JGraphTVisualizer.java 178b8a5caeba118ce61d867a4f090bdfaaa33021 RED
-NamedAF3Vertex.java a149c2cc614086aeac840e5624af97b906802a4e RED
-NamedVertex.java d7f25cd2df6da0569a4b7bcad23683a1cd9d244e RED
-ObjectJGraphTVisualizer.java 284fd7554765867b5b08701e502063c54d55ea05 RED
-ObjectVertex.java e9249d0502db6fe91b70f333c5dbe30ceadbc0e8 RED
+AF3JGraphTVisualizer.java b24de8c69d8b01a5e99984285b43148a22d08df7 RED
+JGraphTVisualizer.java 183316386cbee6351d349a3177d15552e86d66f9 RED
+NamedAF3Vertex.java 75960acc9e31b7836f36c628b2f7ddd3c646fcac RED
+NamedVertex.java a2cdd4a51ef197955fa34538524a97c7eac07ff0 RED
+ObjectJGraphTVisualizer.java e248dd681bcc22d636172028c2180893164cc496 RED
+ObjectVertex.java e4713c9c57475e9beb91c1ee15984634dcdc8132 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/guava/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/guava/.ratings
index 0262f68f..2f86da22 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/guava/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/guava/.ratings
@@ -1,8 +1,8 @@
-HashTypedBiMap.java 42b26cdc6293781345c92a900165ce91f36cc16d RED
-IAssociativeElement.java 3685e686f8806d07e2a929ef037800ea655b2b3c RED
-ImmutableSubClassToInstanceMap.java cf423599e9d43e57d67b0c5bb1ef4d82618a4cb7 RED
-MutableSubClassToInstanceMap.java 4491236782cd148b9ca7ec367e3f1dc5b3ea891d RED
-SubClassToInstanceMap.java 546914eb037ea04929dbbd365ae1d07ac8156387 RED
-SubClassToInstanceMultiMap.java bd5b5c9d7d977f520d142d093fc70fc12525bce8 RED
-TypedBiMap.java 47d5dacfea8fdb26d2619922dc785857549b75cd RED
-TypedPair.java 2d87f3d048801a62bb0326e555c6affc6c2c854f RED
+HashTypedBiMap.java c0ac75414051a5d3f6c435b676d5f0223fb55c21 RED
+IAssociativeElement.java a9a2c913a3942b899c8de574ed2de6f22b8aa86d RED
+ImmutableSubClassToInstanceMap.java d7bb12a2efea3b83d5301db212dd7c29cd6fce0b RED
+MutableSubClassToInstanceMap.java f7be57a417b601b8823adf75a2dde595a3d39748 RED
+SubClassToInstanceMap.java f43d8dc1f2d64df8611936786af6896bbbcafeba RED
+SubClassToInstanceMultiMap.java 12706be5015f394412ffd2f4c3e84ba342c2c643 RED
+TypedBiMap.java aec6fea96f0d2099bcd13e86e01f9262eb61f6a8 RED
+TypedPair.java 8f5afd7b710b993a5aea4865d50dd5fe49a5436c RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/plot/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/plot/.ratings
index cf90b997..1d233453 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/plot/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/plot/.ratings
@@ -1,7 +1,7 @@
-MessagePathOnClicked.java e90438a9aa7342112e9c7f9ff9d5ea85d1e3a445 RED
-ScheduleGanttRenderer.java 1ebd6405da88417a9cc8464913a1ad5206ff897f RED
-ScheduleLabelGenerator.java 0ceecedfec9802bbcaa33525d61e1a60a70d3841 RED
-SchedulePlotter.java 29b1156c9419d4ff3314c4b2c932aeb46f4749f8 RED
-ScheduleToolTipGenerator.java cedfa0dd7ebc7b48d7cc70e966eebaeee9636caf RED
-TaskSeriesCollectionFromSchedule.java b53b7af649c48980520ad572da8c7bbdbae0aed5 RED
-XYPlotter.java a70c65b6138805d91ad1db551bcc4e7cfc1dc200 RED
+MessagePathOnClicked.java 3f375950a59fedad5e2cd025c6c019ec5a1355d5 RED
+ScheduleGanttRenderer.java 8696a7574f53b35bc0909e364c430d1f6aa184ee RED
+ScheduleLabelGenerator.java 3a96dc0798916a7b661f9529abbf361efdba607b RED
+SchedulePlotter.java 993bef41fc93598306cae509b716141722de53ab RED
+ScheduleToolTipGenerator.java 6fe9d52c967859255527c91a724ad18a785bcab8 RED
+TaskSeriesCollectionFromSchedule.java 2d63e095ecc978ac9c8770590c31fa2bef0ea0b6 RED
+XYPlotter.java a572858c9b5a3f2cf62bc0860b19499925f30a64 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
index f21d7f04..8820428d 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/.ratings
@@ -1,13 +1,13 @@
-ExplorationEncodingMap.java 061b6c18f34c3584890ec0630ec40bac1eee7c1c RED
-ExplorationService.java f5067724b280208d9a7f59f417a068cbc7a20416 RED
-ExplorationTransformationInputs.java 8ea50adb65b4f886d8acb68a9f1f7f116afde588 RED
-IExplorationConstraintTransformationService.java 3f90632a2747970f35e653a236c9c1286a7cd637 RED
-IExplorationContraintTransformationModule.java d20eeca8e0d7c5948fb8abbd5d7cf267fc502fba RED
-IExplorationEncoding.java 510843700127afb540eda56934dbac3726b63529 RED
-IExplorationEvaluatationService.java 0b4af374a83386f3ac0e7fa8ba47b571da6fe58a RED
-IExplorationModule.java 8990c654e649f043fa9813b8bf9113ac7bd42d27 RED
-IExplorationRepairService.java e923c43c49e0c83daef71707d5fdb66444f859f8 RED
-IExplorationService.java 891b8c4ce01e40ab31bf69231a63fd61c57ac98e RED
-IExplorationTargetEvaluator.java 9b39b44f64ad8195583b00f8e3852bbc912f75fc RED
-IExplorationTransformationService.java 5430b63426e704516b560d142b46ae702e07f726 RED
-IRepairModule.java 498a5b0ff519482af41db2916b1eefd1142cc9df RED
+ExplorationEncodingMap.java aaea06f5731018d159a04266c92f1a701e461323 RED
+ExplorationService.java 013434bf2fd9ae6d97b2540874b2fa7d75e280e2 RED
+ExplorationTransformationInputs.java 3374ce609b50e69c3c29f1eb79bee25cd06b181d RED
+IExplorationConstraintTransformationService.java 06c5e34e4c9e5b752b7747f5ac853f7b8f756867 RED
+IExplorationContraintTransformationModule.java 3fad662f1740ca2e8d050d1854dd8b381674f758 RED
+IExplorationEncoding.java f58adbcf840af521333c2777f50041a60548bff3 RED
+IExplorationEvaluatationService.java 045d9cc5e1a25d51762efe49fed1d705414c5507 RED
+IExplorationModule.java d965e3a98447dcc46c803bd83a8eb449903c926d RED
+IExplorationRepairService.java 9fdbc6c62436e32f1ebc7f3e6c43517199271f32 RED
+IExplorationService.java 5d460284b816e77c496f35c13380e044cc18c689 RED
+IExplorationTargetEvaluator.java 8fbebfdd30a4cb23758fc78600bdc8548a5452b9 RED
+IExplorationTransformationService.java b16fb771873374a3cfd31b8e942af030e689774e RED
+IRepairModule.java 170c6556f6a4375ebf092a18f964d8ef306ce2b0 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
index 224f014d..aaea06f5 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/ExplorationEncodingMap.java
@@ -20,19 +20,18 @@ import java.util.LinkedHashMap;
 import java.util.Map.Entry;
 import java.util.Set;
 
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 
 /**
  * Allows to capture the already created/decoded {@link Phenotype}s and pass them to their successor
  * creators/decoders as a flat map that associates a {@link Phenotype}s type with its instance.
- * Using a {@link CompositePhenotype} for this job allows to "protect" the internal map from
+ * Using a {@link Phenotype} for this job allows to "protect" the internal map from
  * unintended read/write operations.
  * 
  * @author diewald
  */
-public class ExplorationEncodingMap<T extends IExplorationEncoding>
-		implements Iterable<Entry<Class<? extends T>, T>> {
+public class ExplorationEncodingMap<T extends IExplorationEncoding> implements
+		Iterable<Entry<Class<? extends T>, T>> {
 	/**
 	 * Map which correlates the {@link IExplorationEncoding} classes with their corresponding
 	 * {@link IExplorationEncoding}s.
@@ -55,8 +54,10 @@ public class ExplorationEncodingMap<T extends IExplorationEncoding>
 	 * {@link IExplorationEncoding} of the given type
 	 * can be found, {@code null} is returned.
 	 */
-	public <E extends T> E getEncoding(Class<E> subGenotypeClass) {
-		return getEncodingInternal(subGenotypeClass);
+	public <E extends T> E getEncoding(Class<?> subGenotypeClass) {
+		// FIXME: Temp HACK to simplify the decoder dependency management. This map will be removed
+		// during the rework.
+		return getEncodingInternal((Class<E>)subGenotypeClass);
 	}
 
 	/**
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
index 91a95e28..451ccb10 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/.ratings
@@ -1,4 +1,4 @@
-ExplorationConstraintTransformationService.java 80031ad626c327df10bc00859a4036844544553b RED
-ExplorationEvaluationService.java 259ace09d86990428fb2ff9cfbff552cb4a69be8 RED
-ExplorationRepairService.java ac50a5e53792c6793ff4b8ad5aa9812141990f5c RED
-ExplorationTransformationService.java 44817e9380c88d538b094b0930b88b2ce0f03b89 RED
+ExplorationConstraintTransformationService.java 5e7117398827ae129b3c9a8a16457d816ba665a7 RED
+ExplorationEvaluationService.java 96fdc6ba227cb73af2073589557364d64d93b7af RED
+ExplorationRepairService.java 940ceda7c8c48f282132355249af1fe0a005c0f5 RED
+ExplorationTransformationService.java 36e2368dd6098e1f3aa210a6defd4f269628e28a RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
index dd4e3846..96fdc6ba 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/service/internal/ExplorationEvaluationService.java
@@ -23,7 +23,7 @@ import java.util.HashSet;
 import java.util.Set;
 
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.evaluate.ComposableEvaluator;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.problem.EvaluatorWrapper;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.SystemModelAdapter;
@@ -155,7 +155,7 @@ public class ExplorationEvaluationService<T extends IExplorationTargetEvaluator<
 			// @CodeFormatterOff
 			Collection<Class<?>> curNonPhenotypeInputTypes =
 					filterSet(allRequiredInputs,
-							t -> !(ComposablePhenotype.class.isAssignableFrom(t)
+							t -> !(Phenotype.class.isAssignableFrom(t)
 								   || Genotype.class.isAssignableFrom(t)));
 			// @CodeFormatterOn
 
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
index d9ef439a..2ac7d817 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/.ratings
@@ -1,7 +1,7 @@
-AF3Utils.java c48bfa348731c379205d72fbf0380f505e15176d RED
-DesignSpaceExplorationModelElementFactory.java 73368ff5bd5ab3dab10aca6a331e14cbde440f59 RED
-ExplorationAlgDebugUtils.java 06116a61e99717a59b7b01e4e2865bf044a8a0e2 RED
-ExplorationAlgUtils.java 3571ce1be1bcc997d800c59e0108544293194e70 RED
-ExplorationEcoreUtils.java 48ed07aec3cd93e66d37abc10d50636d591f1c71 RED
-GraphUtils.java 8b25592f30645f7709af527c72551f038a163833 RED
-TransformationUtils.java 9b424a20d117a601f9c6a4a4a4ee9e4879c29195 YELLOW
+AF3Utils.java f372a35e0c0197ba8c18fdef66fe7e5ab468acc0 RED
+DesignSpaceExplorationModelElementFactory.java bc6a6462bb655f3709afbc6b0c50ccd4f9764b5d RED
+ExplorationAlgDebugUtils.java acdb59e8a413c89e26f91b8829149afcb8328600 RED
+ExplorationAlgUtils.java 3ae0811b433c0be37af094086aff720cb42ea862 RED
+ExplorationEcoreUtils.java d816b750378d2bcbd307ff86e121c8d38ef5c28b RED
+GraphUtils.java 12f6e2910b408b4a0f5df5c778667c0952853ff5 RED
+TransformationUtils.java 71f17505a2b3b7084193309b3da6345b25f5a03e RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java
index 4a635759..acdb59e8 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/alg/util/ExplorationAlgDebugUtils.java
@@ -27,8 +27,7 @@ import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.Ta
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEncoding;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.encoding.taskmapping.abstractmapping.AbstractTaskMappingEntry;
 import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.genotype.ComposableGenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.ComposablePhenotype;
-import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.CompositePhenotype;
+import org.fortiss.af3.exploration.alg.dse.backend.opt4j.extensions.compositegene.phenotype.Phenotype;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.arch.ITaskAdapter;
 import org.fortiss.af3.exploration.alg.dse.sysmodel.mapping.IMappingEntry;
 import org.opt4j.core.genotype.CompositeGenotype;
@@ -45,34 +44,34 @@ public class ExplorationAlgDebugUtils {
 	 * TBD.
 	 */
 	public static <E extends TaskMappingEntry<ITaskAdapter<?>, Partition>> boolean
-			checkTaskMappingForSFConsistency(
-					TaskMappingEncoding<ITaskAdapter<?>, E> encoding) {
+			checkTaskMappingForSFConsistency(TaskMappingEncoding<ITaskAdapter<?>, E> encoding) {
 		// TODO #checking: Implement this method in a generic manner to check the number of channels
 		// of safety functions with the entry number in the allocation encodings.
-		Collection<E> sfEs = encoding.getMappingEntries().stream()
-				.filter(e -> e.getSource().getName().contains("SafetyProtection"))
-				.collect(Collectors.toList());
-		Collection<E> ioEs = encoding.getMappingEntries().stream()
-				.filter(e -> e.getSource().getName().contains("IOServer"))
-				.collect(Collectors.toList());
+		Collection<E> sfEs =
+				encoding.getMappingEntries().stream()
+						.filter(e -> e.getSource().getName().contains("SafetyProtection"))
+						.collect(Collectors.toList());
+		Collection<E> ioEs =
+				encoding.getMappingEntries().stream()
+						.filter(e -> e.getSource().getName().contains("IOServer"))
+						.collect(Collectors.toList());
 
 		return sfEs.size() == ioEs.size();
 	}
 
 	/**
-	 * Returns the set of all {@link ComposablePhenotype}s that are contained in the given
-	 * {@link CompositePhenotype}, or any of its sub {@link CompositePhenotype}s.
+	 * Returns the set of all {@link Phenotype}s that are contained in the given {@link Phenotype},
+	 * or any of its sub {@link Phenotype}s.
 	 * 
 	 * @param compositePhenotype
-	 *            {@link CompositePhenotype} whose child {@link ComposablePhenotype}s shall be
+	 *            {@link Phenotype} whose child {@link Phenotype}s shall be
 	 *            identified.
-	 * @return Set of <i>all</i> child {@link ComposablePhenotype}s.
+	 * @return Set of <i>all</i> child {@link Phenotype}s.
 	 */
-	public static Collection<ComposablePhenotype<?>>
-			getAllSubPhenotypes(CompositePhenotype<?> compositePhenotype) {
-		Collection<ComposablePhenotype<?>> allSubPhenotypes = compositePhenotype.getSubPhenotypes();
-		pickInstanceOf(CompositePhenotype.class, allSubPhenotypes)
-				.forEach(p -> allSubPhenotypes.addAll(getAllSubPhenotypes(p)));
+	public static Collection<Phenotype> getAllSubPhenotypes(Phenotype compositePhenotype) {
+		Collection<Phenotype> allSubPhenotypes = compositePhenotype.getSubPhenotypes();
+		pickInstanceOf(Phenotype.class, allSubPhenotypes).forEach(
+				p -> allSubPhenotypes.addAll(getAllSubPhenotypes(p)));
 		return allSubPhenotypes;
 	}
 
@@ -85,12 +84,12 @@ public class ExplorationAlgDebugUtils {
 	 *            identified.
 	 * @return Set of <i>all</i> child {@link ComposableGenotype}s.
 	 */
-	public static Collection<ComposableGenotype>
-			getAllSubGenotypes(CompositeGenotype<?, ?> compositeGenotype) {
+	public static Collection<ComposableGenotype> getAllSubGenotypes(
+			CompositeGenotype<?, ?> compositeGenotype) {
 		@SuppressWarnings("unchecked") Collection<ComposableGenotype> allSubGenotypes =
 				(Collection<ComposableGenotype>)compositeGenotype.values();
-		pickInstanceOf(CompositeGenotype.class, allSubGenotypes)
-				.forEach(p -> allSubGenotypes.addAll(getAllSubGenotypes(p)));
+		pickInstanceOf(CompositeGenotype.class, allSubGenotypes).forEach(
+				p -> allSubGenotypes.addAll(getAllSubGenotypes(p)));
 		return allSubGenotypes;
 	}
 
@@ -103,8 +102,8 @@ public class ExplorationAlgDebugUtils {
 	 *            {@link AbstractTaskMappingEncoding} to examine for consistency.
 	 * @return If the mapping is consistent w.r.t. the {@link InternalIsolatedCommunicationSet}.
 	 */
-	public static boolean
-			mappingContainsAllIsolationCommEntries(AbstractTaskMappingEncoding encoding) {
+	public static boolean mappingContainsAllIsolationCommEntries(
+			AbstractTaskMappingEncoding encoding) {
 		Collection<InternalIsolatedCommunicationSet> constrs =
 				encoding.getConstraintsOf(InternalIsolatedCommunicationSet.class);
 		// TODO: Remove the ugly casting when converting the internal constraints into "real" ones.
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/dsl/model/patterns/impl/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/dsl/model/patterns/impl/.ratings
index 2c853377..a73ff1d1 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/dsl/model/patterns/impl/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/dsl/model/patterns/impl/.ratings
@@ -1 +1 @@
-ElementPropertyStaticImpl.java f979c072af7d0815c71d56ab4e3f4d03b224ae63 RED
+ElementPropertyStaticImpl.java 7ca63e3f7093b7f4948a8605bcd3bb680e0bf8ef RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/location/impl/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/location/impl/.ratings
index 82016e63..4db25668 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/location/impl/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/location/impl/.ratings
@@ -1 +1 @@
-LocationConstraintStaticImpl.java ed7152ef3bcdd663b72b3ed29ff87f3ea5d409bd RED
+LocationConstraintStaticImpl.java 0d76c8aeb1f93a53769ad2cb86e91d99d177bfac RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/time/impl/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/time/impl/.ratings
index b9679b3c..8511f367 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/time/impl/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/model/time/impl/.ratings
@@ -1,2 +1,2 @@
-DeadlineConstraintStaticImpl.java 77d9d2ad174f4514ab33fdaf6b490d9579bc5a87 RED
-PeriodConstraintStaticImpl.java 221c53ca296918389b27fdb19e0e40ff0e501970 RED
+DeadlineConstraintStaticImpl.java 01053743f72cc946d5465cf9bba95e5d236e71e4 RED
+PeriodConstraintStaticImpl.java 1c82225fd97e90583f044ca43266fd1e76810c06 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/moea/model/predefined/impl/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/moea/model/predefined/impl/.ratings
index 4d844fa6..0cb41630 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/moea/model/predefined/impl/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/moea/model/predefined/impl/.ratings
@@ -1,5 +1,5 @@
-ComponentMultiAllocationConstraintStaticImpl.java d96775b45fbf79fad355e80c356c6c0434571b5e RED
-ComponentMultiDislocationConstraintStaticImpl.java 06a7eb21b5ab6ab142d86015fffb40ed29272f34 RED
-FailureMinObjectiveStaticImpl.java 5c7f0180ed88305656e14cdb23465fca27c93db9 RED
-MultiLocationConstraintStaticImpl.java 8d7408f924b49481a9ed0ad6899793935629003e RED
-SafetyIntegrityLevelConstraintStaticImpl.java 54293dec51568e9636f47b34b0985f4a84688436 RED
+ComponentMultiAllocationConstraintStaticImpl.java a8df2eecdd9bdb1627479bb1703f43e4321a426c RED
+ComponentMultiDislocationConstraintStaticImpl.java 651342e9c6216ccd8bd849a0959d27d349ebc15c RED
+FailureMinObjectiveStaticImpl.java c301c9b11b9c9cc72965af09e73830f71c38d2ae RED
+MultiLocationConstraintStaticImpl.java 35eac571b37a3fb99d02c12760012a7c9add9030 RED
+SafetyIntegrityLevelConstraintStaticImpl.java b435dc824b24fafb361544d991cdc56d9fc1c6b8 RED
diff --git a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/util/.ratings b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/util/.ratings
index 677f6940..c464e8e4 100644
--- a/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/util/.ratings
+++ b/org.fortiss.af3.exploration.alg/src/org/fortiss/af3/exploration/util/.ratings
@@ -1,3 +1,3 @@
-CommonExplorationTagetModelElementFactory.java 940577a3c4e750e496dddd5e0a199843dc271f8d RED
-DSLUtils.java f62fe2ac1bbe2f640c66545c9324ce9bc2caaa56 RED
-ExplorationDslModelElementFactory.java 2b99d826f40ab39fd32b53d72614a206f74c6975 RED
+CommonExplorationTagetModelElementFactory.java 1e132ff8e85262c636e5cf9931016a79a166fe33 RED
+DSLUtils.java 4576e9b4ca6e46c2b868f74c7a197ccf3c1fb717 RED
+ExplorationDslModelElementFactory.java c13ea3614c0d93a7107d2fdae72ac0966069d294 RED
-- 
GitLab