diff --git a/src/test/java/de/ids_mannheim/korap/query/TestFrameConstraint.java b/src/test/java/de/ids_mannheim/korap/query/TestFrameConstraint.java
index 729f5c9..8ed5c02 100644
--- a/src/test/java/de/ids_mannheim/korap/query/TestFrameConstraint.java
+++ b/src/test/java/de/ids_mannheim/korap/query/TestFrameConstraint.java
@@ -21,7 +21,7 @@
     @Test
     public void testInitialization () throws QueryException {
         FrameConstraint fc = new FrameConstraint();
-        assertEquals(fc.check(1), false);
+        assertEquals(false, fc.check(1));
     };
 
 
@@ -39,114 +39,114 @@
         FrameConstraint fc = new FrameConstraint();
 
         // Nothing set
-        assertEquals(fc.check("precedes"), false);
-        assertEquals(fc.check("precedesDirectly"), false);
-        assertEquals(fc.check("overlapsLeft"), false);
-        assertEquals(fc.check("alignsLeft"), false);
-        assertEquals(fc.check("startsWith"), false);
-        assertEquals(fc.check("matches"), false);
-        assertEquals(fc.check("isWithin"), false);
-        assertEquals(fc.check("isAround"), false);
-        assertEquals(fc.check("endsWith"), false);
-        assertEquals(fc.check("alignsRight"), false);
-        assertEquals(fc.check("overlapsRight"), false);
-        assertEquals(fc.check("succeedsDirectly"), false);
-        assertEquals(fc.check("succeeds"), false);
+        assertEquals(false, fc.check("precedes"));
+        assertEquals(false, fc.check("precedesDirectly"));
+        assertEquals(false, fc.check("overlapsLeft"));
+        assertEquals(false, fc.check("alignsLeft"));
+        assertEquals(false, fc.check("startsWith"));
+        assertEquals(false, fc.check("matches"));
+        assertEquals(false, fc.check("isWithin"));
+        assertEquals(false, fc.check("isAround"));
+        assertEquals(false, fc.check("endsWith"));
+        assertEquals(false, fc.check("alignsRight"));
+        assertEquals(false, fc.check("overlapsRight"));
+        assertEquals(false, fc.check("succeedsDirectly"));
+        assertEquals(false, fc.check("succeeds"));
 
         // Some or
         fc.add("succeeds").add("succeedsDirectly");
-        assertEquals(fc.check("precedes"), false);
-        assertEquals(fc.check("precedesDirectly"), false);
-        assertEquals(fc.check("overlapsLeft"), false);
-        assertEquals(fc.check("alignsLeft"), false);
-        assertEquals(fc.check("startsWith"), false);
-        assertEquals(fc.check("matches"), false);
-        assertEquals(fc.check("isWithin"), false);
-        assertEquals(fc.check("isAround"), false);
-        assertEquals(fc.check("endsWith"), false);
-        assertEquals(fc.check("alignsRight"), false);
-        assertEquals(fc.check("overlapsRight"), false);
-        assertEquals(fc.check("succeedsDirectly"), true);
-        assertEquals(fc.check("succeeds"), true);
+        assertEquals(false, fc.check("precedes"));
+        assertEquals(false, fc.check("precedesDirectly"));
+        assertEquals(false, fc.check("overlapsLeft"));
+        assertEquals(false, fc.check("alignsLeft"));
+        assertEquals(false, fc.check("startsWith"));
+        assertEquals(false, fc.check("matches"));
+        assertEquals(false, fc.check("isWithin"));
+        assertEquals(false, fc.check("isAround"));
+        assertEquals(false, fc.check("endsWith"));
+        assertEquals(false, fc.check("alignsRight"));
+        assertEquals(false, fc.check("overlapsRight"));
+        assertEquals(true, fc.check("succeedsDirectly"));
+        assertEquals(true, fc.check("succeeds"));
 
         // Moar or
         fc.add("precedes").add("precedesDirectly");
