diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalCpuConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalCpuConstraint0.java
index 5ca0daa..8e2bcfc 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalCpuConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalCpuConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalHddConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalHddConstraint0.java
index 79dba1a..faf8942 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalHddConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalHddConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalRamConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalRamConstraint0.java
index c1f9c03..5cf2bca 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalRamConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/AvailableGreaterThanTotalRamConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdContainsWhitespaceConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdContainsWhitespaceConstraint0.java
index 56acc14..19e965d 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdContainsWhitespaceConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdContainsWhitespaceConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdIsNotUniqueConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdIsNotUniqueConstraint0.java
index e811860..afdf8c7 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdIsNotUniqueConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/IdIsNotUniqueConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/InitialStateNotContainedByStateMachineConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/InitialStateNotContainedByStateMachineConstraint0.java
index 1981b04..1ead3f5 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/InitialStateNotContainedByStateMachineConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/InitialStateNotContainedByStateMachineConstraint0.java
@@ -57,15 +57,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleApplicationInstanceInCommunicationGroupConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleApplicationInstanceInCommunicationGroupConstraint0.java
index 45d6afc..c363732 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleApplicationInstanceInCommunicationGroupConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleApplicationInstanceInCommunicationGroupConstraint0.java
@@ -57,15 +57,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleTransitionsWithSameActionConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleTransitionsWithSameActionConstraint0.java
index ca23d12..732e01a 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleTransitionsWithSameActionConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/MultipleTransitionsWithSameActionConstraint0.java
@@ -57,15 +57,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NodeIpIsNotUniqueConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NodeIpIsNotUniqueConstraint0.java
index 29c29fd..659c1a5 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NodeIpIsNotUniqueConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NodeIpIsNotUniqueConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NotAllocatedButRunningConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NotAllocatedButRunningConstraint0.java
index 9e7a9d4..3b5d672 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NotAllocatedButRunningConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/NotAllocatedButRunningConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TargetStateNotContainedBySameStateMachineConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TargetStateNotContainedBySameStateMachineConstraint0.java
index ce6896e..cac4a5a 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TargetStateNotContainedBySameStateMachineConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TargetStateNotContainedBySameStateMachineConstraint0.java
@@ -57,15 +57,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TransitionWithoutTargetStateConstraint0.java b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TransitionWithoutTargetStateConstraint0.java
index 41986a6..bc77537 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TransitionWithoutTargetStateConstraint0.java
+++ b/cps/addons/org.eclipse.viatra.examples.cps.queries.validation/src-gen/org/eclipse/viatra/examples/cps/model/validation/TransitionWithoutTargetStateConstraint0.java
@@ -56,15 +56,13 @@
 
     @Override
     public Set<List<String>> getSymmetricPropertyNames() {
-        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricPropertyNamesSet = new HashSet<>();
         return symmetricPropertyNamesSet;
     }
 
     @Override
     public Set<List<String>> getSymmetricKeyNames() {
-        Set<List<String>> symmetricKeyNamesSet = new HashSet<>(
-        );
+        Set<List<String>> symmetricKeyNamesSet = new HashSet<>();
         return symmetricKeyNamesSet;
     }
 
diff --git a/cps/releng/org.eclipse.viatra.examples.cps.setup/CPSExample.setup b/cps/releng/org.eclipse.viatra.examples.cps.setup/CPSExample.setup
index 1884d4f..0ece6a5 100644
--- a/cps/releng/org.eclipse.viatra.examples.cps.setup/CPSExample.setup
+++ b/cps/releng/org.eclipse.viatra.examples.cps.setup/CPSExample.setup
@@ -100,13 +100,11 @@
         name="org.eclipse.viatra.query.testing.sdk.feature.feature.group"/>
     <requirement
         name="org.eclipse.viatra.addon.viewers.tooling.feature.feature.group"
