diff --git a/src/main/java/de/tla2bAst/BAstCreator.java b/src/main/java/de/tla2bAst/BAstCreator.java
index 50ac77db4de99b5ee6b5acfee5eebb33950dc800..4cedf8b28f2af6dee30dd6fed78767a8a352ec91 100644
--- a/src/main/java/de/tla2bAst/BAstCreator.java
+++ b/src/main/java/de/tla2bAst/BAstCreator.java
@@ -43,15 +43,13 @@ public class BAstCreator extends BuiltInOPs
 
 	private final Definitions bDefinitions = new Definitions();
 
-	private Start start;
+	private final Start start;
 	private final Map<Node, TLAType> types = new HashMap<>();
 	private final Set<PositionedNode> sourcePosition = new HashSet<>();
 	private final NodeFileNumbers nodeFileNumbers = new NodeFileNumbers();
 	private final List<String> filesOrderedById = new ArrayList<>();
 	private List<String> toplevelUnchangedVariableNames = new ArrayList<>();
 
-	public Start expressionStart;
-
 	/**
 	 * Creates a B AST node for a TLA expression
 	 */
@@ -64,13 +62,9 @@ public class BAstCreator extends BuiltInOPs
 
 		ExprNode expr = moduleNode.getOpDefs()[moduleNode.getOpDefs().length - 1].getBody();
 		if (expressionIsAPredicate(expr)) {
-			APredicateParseUnit predicateParseUnit = new APredicateParseUnit();
-			predicateParseUnit.setPredicate(visitExprNodePredicate(expr));
-			expressionStart = new Start(predicateParseUnit, new EOF());
+			start = new Start(new APredicateParseUnit(visitExprNodePredicate(expr)), new EOF());
 		} else {
-			AExpressionParseUnit expressionParseUnit = new AExpressionParseUnit();
-			expressionParseUnit.setExpression(visitExprNodeExpression(expr));
-			expressionStart = new Start(expressionParseUnit, new EOF());
+			start = new Start(new AExpressionParseUnit(visitExprNodeExpression(expr)), new EOF());
 		}
 	}
 
diff --git a/src/main/java/de/tla2bAst/ExpressionTranslator.java b/src/main/java/de/tla2bAst/ExpressionTranslator.java
index f22e254420558492fa94d87cecbf30ad8a920abb..d16ad39242dfbe7f0ae78e3e215fce66cbf81b0c 100644
--- a/src/main/java/de/tla2bAst/ExpressionTranslator.java
+++ b/src/main/java/de/tla2bAst/ExpressionTranslator.java
@@ -134,10 +134,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants {
 			throw new ExpressionTranslationException(message);
 		}
 		SymbolRenamer.run(moduleNode, specAnalyser);
-		BAstCreator bASTCreator = new BAstCreator(moduleNode, specAnalyser);
-
-		this.expressionStart = bASTCreator.expressionStart;
-		return this.expressionStart;
+		return this.expressionStart = new BAstCreator(moduleNode, specAnalyser).getStartNode();
 	}
 
 	public Start translateWithoutModel() {
@@ -151,10 +148,7 @@ public class ExpressionTranslator implements SyntaxTreeConstants {
 			throw new ExpressionTranslationException(message);
 		}
 		SymbolRenamer.run(moduleNode, specAnalyser);
-		BAstCreator bASTCreator = new BAstCreator(moduleNode, specAnalyser);
-
-		this.expressionStart = bASTCreator.expressionStart;
-		return this.expressionStart;
+		return this.expressionStart = new BAstCreator(moduleNode, specAnalyser).getStartNode();
 	}
 
 	@Deprecated