-        assertEquals(fc.check("precedes"), true);
-        assertEquals(fc.check("precedesDirectly"), true);
-        assertEquals(fc.check("overlapsLeft"), false);
-        assertEquals(fc.check("alignsLeft"), false);
-        assertEquals(fc.check("startsWith"), false);
-        assertEquals(fc.check("matches"), false);
-        assertEquals(fc.check("isWithin"), false);
-        assertEquals(fc.check("isAround"), false);
-        assertEquals(fc.check("endsWith"), false);
-        assertEquals(fc.check("alignsRight"), false);
-        assertEquals(fc.check("overlapsRight"), false);
-        assertEquals(fc.check("succeedsDirectly"), true);
-        assertEquals(fc.check("succeeds"), true);
+        assertEquals(true, fc.check("precedes"));
+        assertEquals(true, fc.check("precedesDirectly"));
+        assertEquals(false, fc.check("overlapsLeft"));
+        assertEquals(false, fc.check("alignsLeft"));
+        assertEquals(false, fc.check("startsWith"));
+        assertEquals(false, fc.check("matches"));
+        assertEquals(false, fc.check("isWithin"));
+        assertEquals(false, fc.check("isAround"));
+        assertEquals(false, fc.check("endsWith"));
+        assertEquals(false, fc.check("alignsRight"));
+        assertEquals(false, fc.check("overlapsRight"));
+        assertEquals(true, fc.check("succeedsDirectly"));
+        assertEquals(true, fc.check("succeeds"));
 
         // Moar or
         fc.add("matches").add("startsWith");
-        assertEquals(fc.check("precedes"), true);
-        assertEquals(fc.check("precedesDirectly"), true);
-        assertEquals(fc.check("overlapsLeft"), false);
-        assertEquals(fc.check("alignsLeft"), false);
-        assertEquals(fc.check("startsWith"), true);
-        assertEquals(fc.check("matches"), true);
-        assertEquals(fc.check("isWithin"), false);
-        assertEquals(fc.check("isAround"), false);
-        assertEquals(fc.check("endsWith"), false);
-        assertEquals(fc.check("alignsRight"), false);
-        assertEquals(fc.check("overlapsRight"), false);
-        assertEquals(fc.check("succeedsDirectly"), true);
-        assertEquals(fc.check("succeeds"), true);
+        assertEquals(true, fc.check("precedes"));
+        assertEquals(true, fc.check("precedesDirectly"));
+        assertEquals(false, fc.check("overlapsLeft"));
+        assertEquals(false, fc.check("alignsLeft"));
+        assertEquals(true, fc.check("startsWith"));
+        assertEquals(true, fc.check("matches"));
+        assertEquals(false, fc.check("isWithin"));
+        assertEquals(false, fc.check("isAround"));
+        assertEquals(false, fc.check("endsWith"));
+        assertEquals(false, fc.check("alignsRight"));
+        assertEquals(false, fc.check("overlapsRight"));
+        assertEquals(true, fc.check("succeedsDirectly"));
+        assertEquals(true, fc.check("succeeds"));
 
         // Invert
         fc.invert();
-        assertEquals(fc.check("precedes"), false);
-        assertEquals(fc.check("precedesDirectly"), false);
-        assertEquals(fc.check("overlapsLeft"), true);
-        assertEquals(fc.check("alignsLeft"), true);
-        assertEquals(fc.check("startsWith"), false);
-        assertEquals(fc.check("matches"), false);
-        assertEquals(fc.check("isWithin"), true);
-        assertEquals(fc.check("isAround"), true);
-        assertEquals(fc.check("endsWith"), true);
-        assertEquals(fc.check("alignsRight"), true);
-        assertEquals(fc.check("overlapsRight"), true);
-        assertEquals(fc.check("succeedsDirectly"), false);
-        assertEquals(fc.check("succeeds"), false);
+        assertEquals(false, fc.check("precedes"));
+        assertEquals(false, fc.check("precedesDirectly"));
+        assertEquals(true, fc.check("overlapsLeft"));
+        assertEquals(true, fc.check("alignsLeft"));
+        assertEquals(false, fc.check("startsWith"));
+        assertEquals(false, fc.check("matches"));
+        assertEquals(true, fc.check("isWithin"));
+        assertEquals(true, fc.check("isAround"));
+        assertEquals(true, fc.check("endsWith"));
+        assertEquals(true, fc.check("alignsRight"));
+        assertEquals(true, fc.check("overlapsRight"));
+        assertEquals(false, fc.check("succeedsDirectly"));
+        assertEquals(false, fc.check("succeeds"));
 
         fc.add("precedes").add("precedesDirectly").add("startsWith")
                 .add("matches");
