diff --git a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
index f03589ed..8c2b6d41 100644
--- a/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
+++ b/src/main/java/de/dhbwstuttgart/core/JavaTXCompiler.java
@@ -73,7 +73,7 @@ public class JavaTXCompiler {
 
 	public static JavaTXCompiler INSTANCE;
     final CompilationEnvironment environment;
-	Boolean resultmodel = false;
+	Boolean resultmodel = true;
     public final Map<File, SourceFile> sourceFiles = new HashMap<>();
     Boolean log = true; //gibt an ob ein Log-File nach System.getProperty("user.dir")+"src/test/java/logFiles" geschrieben werden soll?
     public volatile UnifyTaskModel usedTasks = new UnifyTaskModel();
diff --git a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
index 04ffb57f..d35da74f 100644
--- a/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
+++ b/src/main/java/de/dhbwstuttgart/typeinference/unify/TypeUnifyTask.java
@@ -696,7 +696,7 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>>  {
 			List<Set<UnifyPair>> nextSetasListRest = new ArrayList<>();
 			//List<Set<UnifyPair>> nextSetasListRestMin = new ArrayList<>();
 			//List<Set<UnifyPair>> nextSetasListRestOder = new ArrayList<>();
-			writeLog("WhileAnfangNextSet: " + nextSet.toString());
+			writeLog("qextSet: " + nextSet.toString());
 			writeLog("WhileAnfangNextSetasList: " + nextSetasList.toString());
 			if (variance == 1) {
 				a = oup.max(nextSetasList.iterator());
@@ -1824,21 +1824,43 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>>  {
 		Iterator<UnifyPair> eq2sprimeit = eq2sprime.iterator();
 		ArrayList<UnifyPair> eq2sAsListFst = new ArrayList<>();
 		ArrayList<UnifyPair> eq2sAsListSnd = new ArrayList<>();
+		ArrayList<UnifyPair> eq2sAsListThird = new ArrayList<>();
+		ArrayList<UnifyPair> eq2sAsListFourth = new ArrayList<>();
 		ArrayList<UnifyPair> eq2sAsListBack = new ArrayList<>();
 		ArrayList<UnifyPair> eq2sAsList = new ArrayList<>();
 		Boolean first = true;
 		while(eq2sprimeit.hasNext()) {// alle mit Variance != 0 nach vorne schieben
 			UnifyPair up = eq2sprimeit.next();
-			if ((up.getLhsType() instanceof PlaceholderType && ((PlaceholderType)up.getLhsType()).getVariance() != 0 && !((PlaceholderType)up.getLhsType()).isInnerType())
-					|| (up.getRhsType() instanceof PlaceholderType && ((PlaceholderType)up.getRhsType()).getVariance() != 0) && !((PlaceholderType)up.getRhsType()).isInnerType()) {
-				eq2sAsListFst.add(up);
+			if ((up.getLhsType() instanceof PlaceholderType && 
+				((PlaceholderType)up.getLhsType()).getVariance() == 1 && 
+				!((PlaceholderType)up.getLhsType()).isInnerType()) || 
+				(up.getRhsType() instanceof PlaceholderType && 
+				((PlaceholderType)up.getRhsType()).getVariance() == -1) && 
+				!((PlaceholderType)up.getRhsType()).isInnerType()) 
+			{
+			    eq2sAsListFst.add(up);
 				eq2s.remove(up);
 			}
-			else if ((up.getLhsType() instanceof PlaceholderType && ((PlaceholderType)up.getLhsType()).getVariance() != 0 && ((PlaceholderType)up.getLhsType()).isInnerType())
-					|| (up.getRhsType() instanceof PlaceholderType && ((PlaceholderType)up.getRhsType()).getVariance() != 0) && ((PlaceholderType)up.getRhsType()).isInnerType()) {
+			else  if ((up.getLhsType() instanceof PlaceholderType && ((PlaceholderType)up.getLhsType()).getVariance() == 1 && ((PlaceholderType)up.getLhsType()).isInnerType())
+					|| (up.getRhsType() instanceof PlaceholderType && ((PlaceholderType)up.getRhsType()).getVariance() == -1) && ((PlaceholderType)up.getRhsType()).isInnerType()) {
 				eq2sAsListSnd.add(up);
 				eq2s.remove(up);
-			}
+			} 
+			else if ((up.getLhsType() instanceof PlaceholderType && 
+					((PlaceholderType)up.getLhsType()).getVariance() == -1 && 
+					!((PlaceholderType)up.getLhsType()).isInnerType()) || 
+					(up.getRhsType() instanceof PlaceholderType && 
+					((PlaceholderType)up.getRhsType()).getVariance() == -1) && 
+					!((PlaceholderType)up.getRhsType()).isInnerType()) 
+				{
+				    eq2sAsListThird.add(up);
+					eq2s.remove(up);
+				}
+			else  if ((up.getLhsType() instanceof PlaceholderType && ((PlaceholderType)up.getLhsType()).getVariance() == -1 && ((PlaceholderType)up.getLhsType()).isInnerType())
+					|| (up.getRhsType() instanceof PlaceholderType && ((PlaceholderType)up.getRhsType()).getVariance() == 1) && ((PlaceholderType)up.getRhsType()).isInnerType()) {
+				eq2sAsListFourth.add(up);
+				eq2s.remove(up);
+			} 
 			else if ((up.getLhsType() instanceof PlaceholderType && ((PlaceholderType)up.getLhsType()).isInnerType())
 					|| (up.getRhsType() instanceof PlaceholderType && ((PlaceholderType)up.getRhsType()).isInnerType())) {
 				eq2sAsListBack.add(up);
@@ -1876,6 +1898,8 @@ public class TypeUnifyTask extends RecursiveTask<Set<Set<UnifyPair>>>  {
 		
 		eq2sAsList.addAll(eq2sAsListFst);
 		eq2sAsList.addAll(eq2sAsListSnd);
+		eq2sAsList.addAll(eq2sAsListThird);
+		eq2sAsList.addAll(eq2sAsListFourth);
 		eq2sAsList.addAll(eq2s);
 		eq2sAsList.addAll(eq2sAsListBack);