diff --git a/src/main/java/de/prob/voparser/VOParser.java b/src/main/java/de/prob/voparser/VOParser.java
index 4dad9b9d0c068086995d7b8f29698eecda093241..7285067b336a4346d0316e5f99b6de9b7a65bfd9 100644
--- a/src/main/java/de/prob/voparser/VOParser.java
+++ b/src/main/java/de/prob/voparser/VOParser.java
@@ -10,21 +10,18 @@ import de.prob.voparser.node.Start;
 import de.prob.voparser.parser.Parser;
 import de.prob.voparser.parser.ParserException;
 
-public class VOParser {
-	public VOParser() {}
-
-	public Start parseFormula(String formula) {
-		return parseAST(formula);
+public final class VOParser {
+	private VOParser() {
+		throw new AssertionError("Utility class");
 	}
 
-	public Start parseAST(String formula) {
+	public static Start parse(String formula) {
 		StringReader reader = new StringReader(formula);
 		PushbackReader r = new PushbackReader(reader);
 		Lexer l = new Lexer(r);
 		Parser p = new Parser(l);
-		Start ast = null;
 		try {
-			ast = p.parse();
+			return p.parse();
 		} catch (ParserException e) {
 			throw new VOParseException("Parsing VO formula failed at: " + e.getToken().getText(), e);
 		} catch (IOException e) {
@@ -32,6 +29,5 @@ public class VOParser {
 		} catch (LexerException e) {
 			throw new VOParseException("Parsing VO formula failed: " + e.getMessage(), e);
 		}
-		return ast;
 	}
 }
diff --git a/src/test/java/de/prob/voparser/VOParserTest.java b/src/test/java/de/prob/voparser/VOParserTest.java
index 05b815cf1b4d0f4d89fa9efd669cf334b73b6de0..7da394aad928665c989a1e55f54ff8beb27595c6 100644
--- a/src/test/java/de/prob/voparser/VOParserTest.java
+++ b/src/test/java/de/prob/voparser/VOParserTest.java
@@ -12,33 +12,28 @@ public class VOParserTest {
 
 	@Test
 	public void testAtomic() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1");
+		VOParser.parse("MC1");
 	}
 
 	@Test
 	public void testAnd() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1 & TR1");
+		VOParser.parse("MC1 & TR1");
 	}
 
 	@Test
 	public void testOr() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC1 or TR1");
+		VOParser.parse("MC1 or TR1");
 	}
 
 	@Test
 	public void testDot() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC.1");
+		VOParser.parse("MC.1");
 	}
 
 
 	@Test(expected = VOParseException.class)
 	public void testParseError() {
-		VOParser voParser = new VOParser();
-		voParser.parseFormula("MC.1&");
+		VOParser.parse("MC.1&");
 	}
 
 }