diff --git a/src/main/java/de/prob/voparser/VOParser.java b/src/main/java/de/prob/voparser/VOParser.java
index 7eb0fac8786fcdbb10c8156a4c92779788daec98..fe5c544ab3545092ad7e161e034da96b276ba994 100644
--- a/src/main/java/de/prob/voparser/VOParser.java
+++ b/src/main/java/de/prob/voparser/VOParser.java
@@ -16,13 +16,10 @@ public class VOParser {
 
 	private final Map<String, VTType> tasks;
 
-	private final VOScopeChecker scopeChecker;
-
 	private final VOTypeChecker typeChecker;
 
 	public VOParser() {
 		this.tasks = new HashMap<>();
-		this.scopeChecker = new VOScopeChecker(this);
 		this.typeChecker = new VOTypeChecker(this);
 	}
 
@@ -56,21 +53,10 @@ public class VOParser {
 		tasks.remove(id);
 	}
 
-	public void semanticCheck(Start ast) {
-		scopeChecker.scopeCheck(ast);
+	public void typeCheck(Start ast) {
 		typeChecker.typeCheck(ast);
 	}
 
-	public void semanticCheck(String formula) {
-		scopeCheck(formula);
-		typeCheck(formula);
-	}
-
-	public void scopeCheck(String formula) {
-		Start start = parseFormula(formula);
-		scopeChecker.scopeCheck(start);
-	}
-
 	public void typeCheck(String formula) {
 		Start start = parseFormula(formula);
 		typeChecker.typeCheck(start);
diff --git a/src/main/java/de/prob/voparser/VOScopeCheckException.java b/src/main/java/de/prob/voparser/VOScopeCheckException.java
deleted file mode 100644
index 7bbe7e2f07114a9d7976140289e22ac97043c7a2..0000000000000000000000000000000000000000
--- a/src/main/java/de/prob/voparser/VOScopeCheckException.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package de.prob.voparser;
-
-public class VOScopeCheckException extends VOException {
-	private static final long serialVersionUID = 1L;
-	
-	public VOScopeCheckException(final String message, final Throwable cause) {
-		super(message, cause);
-	}
-	
-	public VOScopeCheckException(final String message) {
-		this(message, null);
-	}
-	
-	public VOScopeCheckException(final Throwable cause) {
-		this(cause == null ? null : cause.toString(), cause);
-	}
-}
diff --git a/src/main/java/de/prob/voparser/VOScopeChecker.java b/src/main/java/de/prob/voparser/VOScopeChecker.java
deleted file mode 100644
index 7c370c5783e3ac8f51170da795498657dc9c70cb..0000000000000000000000000000000000000000
--- a/src/main/java/de/prob/voparser/VOScopeChecker.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package de.prob.voparser;
-
-import de.prob.voparser.analysis.DepthFirstAdapter;
-import de.prob.voparser.node.AIdentifierVo;
-import de.prob.voparser.node.Start;
-
-
-public class VOScopeChecker extends DepthFirstAdapter {
-
-	private final VOParser voParser;
-
-	public VOScopeChecker(VOParser voParser) {
-		this.voParser = voParser;
-	}
-
-	public void scopeCheck(Start start) {
-		start.apply(this);
-	}
-
-	@Override
-	public void caseAIdentifierVo(AIdentifierVo node) {
-		if (!voParser.getTasks().containsKey(node.getIdentifierLiteral().getText())) {
-			throw new VOScopeCheckException("Scope error in VO");
-		}
-	}
-
-}
diff --git a/src/main/java/de/prob/voparser/VOTypeChecker.java b/src/main/java/de/prob/voparser/VOTypeChecker.java
index ddba43f8ed7c800f42909f78b681f9773707f715..e296814699f43a2438c0af7ab3675e326e098ee6 100644
--- a/src/main/java/de/prob/voparser/VOTypeChecker.java
+++ b/src/main/java/de/prob/voparser/VOTypeChecker.java
@@ -92,7 +92,11 @@ public class VOTypeChecker extends DepthFirstAdapter {
 
 
 	private PersistentHashSet<AnimatorState> visitIdentifierNode(AIdentifierVo node, PersistentHashSet<AnimatorState> animatorState) {
-		VTType type = voParser.getTasks().get(node.getIdentifierLiteral().getText());
+		final String id = node.getIdentifierLiteral().getText();
+		if (!voParser.getTasks().containsKey(id)) {
+			throw new VOTypeCheckException("Scope error in VO");
+		}
+		VTType type = voParser.getTasks().get(id);
 		PersistentHashSet<AnimatorState> newAnimatorState = animatorState;
 		boolean valid = true;
 		switch (type) {
diff --git a/src/test/java/de/prob/voparser/VOScopingTest.java b/src/test/java/de/prob/voparser/VOScopingTest.java
deleted file mode 100644
index 2665b0914dde2a99e47f6860c19a4154c72e2fdd..0000000000000000000000000000000000000000
--- a/src/test/java/de/prob/voparser/VOScopingTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-package de.prob.voparser;
-
-/** 
- * (c) 2022 Lehrstuhl fuer Softwaretechnik und Programmiersprachen,
- * Heinrich Heine Universitaet Duesseldorf
- * This software is licenced under EPL 1.0 (http://www.eclipse.org/org/documents/epl-v10.html) 
- * */
-
-import org.junit.Test;
-
-public class VOScopingTest {
-
-	@Test
-	public void testAtomic() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1", VTType.EXPLORE);
-		voParser.scopeCheck("MC1");
-	}
-
-	@Test
-	public void testSequential() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1", VTType.TRACE);
-		voParser.registerTask("TR1", VTType.TRACE);
-		voParser.scopeCheck("MC1;TR1");
-	}
-
-	@Test(expected = VOScopeCheckException.class)
-	public void testSequentialError() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1", VTType.TRACE);
-		voParser.scopeCheck("MC1;TR1");
-	}
-
-	@Test
-	public void testAnd() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1", VTType.TRACE);
-		voParser.registerTask("TR1", VTType.TRACE);
-		voParser.scopeCheck("MC1 & TR1");
-	}
-
-	@Test
-	public void testAnd2() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1.1", VTType.TRACE);
-		voParser.registerTask("TR1.1", VTType.TRACE);
-		voParser.registerTask("MC2.1", VTType.TRACE);
-		voParser.registerTask("TR2.1", VTType.TRACE);
-		voParser.scopeCheck("(MC1.1; TR1.1) & (MC2.1; TR2.1)");
-	}
-
-	@Test
-	public void testOr() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1", VTType.TRACE);
-		voParser.registerTask("TR1", VTType.TRACE);
-		voParser.scopeCheck("MC1 or TR1");
-	}
-
-	@Test
-	public void testDot() {
-		VOParser voParser = new VOParser();
-		voParser.registerTask("MC1.1", VTType.EXPLORE);
-		voParser.scopeCheck("MC1.1");
-	}
-
-
-	@Test(expected = VOScopeCheckException.class)
-	public void testScopingError() {
-		VOParser voParser = new VOParser();
-		voParser.scopeCheck("MC1");
-	}
-
-}
diff --git a/src/test/java/de/prob/voparser/VOTypeCheckingTest.java b/src/test/java/de/prob/voparser/VOTypeCheckingTest.java
index 8d3eb826d8c92df31ccc489da2d25c622ec45e65..96e2baa848bc0e0cab5bde1a184e25a4592fa659 100644
--- a/src/test/java/de/prob/voparser/VOTypeCheckingTest.java
+++ b/src/test/java/de/prob/voparser/VOTypeCheckingTest.java
@@ -25,6 +25,13 @@ public class VOTypeCheckingTest {
 		voParser.typeCheck("MC1;MC2");
 	}
 
