diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java b/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
index 7c30e56..abae0f0 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessor.java
@@ -534,7 +534,7 @@
     @SuppressWarnings("unchecked")
     private void processOPIN_OPOV (Tree node) {
         String nodeCat = getNodeCat(node);
-
+        wrapOperandInClass(node, 1, 128 + classCounter++);
         // Map<String, Object> posgroup =
         // makePosition(null);
         boolean isExclusion = isExclusion(node);
@@ -1210,7 +1210,7 @@
 
         
         if (classRefCheck.contains(ClassRefCheck.INCLUDES)) {
-            wrapOperandInClass(node, 1, 128 + classCounter++);
+//            wrapOperandInClass(node, 1, 128 + classCounter++);
             
             if (classRefCheck.contains(ClassRefCheck.EQUALS)){
                 classRefCheck.remove(ClassRefCheck.EQUALS);
@@ -1221,7 +1221,7 @@
         }
         else if (classRefCheck.contains(ClassRefCheck.EQUALS)
                 || classRefCheck.contains(ClassRefCheck.UNEQUALS)) {
-            wrapOperandInClass(node, 1, 128 + classCounter++);
+//            wrapOperandInClass(node, 1, 128 + classCounter++);
             wrapOperandInClass(node, 2, 128 + classCounter++);
         }
         
@@ -1253,21 +1253,22 @@
                 positions.add(KoralFrame.MATCHES);
                 break;
             case "FE":
-                classRefCheck.add(ClassRefCheck.EQUALS);
                 positions.add(KoralFrame.MATCHES);
+                classRefCheck.add(ClassRefCheck.EQUALS);
                 break;
             case "FI":
-                classRefCheck.add(ClassRefCheck.UNEQUALS);
                 positions.add(KoralFrame.MATCHES);
+                classRefCheck.add(ClassRefCheck.UNEQUALS);
                 break;
             case "N":
                 positions.add(KoralFrame.IS_WITHIN);
                 break;
             default:
+                positions.add(KoralFrame.MATCHES);
                 positions.add(KoralFrame.ALIGNS_LEFT);
                 positions.add(KoralFrame.ALIGNS_RIGHT);
                 positions.add(KoralFrame.IS_WITHIN);
-                positions.add(KoralFrame.MATCHES);
+                
         }
         
     }
@@ -1336,7 +1337,7 @@
         posOptions.put("frames", Converter.enumListToStringList(positions));
         posOptions.put("classRefCheck", classRefCheck);
         if (!classRefCheck.isEmpty()) {
-            wrapOperandInClass(node, 1, 128 + classCounter++);
+//            wrapOperandInClass(node, 1, 128 + classCounter++);
             wrapOperandInClass(node, 2, 128 + classCounter++);
         }
 //        if (exclnode != null) {
diff --git a/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINTest.java b/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINTest.java
index 7b89902..f9efc9c 100644
--- a/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINTest.java
@@ -29,7 +29,7 @@
         query = "wegen #IN <s>";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
-
+//        System.out.println(res);
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:position", res.at("/query/operation").asText());
         assertEquals(4, res.at("/query/frames").size());
@@ -37,9 +37,10 @@
         assertEquals("frames:alignsLeft", res.at("/query/frames/1").asText());
         assertEquals("frames:alignsRight", res.at("/query/frames/2").asText());
         assertEquals("frames:isWithin", res.at("/query/frames/3").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
-		// ND: This should fail with a focus requirement on the first operand!
     }
 
 
@@ -49,12 +50,15 @@
         query = "wegen #IN(N) <s>";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
+//        System.out.println(res);
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:position", res.at("/query/operation").asText());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("wegen", res.at("/query/operands/0/wrap/key").asText());
+        
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("wegen", res.at("/query/operands/0/operands/0/wrap/key").asText());
+        
         assertEquals("s", res.at("/query/operands/1/wrap/key").asText());
-		// ND: This should fail with a focus requirement on the first operand!
     }
 
 