-        versionRange="[0.20.0,0.21.0)"/>
+        versionRange="[2.0.0,3.0.0)"/>
     <requirement
         name="org.eclipse.xtext.sdk.feature.group"
         versionRange="[2.13.0,3.0.0)"/>
     <requirement
-        name="org.eclipse.viatra.query.tooling.ui.visualization.feature.feature.group"/>
-    <requirement
         name="com.google.inject.multibindings"
         versionRange="[3.0.0,4.0.0)"/>
     <requirement
@@ -159,10 +157,8 @@
       <requirement
           name="org.eclipse.viatra.query.testing.sdk.feature.feature.group"/>
       <requirement
-          name="org.eclipse.viatra.query.tooling.ui.visualization.feature.feature.group"/>
-      <requirement
           name="org.eclipse.viatra.addon.viewers.tooling.feature.feature.group"
-          versionRange="[0.20.0,0.22.0)"/>
+          versionRange="[2.0.0,3.0.0)"/>
       <requirement
           name="org.eclipse.fx.runtime.min.feature.feature.group"/>
       <requirement
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/.classpath b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/.classpath
index 8d9b99b..0805795 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/.classpath
+++ b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/.classpath
@@ -4,6 +4,5 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen/"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/build.properties b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/build.properties
index dd1e7e5..a6d7a94 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/build.properties
+++ b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/build.properties
@@ -1,6 +1,5 @@
 bin.includes = META-INF/,\
                .
 source.. = src/,\
-           xtend-gen/,\
-           src-gen/
+           xtend-gen/
 output.. = bin/
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.xform.m2m.tests/META-INF/MANIFEST.MF b/cps/tests/org.eclipse.viatra.examples.cps.xform.m2m.tests/META-INF/MANIFEST.MF
index eb43ad1..49df4ed 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.xform.m2m.tests/META-INF/MANIFEST.MF
+++ b/cps/tests/org.eclipse.viatra.examples.cps.xform.m2m.tests/META-INF/MANIFEST.MF
@@ -21,7 +21,8 @@
  org.eclipse.viatra.query.runtime.localsearch;bundle-version="[2.0.0,3.0.0)",
  org.eclipse.viatra.examples.cps.xform.m2m.launcher;bundle-version="0.1.0",
  org.eclipse.viatra.query.runtime.localsearch;bundle-version="[2.0.0,3.0.0)",
