diff --git a/cps/addons/org.eclipse.viatra.examples.cps.mwe2integration.example/src/org/eclipse/viatra/examples/cps/integration/messages/M2TOutputMessageFactory.xtend b/cps/addons/org.eclipse.viatra.examples.cps.mwe2integration.example/src/org/eclipse/viatra/examples/cps/integration/messages/M2TOutputMessageFactory.xtend
index 1fddaca..f9c6741 100644
--- a/cps/addons/org.eclipse.viatra.examples.cps.mwe2integration.example/src/org/eclipse/viatra/examples/cps/integration/messages/M2TOutputMessageFactory.xtend
+++ b/cps/addons/org.eclipse.viatra.examples.cps.mwe2integration.example/src/org/eclipse/viatra/examples/cps/integration/messages/M2TOutputMessageFactory.xtend
@@ -19,7 +19,7 @@
 class M2TOutputMessageFactory implements IMessageFactory<List<M2TOutputRecord>, M2TOutputMessage> {
 	override boolean isValidParameter(Object parameter) {
 		var List<M2TOutputRecord> list = (parameter as List<M2TOutputRecord>)
-		if(list != null){
+		if(list !== null){
 			return true
 		}else {
 			return false
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/.classpath b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/.classpath
index 8d639a6..f5f4d6a 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/.classpath
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/.classpath
@@ -3,7 +3,7 @@
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/META-INF/MANIFEST.MF b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/META-INF/MANIFEST.MF
index 32e8e8a..295247f 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/META-INF/MANIFEST.MF
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/META-INF/MANIFEST.MF
@@ -4,11 +4,10 @@
 Bundle-SymbolicName: org.eclipse.viatra.examples.cps.tests;singleton:=true
 Bundle-Version: 0.0.1.qualifier
 Export-Package: org.eclipse.viatra.examples.cps.tests.queries,
- org.eclipse.viatra.examples.cps.tests.queries.util
+  org.eclipse.viatra.examples.cps.tests.queries.util
 Require-Bundle: org.eclipse.viatra.query.testing.core;bundle-version="1.2.0",
  com.google.guava,
  org.eclipse.xtend.lib,
- com.google.inject;bundle-version="3.0.0",
  org.junit,
  org.eclipse.viatra.query.runtime;bundle-version="1.2.0",
  org.eclipse.viatra.query.testing.snapshot;bundle-version="1.2.0",
@@ -16,4 +15,6 @@
  org.eclipse.viatra.query.runtime.localsearch;bundle-version="1.2.0",
  org.eclipse.viatra.query.patternlanguage.emf;bundle-version="1.2.0"
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
-Import-Package: org.apache.log4j;version="1.2.0"
+Import-Package: com.google.inject,
+ com.google.inject.multibindings,
+ org.apache.log4j;version="1.2.0"
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/build.properties b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/build.properties
index fbb4911..0f7d057 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/build.properties
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/build.properties
@@ -1,6 +1,7 @@
 bin.includes = META-INF/,\
                .,\
-               models/
+               models/,\
+               plugin.xml
 jars.extra.classpath = platform:/fragment/com.google.inject.multibindings
 source.. = src/,\
            xtend-gen/,\
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BackendType.java b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BackendType.java
index dee5365..0f99610 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BackendType.java
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BackendType.java
@@ -16,6 +16,7 @@
 import org.eclipse.viatra.query.runtime.localsearch.matcher.integration.LocalSearchHints;
 import org.eclipse.viatra.query.runtime.matchers.backend.IQueryBackendFactory;
 import org.eclipse.viatra.query.runtime.matchers.backend.QueryEvaluationHint;
+import org.eclipse.viatra.query.runtime.matchers.backend.QueryHintOption;
 import org.eclipse.viatra.query.runtime.rete.matcher.ReteBackendFactory;
 
 public enum BackendType {
@@ -35,6 +36,7 @@
         }
     }
     
+    @SuppressWarnings("rawtypes")
     public QueryEvaluationHint getHints(){
         switch(this){
         case LocalSearch:
@@ -44,7 +46,7 @@
         case LocalSearch_NoBase:
             return LocalSearchHints.getDefaultNoBase().build();
         default:
-            return new QueryEvaluationHint(getNewBackendInstance(), Collections.<String, Object>emptyMap());
+            return new QueryEvaluationHint(Collections.<QueryHintOption, Object>emptyMap(), getNewBackendInstance());
         }
     }
 }
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerIndexingLevelsTest.xtend b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerIndexingLevelsTest.xtend
index 6bfb59a..cb3fb57 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerIndexingLevelsTest.xtend
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerIndexingLevelsTest.xtend
@@ -84,7 +84,7 @@
                 list.add(#[eobject, feature, u])
             }
         } else {
-            if (o != null){
+            if (o !== null){
                 list.add(#[eobject, feature, o])
             }
         }
@@ -266,7 +266,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
@@ -304,7 +304,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
@@ -343,7 +343,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
diff --git a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerTest.xtend b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerTest.xtend
index cc1acf8..1c8cd40 100644
--- a/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerTest.xtend
+++ b/cps/frameworktests/org.eclipse.viatra.examples.cps.tests/src/org/eclipse/viatra/examples/cps/tests/BaseIndexerTest.xtend
@@ -81,7 +81,7 @@
                 list.add(#[eobject, feature, u])
             }
         } else {
-            if (o != null){
+            if (o !== null){
                 list.add(#[eobject, feature, o])
             }
         }
@@ -191,7 +191,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
@@ -229,7 +229,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
@@ -268,7 +268,7 @@
             for(o : expected){
                 val entry = o as List<?>
                 var values = expectedFeatureMap.get(entry.get(0))
-                if (values == null){
+                if (values === null){
                     values = newHashSet()
                     expectedFeatureMap.put(entry.get(0) as EObject, values)
                 }
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/.classpath b/cps/generator/org.eclipse.viatra.examples.cps.generator/.classpath
index 0b478c8..b2c065c 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/.classpath
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/CPSFragment.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/CPSFragment.xtend
index 35dd4f2..efc89e4 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/CPSFragment.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/CPSFragment.xtend
@@ -29,7 +29,7 @@
 	
 	new(GeneratorInput<CyberPhysicalSystem> input) throws ModelGeneratorException {
 		super(input)
-		if(modelRoot != null){
+		if(modelRoot !== null){
 			engine = AdvancedViatraQueryEngine.createUnmanagedEngine(new EMFScope(modelRoot));
 		}else{
 			throw new ModelGeneratorException("Cannot initialize IncQueryEngine on a null model.");
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/GeneratorPlan.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/GeneratorPlan.xtend
index 8601782..2471e5c 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/GeneratorPlan.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/GeneratorPlan.xtend
@@ -12,8 +12,6 @@
 
 import com.google.common.collect.Lists
 import java.util.List
-import org.eclipse.viatra.examples.cps.cyberPhysicalSystem.CyberPhysicalSystem
-import org.eclipse.viatra.examples.cps.generator.dtos.bases.GeneratorInput
 import org.eclipse.viatra.examples.cps.planexecutor.api.IPhase
 import org.eclipse.viatra.examples.cps.planexecutor.api.IPlan
 
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/HostClass.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/HostClass.xtend
index 4172ca0..bed335e 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/HostClass.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/HostClass.xtend
@@ -15,7 +15,7 @@
 
 
 /*
- * If this DTO class was annotated with @Đata, then this would potentially cause a StackOverflowException 
+ * If this DTO class was annotated with @{@link Data}, then this would potentially cause a StackOverflowException 
  * when calculating hash code for the conatined communicationRation maps, for this map might contain 
  * a HostClass instance, whose communicationRatios map contains the container map's HostClass instance
  */ 
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/Percentage.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/Percentage.xtend
index 7bcba56..a846d2f 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/Percentage.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/Percentage.xtend
@@ -46,7 +46,7 @@
 			throw new ModelGeneratorException("Total must be greater than or equal to zero");
 		}
 		
-		if(percentage == null){
+		if(percentage === null){
 			throw new ModelGeneratorException("Total must be valid");
 		}
 		
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/bases/GeneratorFragment.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/bases/GeneratorFragment.xtend
index 5b13768..60517f7 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/bases/GeneratorFragment.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/dtos/bases/GeneratorFragment.xtend
@@ -21,7 +21,7 @@
 	new(GeneratorInput<ModelType> input) {
 		this.input = input;
 		this.modelRoot = input.modelRoot;
-		if(input != null){
+		if(input !== null){
 			this.rand = new Random(input.seed);
 		}else{
 			this.rand = new Random(0);
@@ -34,7 +34,7 @@
 	}
 	
 	def getSeed(){
-		if(input != null){
+		if(input !== null){
 			return input.seed;
 		}
 		return 0;
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeGenerationOperation.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeGenerationOperation.xtend
index 28cb73b..cfb0406 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeGenerationOperation.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeGenerationOperation.xtend
@@ -53,7 +53,7 @@
 			}
 			
 			// Initial State
-			if(states.get(0) != null && sm != null){
+			if(states.get(0) !== null && sm !== null){
 				var initState = states.get(0)
 				sm.setInitial(initState)
 			}
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeStatisticsBasedGenerationOperation.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeStatisticsBasedGenerationOperation.xtend
index 62fa290..91e219b 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeStatisticsBasedGenerationOperation.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/ApplicationTypeStatisticsBasedGenerationOperation.xtend
@@ -58,7 +58,7 @@
 					}
 					
 					// Initial State
-					if(states.get(0) != null && sm != null){
+					if(states.get(0) !== null && sm !== null){
 						var initState = states.get(0)
 						sm.setInitial(initState)
 					}
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/DeleteTransitionWithoutAction.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/DeleteTransitionWithoutAction.xtend
index 720ed51..8695afc 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/DeleteTransitionWithoutAction.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/operations/DeleteTransitionWithoutAction.xtend
@@ -10,10 +10,7 @@
  *******************************************************************************/
 package org.eclipse.viatra.examples.cps.generator.operations
 
-import org.eclipse.viatra.examples.cps.cyberPhysicalSystem.Transition
 import org.eclipse.viatra.examples.cps.generator.dtos.CPSFragment
-import org.eclipse.viatra.examples.cps.generator.utils.CPSModelBuilderUtil
-import org.eclipse.viatra.examples.cps.generator.utils.RandomUtils
 import org.eclipse.viatra.examples.cps.planexecutor.api.IOperation
 import org.eclipse.viatra.examples.cps.generator.queries.TransitionWithoutActionMatcher
 import org.eclipse.emf.ecore.util.EcoreUtil
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionGeneration.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionGeneration.xtend
index b29f757..a1a7414 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionGeneration.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionGeneration.xtend
@@ -10,7 +10,6 @@
  *******************************************************************************/
 package org.eclipse.viatra.examples.cps.generator.phases
 
-import com.google.common.collect.ImmutableList
 import com.google.common.collect.Lists
 import org.apache.log4j.Logger
 import org.eclipse.viatra.examples.cps.cyberPhysicalSystem.ApplicationType
@@ -34,7 +33,7 @@
 		
 		for(appClass : fragment.applicationTypes.keySet){
 			var appTypes = fragment.applicationTypes.get(appClass);
-			if(appTypes != null){
+			if(appTypes !== null){
 				for(appType : appTypes){
 					for(transition : getTransitionsOf(appType, fragment)){
 						// Generate Action or not
@@ -48,7 +47,7 @@
 								if(!possibleTypeList.empty) {
     								val targetAppType = possibleTypeList.randElement(fragment.random);
     
-    								if(targetAppType != null){
+    								if(targetAppType !== null){
     									val action = SEND_METHOD_NAME + "(" + targetAppType.identifier + ", "+ signalNumber + ")";
     									debug(action)
     									operations.add(new ActionGenerationOperation(action, transition));
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionStatisticsBasedGeneration.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionStatisticsBasedGeneration.xtend
index 45bbf52..3aba941 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionStatisticsBasedGeneration.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseActionStatisticsBasedGeneration.xtend
@@ -56,18 +56,18 @@
 					
 					// Find receiver pairs, there will be 1 or 2
 					for(receiverMatch : receiverMatches){
-						if(firstReceiver == null){
+						if(firstReceiver === null){
 							if(!suppliedWithAction.contains(receiverMatch.transition)){
 								firstReceiver = receiverMatch.transition
 								firstSM = receiverMatch.SM
 							}
-						} else if(secondReceiver == null && receiverMatch.SM != firstSM){
+						} else if(secondReceiver === null && receiverMatch.SM != firstSM){
 							if(!suppliedWithAction.contains(receiverMatch.transition)){
 								secondReceiver = receiverMatch.transition
 							}					
 						}
 					}
-					if(!suppliedWithAction.contains(senderTransition) && firstReceiver != null /* && !suppliedWithAction.contains(firstReceiver) <- this condition is implied by the firstReceiver !=null*/){
+					if(!suppliedWithAction.contains(senderTransition) && firstReceiver !== null /* && !suppliedWithAction.contains(firstReceiver) <- this condition is implied by the firstReceiver !=null*/){
 						// Successfully found pairable transitions
 						success = true
 						suppliedWithAction.add(senderTransition) 
@@ -83,7 +83,7 @@
 						debug(receiverAction1)
 						operations.add(new ActionGenerationOperation(receiverAction1, firstReceiver));
 						/* } <- end of if that is always true here */
-						if(secondReceiver != null){
+						if(secondReceiver !== null){
 							suppliedWithAction.add(secondReceiver) 
 							val receiverAction2 = WAIT_METHOD_NAME + "(" + index + ")";
 							debug(receiverAction2)
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseHostCommunication.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseHostCommunication.xtend
index e9414e7..182fdb0 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseHostCommunication.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseHostCommunication.xtend
@@ -12,7 +12,6 @@
 
 import com.google.common.collect.HashMultimap
 import com.google.common.collect.Lists
-import java.util.List
 import org.eclipse.viatra.examples.cps.cyberPhysicalSystem.HostInstance
 import org.eclipse.viatra.examples.cps.generator.dtos.CPSFragment
 import org.eclipse.viatra.examples.cps.generator.dtos.HostClass
@@ -46,7 +45,7 @@
 						// Randomize target node
 						if(!possibleTargetCopy.empty){
     						val targetHostInstance = possibleTargetCopy.randElement(fragment.random);
-    						if(targetHostInstance != null){
+    						if(targetHostInstance !== null){
     							possibleTargetCopy.remove(targetHostInstance);
     							operations.add(new HostInstanceCommunicatesWithOperation(hostInstance, targetHostInstance));
     						}
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseInstanceGeneration.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseInstanceGeneration.xtend
index 900c0ee..8c5ef1a 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseInstanceGeneration.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/phases/CPSPhaseInstanceGeneration.xtend
@@ -28,7 +28,7 @@
 		for(appClass : fragment.applicationTypes.keySet){
 			var sumAppType = 0
 			val appTypes = fragment.applicationTypes.get(appClass);
-			if(appTypes != null){
+			if(appTypes !== null){
 				for(appType : appTypes){
 					operations.add(new ApplicationInstanceGenerationOperation(appClass, appType));
 					sumAppType++
@@ -43,7 +43,7 @@
 		for(hostClass : fragment.hostTypes.keySet){
 			val types = fragment.hostTypes.get(hostClass);
 			// HostTypes
-			if(types != null){
+			if(types !== null){
 				for(type : types){
 					operations.add(new HostInstanceGenerationOperation(hostClass, type));
 				}
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/CPSGeneratorBuilder.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/CPSGeneratorBuilder.xtend
index 0e05ccc..5ab388b 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/CPSGeneratorBuilder.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/CPSGeneratorBuilder.xtend
@@ -33,7 +33,7 @@
 		val CPSModelBuilderUtil mb = new CPSModelBuilderUtil;
 		val cps2dep = mb.prepareEmptyModel("testModel"+System.nanoTime);
 		
-		if(cps2dep != null && cps2dep.cps != null){
+		if(cps2dep !== null && cps2dep.cps !== null){
 			return buildAndGenerateModel(seed, constraints, cps2dep.cps, cpsplan);
 		}else{
 			info("!!! Error: Cannot create CPS model");
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/RandomUtils.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/RandomUtils.xtend
index f12ed76..365c57e 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/RandomUtils.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/RandomUtils.xtend
@@ -29,7 +29,7 @@
      * @see Random#nextInt(int)
      */
     def int randInt(MinMaxData<Integer> minMaxData, Random rand) throws ModelGeneratorException {
-        if(minMaxData == null){
+        if(minMaxData === null){
             throw new ModelGeneratorException("MinMaxData is null. (randInt(long seed, int min, int max))");
         }
             
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/StatsUtil.xtend b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/StatsUtil.xtend
index e85c9b6..78fe498 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/StatsUtil.xtend
+++ b/cps/generator/org.eclipse.viatra.examples.cps.generator/src/org/eclipse/viatra/examples/cps/generator/utils/StatsUtil.xtend
@@ -47,9 +47,9 @@
 			for(feature : eObject.eClass.EAllReferences){
 				val value = eObject.eGet(feature);
 				if (feature.isMany()) {
-					countTriples += (value as Collection).size
+					countTriples += (value as Collection<?>).size
 				} else {
-					if (value!= null) {
+					if (value!== null) {
 						countTriples++;
 					}
 				}
diff --git a/cps/generator/org.eclipse.viatra.examples.cps.planexecutor/.classpath b/cps/generator/org.eclipse.viatra.examples.cps.planexecutor/.classpath
index b647478..b2c065c 100644
--- a/cps/generator/org.eclipse.viatra.examples.cps.planexecutor/.classpath
+++ b/cps/generator/org.eclipse.viatra.examples.cps.planexecutor/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src/"/>
-	<classpathentry kind="src" path="src-gen/"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/queries/org.eclipse.viatra.examples.cps.queries/plugin.xml b/cps/queries/org.eclipse.viatra.examples.cps.queries/plugin.xml
index 613ded1..2486d38 100644
--- a/cps/queries/org.eclipse.viatra.examples.cps.queries/plugin.xml
+++ b/cps/queries/org.eclipse.viatra.examples.cps.queries/plugin.xml
@@ -1,38 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?><plugin>
-  <extension id="org.eclipse.viatra.examples.cps.model.derived.Derived" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.derived.Derived" id="org.eclipse.viatra.examples.cps.model.derived.Derived">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.derived.getAppInstances"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.derived.hostInstances"/>
-    </group>
-  </extension>
-  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.statemachines"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.machineOfAppType"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.cpsStatemachineStateEdge"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.initialState"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.states"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.transitions"/>
-    </group>
-  </extension>
-  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.requests"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectApp"/>
-    </group>
-  </extension>
-  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.hostTypes"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectTypesAndInstancesHost"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.communications"/>
-    </group>
-  </extension>
-  <extension id="org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries" id="org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.traceability.identifiableToDeplymentElement"/>
-    </group>
-  </extension>
   <extension id="org.eclipse.viatra.examples.cps.deployment.common.DeploymentQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
     <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.deployment.common.DeploymentQueries" id="org.eclipse.viatra.examples.cps.deployment.common.DeploymentQueries">
       <query-specification fqn="org.eclipse.viatra.examples.cps.deployment.common.deploymentElements"/>
@@ -55,19 +21,10 @@
       <query-specification fqn="org.eclipse.viatra.examples.cps.deployment.viewer.deploymentTransitionTriggerEdge"/>
     </group>
   </extension>
-  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.allHostInstances"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.appInstancesWithAllocation"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.appInstancesNoAllocation"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectAppAndHost"/>
-    </group>
-  </extension>
-  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW" point="org.eclipse.viatra.query.runtime.queryspecification">
-    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW">
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.applicationTypes"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectTypesAndInstancesApp"/>
-      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.dependencies"/>
+  <extension id="org.eclipse.viatra.examples.cps.model.derived.Derived" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.derived.Derived" id="org.eclipse.viatra.examples.cps.model.derived.Derived">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.derived.getAppInstances"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.derived.hostInstances"/>
     </group>
   </extension>
   <extension id="org.eclipse.viatra.examples.cps.model.validation.Rules" point="org.eclipse.viatra.query.runtime.queryspecification">
@@ -90,4 +47,47 @@
       <query-specification fqn="org.eclipse.viatra.examples.cps.model.validation.reachableAppInstance"/>
     </group>
   </extension>
+  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerCommon">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.allHostInstances"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.appInstancesWithAllocation"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.appInstancesNoAllocation"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectAppAndHost"/>
+    </group>
+  </extension>
+  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerHW">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.hostTypes"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectTypesAndInstancesHost"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.communications"/>
+    </group>
+  </extension>
+  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerReq">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.requests"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectApp"/>
+    </group>
+  </extension>
+  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSM">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.statemachines"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.machineOfAppType"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.cpsStatemachineStateEdge"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.initialState"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.states"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.transitions"/>
+    </group>
+  </extension>
+  <extension id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW" id="org.eclipse.viatra.examples.cps.model.viewer.CpsModelViewerSW">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.applicationTypes"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.connectTypesAndInstancesApp"/>
+      <query-specification fqn="org.eclipse.viatra.examples.cps.model.viewer.dependencies"/>
+    </group>
+  </extension>
+  <extension id="org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries" point="org.eclipse.viatra.query.runtime.queryspecification">
+    <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries" id="org.eclipse.viatra.examples.cps.traceability.TraceabilityQueries">
+      <query-specification fqn="org.eclipse.viatra.examples.cps.traceability.identifiableToDeplymentElement"/>
+    </group>
+  </extension>
 </plugin>
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.classpath b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.classpath
index 248b4c5..0805795 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.classpath
+++ b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
 	<classpathentry kind="src" path="xtend-gen"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
 	<classpathentry kind="output" path="bin"/>
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.settings/org.eclipse.jdt.core.prefs b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.settings/org.eclipse.jdt.core.prefs
index f42de36..0c68a61 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.settings/org.eclipse.jdt.core.prefs
+++ b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/.settings/org.eclipse.jdt.core.prefs
@@ -1,7 +1,7 @@
 eclipse.preferences.version=1
 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
-org.eclipse.jdt.core.compiler.compliance=1.7
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
 org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.7
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/plugin.xml b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/plugin.xml
deleted file mode 100644
index c760d4e..0000000
--- a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/plugin.xml
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><plugin/>
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/src/org/eclipse/viatra/examples/cps/generator/tests/GeneratorTest.xtend b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/src/org/eclipse/viatra/examples/cps/generator/tests/GeneratorTest.xtend
index d8b0bc8..bb7d181 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/src/org/eclipse/viatra/examples/cps/generator/tests/GeneratorTest.xtend
+++ b/cps/tests/org.eclipse.viatra.examples.cps.generator.tests/src/org/eclipse/viatra/examples/cps/generator/tests/GeneratorTest.xtend
@@ -196,7 +196,7 @@
 		val CPSModelBuilderUtil mb = new CPSModelBuilderUtil;
 		val cps2dep = mb.prepareEmptyModel("testModel"+System.nanoTime);
 			
-		if(cps2dep != null && cps2dep.cps != null){
+		if(cps2dep !== null && cps2dep.cps !== null){
 			return cps2dep.cps;
 		}else{
 			info("!!! Error: Cannot create CPS model");
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/src/org/eclipse/viatra/examples/cps/tests/util/PropertiesUtil.xtend b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/src/org/eclipse/viatra/examples/cps/tests/util/PropertiesUtil.xtend
index 24d048d..14ca23e 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.tests.util/src/org/eclipse/viatra/examples/cps/tests/util/PropertiesUtil.xtend
+++ b/cps/tests/org.eclipse.viatra.examples.cps.tests.util/src/org/eclipse/viatra/examples/cps/tests/util/PropertiesUtil.xtend
@@ -30,7 +30,7 @@
     	try {
     		//load a properties file
             inputStream = PropertiesUtil.classLoader.getResourceAsStream(configPath)
-            if(inputStream != null){
+            if(inputStream !== null){
 	            properties.load(inputStream);
             } else {
 	    		logger.debug('''Could not find properties at «configPath»''')
@@ -38,7 +38,7 @@
     	} catch (IOException ex) {
     		logger.debug('''Could not load properties at «configPath»''')
         } finally {
-            if (inputStream != null) {
+            if (inputStream !== null) {
                 try {
                     inputStream.close()
                 } catch (IOException e) {
@@ -50,7 +50,7 @@
 	}
 	
 	def static getPropertyValue(String propertyKey, String defaultValue) {
-		if(properties != null){
+		if(properties !== null){
 			properties.getProperty(propertyKey, defaultValue)
 		}
 	}
diff --git a/cps/tests/org.eclipse.viatra.examples.cps.xform.m2t.tests/src/org/eclipse/viatra/examples/cps/xform/m2t/tests/util/DeploymentChangeMonitorTest.xtend b/cps/tests/org.eclipse.viatra.examples.cps.xform.m2t.tests/src/org/eclipse/viatra/examples/cps/xform/m2t/tests/util/DeploymentChangeMonitorTest.xtend
index 4ff8a01..cf3ff71 100644
--- a/cps/tests/org.eclipse.viatra.examples.cps.xform.m2t.tests/src/org/eclipse/viatra/examples/cps/xform/m2t/tests/util/DeploymentChangeMonitorTest.xtend
+++ b/cps/tests/org.eclipse.viatra.examples.cps.xform.m2t.tests/src/org/eclipse/viatra/examples/cps/xform/m2t/tests/util/DeploymentChangeMonitorTest.xtend
@@ -109,13 +109,13 @@
 
 	private def void assertContainments(DeploymentElement appeared, DeploymentElement updated,
 		DeploymentElement disappeared, int appearedCount, int updatedCount, int disappearedCount) {
-		if (appeared != null) {
+		if (appeared !== null) {
 			assertTrue(ELEMENT_MISSING, monitor.deltaSinceLastCheckpoint.appeared.contains(appeared))
 		}
-		if (updated != null) {
+		if (updated !== null) {
 			assertTrue(ELEMENT_MISSING, monitor.deltaSinceLastCheckpoint.updated.contains(updated))
 		}
-		if (disappeared != null) {
+		if (disappeared !== null) {
 			assertTrue(ELEMENT_MISSING, monitor.deltaSinceLastCheckpoint.disappeared.contains(disappeared))
 		}
 		if (appearedCount >= 0) {
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.eiq/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.eiq/.classpath
index b51a74a..b2c065c 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.eiq/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.eiq/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.optimized/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.optimized/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.optimized/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.optimized/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.simple/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.simple/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.simple/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.simple/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.viatra/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.viatra/.classpath
index b51a74a..b2c065c 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.viatra/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.batch.viatra/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.aggr/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.aggr/.classpath
index 10811dc..c02d4d0 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.aggr/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.aggr/.classpath
@@ -2,8 +2,8 @@
 <classpath>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/.classpath
index b51a74a..b2c065c 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.expl/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/.classpath
index b51a74a..b2c065c 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.qrt/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.viatra/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.viatra/.classpath
index b51a74a..b2c065c 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.viatra/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.incr.viatra/.classpath
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
 	<classpathentry kind="output" path="bin"/>
 </classpath>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.launcher/src/org/eclipse/viatra/examples/cps/xform/m2m/launcher/TransformationType.java b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.launcher/src/org/eclipse/viatra/examples/cps/xform/m2m/launcher/TransformationType.java
index 8cf6ea8..ed89dfb 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.launcher/src/org/eclipse/viatra/examples/cps/xform/m2m/launcher/TransformationType.java
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2m.launcher/src/org/eclipse/viatra/examples/cps/xform/m2m/launcher/TransformationType.java
@@ -36,13 +36,13 @@
         public CPSTransformationWrapper getWrapper() {return new BatchOptimized();}
     },
     BATCH_VIATRA_QUERY_RETE {
-    	public CPSTransformationWrapper getWrapper() {
-    		QueryEvaluationHint hint = new QueryEvaluationHint(null, new ReteBackendFactory());
-	    	return new BatchQueryOnly(hint, hint);
+    	    public CPSTransformationWrapper getWrapper() {
+    		    QueryEvaluationHint hint = new QueryEvaluationHint(null, new ReteBackendFactory());
+    		    return new BatchQueryOnly(hint, hint);
 	    }
     },
     BATCH_VIATRA_QUERY_LOCAL_SEARCH {
-    	public CPSTransformationWrapper getWrapper() {
+        public CPSTransformationWrapper getWrapper() {
 			QueryEvaluationHint hint = LocalSearchHints.getDefaultFlatten().build();
 			QueryEvaluationHint traceHint = LocalSearchHints.getDefaultFlatten().setCostFunction(new EndOfTransformationCostFunction()).build();
 			return new BatchQueryLocalSearch(hint, traceHint);
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 248b4c5..c86db38 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
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.jdt/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.jdt/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.jdt/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t.jdt/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/.classpath
index 8e0f733..31dee90 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/.classpath
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="src-gen"/>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="src-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.eclipse/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.eclipse/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.eclipse/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.eclipse/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.javaio/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.javaio/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.javaio/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer.javaio/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer/.classpath b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer/.classpath
index 248b4c5..c86db38 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer/.classpath
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.serializer/.classpath
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="src" path="xtend-gen"/>
+	<classpathentry excluding=".gitignore" kind="src" path="xtend-gen"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
 	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
 	<classpathentry kind="src" path="src"/>