@@ -68,11 +72,10 @@
         assertEquals("operation:position", res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
 
-        assertEquals("frames:alignsLeft", res.at("/query/frames/0").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("wegen", res.at("/query/operands/0/operands/0/wrap/key").asText());
 
-        assertEquals("wegen", res.at("/query/operands/0/wrap/key").asText());
         assertEquals("s", res.at("/query/operands/1/wrap/key").asText());
-		// ND: This should fail with a focus requirement on the first operand!
     }
 
 
@@ -88,9 +91,9 @@
         assertEquals("frames:alignsRight", res.at("/query/frames/0").asText());
         assertEquals(1, res.at("/query/frames").size());
 
-        assertEquals("wegen", res.at("/query/operands/0/wrap/key").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("wegen", res.at("/query/operands/0/operands/0/wrap/key").asText());
         assertEquals("s", res.at("/query/operands/1/wrap/key").asText());
-		// ND: This should fail with a focus requirement on the first operand!
     }
 
 
@@ -100,11 +103,15 @@
         query = "wegen #IN(F) <s>";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
+//        System.out.println(res);
         assertEquals(true,
                 res.at("/query/operands/0/classRefCheck").isMissingNode());
         //EM: should include classRefCheck:include
         assertEquals("frames:matches", res.at("/query/frames/0").asText());
         assertEquals(true, res.at("/query/frames/1").isMissingNode());
+        
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("wegen", res.at("/query/operands/0/operands/0/wrap/key").asText());
     }
 
 
@@ -184,7 +191,9 @@
 		assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:position", res.at("/query/operation").asText());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("sich", res.at("/query/operands/0/wrap/key").asText());
+        
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("sich", res.at("/query/operands/0/operands/0/wrap/key").asText());
         assertEquals("gelten",
                 res.at("/query/operands/1/operands/0/operands/0/wrap/key")
                         .asText());
@@ -244,6 +253,7 @@
         query = "gilt #IN(FE,HIT) (&gelten /w5:10 zurecht)";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
+        System.out.println(res);
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:class", res.at("/query/operation").asText());
 
diff --git a/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINWithExclusionTest.java b/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINWithExclusionTest.java
index c9a7ab2..0d6e156 100644
--- a/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINWithExclusionTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/cosmas2/OPINWithExclusionTest.java
@@ -27,7 +27,7 @@
         query = "wegen #IN(%) <s>";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
-
+        System.out.println(res);
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:exclusion",
                 res.at("/query/operation").asText());
@@ -36,7 +36,8 @@
         assertEquals("frames:alignsRight", res.at("/query/frames/1").asText());
         assertEquals("frames:matches", res.at("/query/frames/3").asText());
         assertEquals("frames:isWithin", res.at("/query/frames/2").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -52,7 +53,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
 
 		// ND: I think, this requires
@@ -76,7 +78,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:alignsLeft", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
 
 		// ND: I think, frames:matches is wrong here ...
@@ -222,7 +225,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -236,10 +240,10 @@
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:exclusion",
                 res.at("/query/operation").asText());
-        assertEquals(2, res.at("/query/frames").size());
+        assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:alignsLeft", res.at("/query/frames/0").asText());
-        assertEquals("frames:matches", res.at("/query/frames/1").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -258,9 +262,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
-        assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
-    }
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());    }
 
     @Test
     public void testOPINwithExclusionN_ALL_MAX ()
@@ -274,7 +277,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
     }
     
     @Test
@@ -319,17 +323,18 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
+        assertEquals("operation:class", res.at("/query/operands/0/operation").asText());
+        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
         
         assertEquals("operation:sequence", res.at("/query/operands/1/operation").asText());
         
         JsonNode seqOperand = res.at("/query/operands/1/operands");
                 
         assertEquals("operation:class", seqOperand.at("/0/operation").asText());
-        assertEquals(129, seqOperand.at("/0/classOut").asInt());
+        assertEquals(130, seqOperand.at("/0/classOut").asInt());
         
         assertEquals("operation:class", seqOperand.at("/1/operation").asText());
-        assertEquals(129, seqOperand.at("/1/classOut").asInt());
+        assertEquals(130, seqOperand.at("/1/classOut").asInt());
     }
     
 }