- org.eclipse.viatra.query.runtime.rete;bundle-version="[2.0.0,3.0.0)"
+ org.eclipse.viatra.query.runtime.rete;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.collections;bundle-version="9.0.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Import-Package: org.apache.log4j;version="1.2.15"
 Automatic-Module-Name: org.eclipse.viatra.examples.cps.xform.m2m.tests
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/CPS2DeploymentTransformation.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/CPS2DeploymentTransformation.xtend
index 0cec9f7..3d39093 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/CPS2DeploymentTransformation.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/CPS2DeploymentTransformation.xtend
@@ -28,6 +28,7 @@
 import org.eclipse.viatra.transformation.evm.specific.Schedulers
 
 import static com.google.common.base.Preconditions.*
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class CPS2DeploymentTransformation {
 	
@@ -65,7 +66,7 @@
 			debug("Preparing transformation rules.")
 			val watch = Stopwatch.createStarted
 			
-			val rulesBuilder = ImmutableSet.builder
+			val rulesBuilder = ImmutableSet.<RuleSpecification<?>>builder()
 			rulesBuilder.addAll(HostRules.getRules(engine))
 			rulesBuilder.addAll(ApplicationRules.getRules(engine))
 			rulesBuilder.addAll(StateMachineRules.getRules(engine))
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/ApplicationRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/ApplicationRules.xtend
index 93e8f00..44f59ee 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/ApplicationRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/ApplicationRules.xtend
@@ -19,9 +19,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.crud.CRUDActivationStateEnum
+import java.util.Set
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class ApplicationRules {
-	static def getRules(ViatraQueryEngine engine) {
+	static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new ApplicationMapping(engine).specification,
 			new ApplicationUpdate(engine).specification,
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/HostRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/HostRules.xtend
index 4c5a28e..cbc8ac5 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/HostRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/HostRules.xtend
@@ -18,9 +18,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.crud.CRUDActivationStateEnum
+import java.util.Set
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class HostRules {
-	static def getRules(ViatraQueryEngine engine) {
+	static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new HostMapping(engine).specification,
 			new HostUpdate(engine).specification,
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateMachineRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateMachineRules.xtend
index a272b3e..d038559 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateMachineRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateMachineRules.xtend
@@ -19,9 +19,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.crud.CRUDActivationStateEnum
+import java.util.Set
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class StateMachineRules {
-    static def getRules(ViatraQueryEngine engine) {
+    static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new StateMachineMapping(engine).specification
 			,new StateMachineUpdate(engine).specification
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateRules.xtend
index eb72f06..8d1f9d3 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/StateRules.xtend
@@ -19,9 +19,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.crud.CRUDActivationStateEnum
+import java.util.Set
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class StateRules {
-	static def getRules(ViatraQueryEngine engine) {
+	static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new StateMapping(engine).specification
 			,new StateUpdate(engine).specification
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TransitionRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TransitionRules.xtend
index 5b9a43c..2b7ebcf 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TransitionRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TransitionRules.xtend
@@ -19,9 +19,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.crud.CRUDActivationStateEnum
+import java.util.Set
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
 
 class TransitionRules {
-	static def getRules(ViatraQueryEngine engine) {
+	static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new TransitionMapping(engine).specification,
 			new TransitionUpdate(engine).specification,
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TriggerRules.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TriggerRules.xtend
index 9b10444..0a556f1 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TriggerRules.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/expl/rules/TriggerRules.xtend
@@ -17,9 +17,11 @@
 import org.eclipse.viatra.transformation.evm.specific.Rules
 import org.eclipse.viatra.transformation.evm.specific.Lifecycles
 import org.eclipse.viatra.transformation.evm.specific.Jobs
+import org.eclipse.viatra.transformation.evm.api.RuleSpecification
+import java.util.Set
 
 class TriggerRules {
-	static def getRules(ViatraQueryEngine engine) {
+	static def Set<RuleSpecification<?>> getRules(ViatraQueryEngine engine) {
 		#{
 			new TriggerMapping(engine).specification,
 			new TriggerRemoval(engine).specification
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/qrt/CPS2DeploymentTransformationQrt.xtend b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/qrt/CPS2DeploymentTransformationQrt.xtend
index 5c39b13..af80302 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/qrt/CPS2DeploymentTransformationQrt.xtend
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/src/org/eclipse/viatra/examples/cps/xform/m2m/incr/qrt/CPS2DeploymentTransformationQrt.xtend
@@ -29,6 +29,7 @@
 import org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt.rules.TransitionRules
 import org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt.rules.TriggerRules
 import org.eclipse.viatra.transformation.evm.specific.resolver.InvertedDisappearancePriorityConflictResolver
+import org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt.util.PriorityRuleSpecification
 
 class CPS2DeploymentTransformationQrt {
 
@@ -65,7 +66,7 @@
 			debug("Preparing transformation rules.")
 			val watch = Stopwatch.createStarted
 
-			val rulesBuilder = ImmutableSet.builder
+			val rulesBuilder = ImmutableSet.<PriorityRuleSpecification<?>>builder()
 			rulesBuilder.addAll(HostRules.getRules(engine))
 			rulesBuilder.addAll(ApplicationRules.getRules(engine))
 			rulesBuilder.addAll(StateMachineRules.getRules(engine));
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/.classpath
index fc8a78d..07878f5 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/.classpath
@@ -4,6 +4,5 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/build.properties b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/build.properties
index dd1e7e5..a6d7a94 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/build.properties
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.distributed/build.properties
@@ -1,6 +1,5 @@
 bin.includes = META-INF/,\
                .
 source.. = src/,\
-           xtend-gen/,\
-           src-gen/
+           xtend-gen/
 output.. = bin/
