diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/antlr/JoinStatementVisitor.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/antlr/JoinStatementVisitor.java
index 3fe1c7bd180e24161204ccab4a59d2a557985536..f5ace991f9d26f4391f025d6890ff912a55b3f82 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/antlr/JoinStatementVisitor.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/antlr/JoinStatementVisitor.java
@@ -85,12 +85,12 @@ public class JoinStatementVisitor extends ModelJoinBaseVisitor<JoinExpression> {
     ClassResource left = ClassResource.fromQualifiedName(thetajoinContext.classres(0).getText());
     ClassResource right = ClassResource.fromQualifiedName(thetajoinContext.classres(1).getText());
 
-    ThetaJoinBuilder joinBuilder = JoinFactory.createNew()
+    ThetaJoinBuilder joinBuilder = (ThetaJoinBuilder)JoinFactory.createNew()
         .theta()
+        .where(OCLConstraint.of(thetajoinContext.oclcond().getText()))
         .join(left)
         .with(right)
-        .as(ClassResource.fromQualifiedName(ctx.classres().getText()))
-        .where(OCLConstraint.of(thetajoinContext.oclcond().getText()));
+        .as(ClassResource.fromQualifiedName(ctx.classres().getText()));
 
     ctx.keepaggregatesexpr().stream()
         .map(keepStatementVisitor::visitKeepaggregatesexpr)
@@ -118,7 +118,7 @@ public class JoinStatementVisitor extends ModelJoinBaseVisitor<JoinExpression> {
     ClassResource left = ClassResource.fromQualifiedName(naturalJoinContext.classres(0).getText());
     ClassResource right = ClassResource.fromQualifiedName(naturalJoinContext.classres(1).getText());
 
-    NaturalJoinBuilder joinBuilder = JoinFactory.createNew()
+    NaturalJoinBuilder joinBuilder = (NaturalJoinBuilder)JoinFactory.createNew()
         .natural()
         .join(left)
         .with(right)
@@ -150,7 +150,7 @@ public class JoinStatementVisitor extends ModelJoinBaseVisitor<JoinExpression> {
     ClassResource left = ClassResource.fromQualifiedName(outerJoinContext.classres(0).getText());
     ClassResource right = ClassResource.fromQualifiedName(outerJoinContext.classres(1).getText());
 
-    OuterJoinBuilder joinBuilder = JoinFactory.createNew()
+    OuterJoinBuilder joinBuilder = (OuterJoinBuilder)JoinFactory.createNew()
         .outer()
         .join(left)
         .with(right)
diff --git a/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/legacy/JoinParser.java b/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/legacy/JoinParser.java
index ee32b6167aa20c1785f1671af0ac52f1a2c46b75..2a53a713e345f1b0182ca2e224da77baeda11b6e 100644
--- a/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/legacy/JoinParser.java
+++ b/src/main/java/org/rosi_project/model_sync/model_join/representation/parser/legacy/JoinParser.java
@@ -231,16 +231,16 @@ class JoinParser {
         keeps.forEach(outerJoinBuilder::keep);
         return outerJoinBuilder.done();
       case "theta":
-        ThetaJoinBuilder thetaJoinBuilder = joinFactory //
-            .theta() //
-            .join(ClassResource.fromQualifiedName(leftSource)) //
-            .with(ClassResource.fromQualifiedName(rightSource)) //
-            .as(ClassResource.fromQualifiedName(target)) //
-            .where(OCLConstraint.of(thetaPredicate));
+        ThetaJoinBuilder thetaJoinBuilder = (ThetaJoinBuilder)joinFactory
+            .theta()
+            .where(OCLConstraint.of(thetaPredicate))
+            .join(ClassResource.fromQualifiedName(leftSource))
+            .with(ClassResource.fromQualifiedName(rightSource)) 
+            .as(ClassResource.fromQualifiedName(target));
         keeps.forEach(thetaJoinBuilder::keep);
         return thetaJoinBuilder.done();
       case "natural":
-        NaturalJoinBuilder naturalJoinBuilder = joinFactory //
+        NaturalJoinBuilder naturalJoinBuilder = (NaturalJoinBuilder)joinFactory //
             .natural() //
             .join(ClassResource.fromQualifiedName(leftSource)) //
             .with(ClassResource.fromQualifiedName(rightSource)) //
diff --git a/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java b/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
index 6db9adf545602863afb2209a577014c7d30c3de4..0e6df61e4d47f680460853d506d720e4beb9ba0b 100644
--- a/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
+++ b/src/main/java/org/rosi_project/model_sync/modelrepresentation/ModelJoinCreation.java
@@ -39,6 +39,7 @@ public class ModelJoinCreation {
 			}
 		}*/
 		
+		
 		ClassResource library = ClassResource.from("lib", "Library");
 	    ClassResource employee = ClassResource.from("lib", "Employee");
 	    ClassResource person = ClassResource.from("lib", "Person");