+	@Test(expected = VOTypeCheckException.class)
+	public void testSequentialError() {
+		VOParser voParser = new VOParser();
+		voParser.registerTask("MC1", VTType.TRACE);
+		voParser.typeCheck("MC1;TR1");
+	}
+
 	@Test(expected = VOTypeCheckException.class)
 	public void testSequential2() {
 		VOParser voParser = new VOParser();
@@ -42,6 +49,16 @@ public class VOTypeCheckingTest {
 		voParser.typeCheck("MC1 & TR1");
 	}
 
+	@Test
+	public void testAnd2() {
+		VOParser voParser = new VOParser();
+		voParser.registerTask("MC1.1", VTType.TRACE);
+		voParser.registerTask("TR1.1", VTType.TRACE);
+		voParser.registerTask("MC2.1", VTType.TRACE);
+		voParser.registerTask("TR2.1", VTType.TRACE);
+		voParser.typeCheck("(MC1.1; TR1.1) & (MC2.1; TR2.1)");
+	}
+
 	@Test
 	public void testOr() {
 		VOParser voParser = new VOParser();
@@ -50,4 +67,17 @@ public class VOTypeCheckingTest {
 		voParser.typeCheck("MC1 or TR1");
 	}
 
+	@Test
+	public void testDot() {
+		VOParser voParser = new VOParser();
+		voParser.registerTask("MC1.1", VTType.EXPLORE);
+		voParser.typeCheck("MC1.1");
+	}
+
+	@Test(expected = VOTypeCheckException.class)
+	public void testScopingError() {
+		VOParser voParser = new VOParser();
+		voParser.typeCheck("MC1");
+	}
+
 }