-        assertEquals(fc.check("precedes"), true);
-        assertEquals(fc.check("precedesDirectly"), true);
-        assertEquals(fc.check("overlapsLeft"), true);
-        assertEquals(fc.check("alignsLeft"), true);
-        assertEquals(fc.check("startsWith"), true);
-        assertEquals(fc.check("matches"), true);
-        assertEquals(fc.check("isWithin"), true);
-        assertEquals(fc.check("isAround"), true);
-        assertEquals(fc.check("endsWith"), true);
-        assertEquals(fc.check("alignsRight"), true);
-        assertEquals(fc.check("overlapsRight"), true);
-        assertEquals(fc.check("succeedsDirectly"), false);
-        assertEquals(fc.check("succeeds"), false);
+        assertEquals(true, fc.check("precedes"));
+        assertEquals(true, fc.check("precedesDirectly"));
+        assertEquals(true, fc.check("overlapsLeft"));
+        assertEquals(true, fc.check("alignsLeft"));
+        assertEquals(true, fc.check("startsWith"));
+        assertEquals(true, fc.check("matches"));
+        assertEquals(true, fc.check("isWithin"));
+        assertEquals(true, fc.check("isAround"));
+        assertEquals(true, fc.check("endsWith"));
+        assertEquals(true, fc.check("alignsRight"));
+        assertEquals(true, fc.check("overlapsRight"));
+        assertEquals(false, fc.check("succeedsDirectly"));
+        assertEquals(false, fc.check("succeeds"));
 
         fc.add("succeeds").add("succeedsDirectly");
-        assertEquals(fc.check("precedes"), true);
-        assertEquals(fc.check("precedesDirectly"), true);
-        assertEquals(fc.check("overlapsLeft"), true);
-        assertEquals(fc.check("alignsLeft"), true);
-        assertEquals(fc.check("startsWith"), true);
-        assertEquals(fc.check("matches"), true);
-        assertEquals(fc.check("isWithin"), true);
-        assertEquals(fc.check("isAround"), true);
-        assertEquals(fc.check("endsWith"), true);
-        assertEquals(fc.check("alignsRight"), true);
-        assertEquals(fc.check("overlapsRight"), true);
-        assertEquals(fc.check("succeedsDirectly"), true);
-        assertEquals(fc.check("succeeds"), true);
+        assertEquals(true, fc.check("precedes"));
+        assertEquals(true, fc.check("precedesDirectly"));
+        assertEquals(true, fc.check("overlapsLeft"));
+        assertEquals(true, fc.check("alignsLeft"));
+        assertEquals(true, fc.check("startsWith"));
+        assertEquals(true, fc.check("matches"));
+        assertEquals(true, fc.check("isWithin"));
+        assertEquals(true, fc.check("isAround"));
+        assertEquals(true, fc.check("endsWith"));
+        assertEquals(true, fc.check("alignsRight"));
+        assertEquals(true, fc.check("overlapsRight"));
+        assertEquals(true, fc.check("succeedsDirectly"));
+        assertEquals(true, fc.check("succeeds"));
     };
 
 
@@ -155,50 +155,50 @@
         FrameConstraint fc1 = new FrameConstraint();
         // Some or
         fc1.add("succeeds").add("succeedsDirectly");
-        assertEquals(fc1.check("precedes"), false);
-        assertEquals(fc1.check("precedesDirectly"), false);
-        assertEquals(fc1.check("overlapsLeft"), false);
-        assertEquals(fc1.check("alignsLeft"), false);
-        assertEquals(fc1.check("startsWith"), false);
-        assertEquals(fc1.check("matches"), false);
-        assertEquals(fc1.check("isWithin"), false);
-        assertEquals(fc1.check("isAround"), false);
-        assertEquals(fc1.check("endsWith"), false);
-        assertEquals(fc1.check("alignsRight"), false);
-        assertEquals(fc1.check("overlapsRight"), false);
-        assertEquals(fc1.check("succeedsDirectly"), true);
-        assertEquals(fc1.check("succeeds"), true);
+        assertEquals(false, fc1.check("precedes"));
+        assertEquals(false, fc1.check("precedesDirectly"));
+        assertEquals(false, fc1.check("overlapsLeft"));
+        assertEquals(false, fc1.check("alignsLeft"));
+        assertEquals(false, fc1.check("startsWith"));
+        assertEquals(false, fc1.check("matches"));
+        assertEquals(false, fc1.check("isWithin"));
+        assertEquals(false, fc1.check("isAround"));
+        assertEquals(false, fc1.check("endsWith"));
+        assertEquals(false, fc1.check("alignsRight"));
+        assertEquals(false, fc1.check("overlapsRight"));
+        assertEquals(true, fc1.check("succeedsDirectly"));
+        assertEquals(true, fc1.check("succeeds"));
 
         FrameConstraint fc2 = new FrameConstraint();
         fc2.add("precedes").add("precedesDirectly");
-        assertEquals(fc2.check("precedes"), true);
-        assertEquals(fc2.check("precedesDirectly"), true);
-        assertEquals(fc2.check("overlapsLeft"), false);
-        assertEquals(fc2.check("alignsLeft"), false);
-        assertEquals(fc2.check("startsWith"), false);
-        assertEquals(fc2.check("matches"), false);
-        assertEquals(fc2.check("isWithin"), false);
-        assertEquals(fc2.check("isAround"), false);
-        assertEquals(fc2.check("endsWith"), false);
-        assertEquals(fc2.check("alignsRight"), false);
-        assertEquals(fc2.check("overlapsRight"), false);
-        assertEquals(fc2.check("succeedsDirectly"), false);
-        assertEquals(fc2.check("succeeds"), false);
+        assertEquals(true, fc2.check("precedes"));
+        assertEquals(true, fc2.check("precedesDirectly"));
+        assertEquals(false, fc2.check("overlapsLeft"));
+        assertEquals(false, fc2.check("alignsLeft"));
+        assertEquals(false, fc2.check("startsWith"));
+        assertEquals(false, fc2.check("matches"));
+        assertEquals(false, fc2.check("isWithin"));
+        assertEquals(false, fc2.check("isAround"));
+        assertEquals(false, fc2.check("endsWith"));
+        assertEquals(false, fc2.check("alignsRight"));
+        assertEquals(false, fc2.check("overlapsRight"));
+        assertEquals(false, fc2.check("succeedsDirectly"));
+        assertEquals(false, fc2.check("succeeds"));
 
         fc1.add(fc2);
-        assertEquals(fc1.check("precedes"), true);
-        assertEquals(fc1.check("precedesDirectly"), true);
-        assertEquals(fc1.check("overlapsLeft"), false);
-        assertEquals(fc1.check("alignsLeft"), false);
-        assertEquals(fc1.check("startsWith"), false);
-        assertEquals(fc1.check("matches"), false);
-        assertEquals(fc1.check("isWithin"), false);
-        assertEquals(fc1.check("isAround"), false);
-        assertEquals(fc1.check("endsWith"), false);
-        assertEquals(fc1.check("alignsRight"), false);
-        assertEquals(fc1.check("overlapsRight"), false);
-        assertEquals(fc1.check("succeedsDirectly"), true);
-        assertEquals(fc1.check("succeeds"), true);
+        assertEquals(true, fc1.check("precedes"));
+        assertEquals(true, fc1.check("precedesDirectly"));
+        assertEquals(false, fc1.check("overlapsLeft"));
+        assertEquals(false, fc1.check("alignsLeft"));
+        assertEquals(false, fc1.check("startsWith"));
+        assertEquals(false, fc1.check("matches"));
+        assertEquals(false, fc1.check("isWithin"));
+        assertEquals(false, fc1.check("isAround"));
+        assertEquals(false, fc1.check("endsWith"));
+        assertEquals(false, fc1.check("alignsRight"));
+        assertEquals(false, fc1.check("overlapsRight"));
+        assertEquals(true, fc1.check("succeedsDirectly"));
+        assertEquals(true, fc1.check("succeeds"));
     };
 
 
