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 abae0f0..622fb3b 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);
@@ -544,6 +544,7 @@
             posGroup = KoralObjectGenerator.makeGroup(KoralOperation.EXCLUSION);
         }
         else {
+            wrapOperandInClass(node, 1, 128 + classCounter++);
             posGroup = KoralObjectGenerator.makeGroup(KoralOperation.POSITION);
         }
 
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 0d6e156..3c848e4 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
@@ -36,8 +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("operation:class", res.at("/query/operands/0/operation").asText());
-        assertEquals("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
+        
+        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -53,8 +53,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").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:token", res.at("/query/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
 
 		// ND: I think, this requires
@@ -78,8 +78,8 @@
                 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("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
+        
+        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
 
 		// ND: I think, frames:matches is wrong here ...
@@ -225,8 +225,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").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:token", res.at("/query/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -242,8 +242,8 @@
                 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("koral:token", res.at("/query/operands/0/operands/0/@type").asText());
+        
+        assertEquals("koral:token", res.at("/query/operands/0/@type").asText());
         assertEquals("koral:span", res.at("/query/operands/1/@type").asText());
     }
 
@@ -262,8 +262,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").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:token", res.at("/query/operands/0/@type").asText());    }
 
     @Test
     public void testOPINwithExclusionN_ALL_MAX ()
@@ -277,8 +277,8 @@
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").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:token", res.at("/query/operands/0/@type").asText());
     }
     
     @Test
@@ -317,24 +317,24 @@
         query = "wegen #IN(N,HIT,%) (wegen /w5:10 des)";
         qs.setQuery(query, "cosmas2");
         res = mapper.readTree(qs.toJSON());
-//        System.out.println(res);
+        System.out.println(res);
         assertEquals("koral:group", res.at("/query/@type").asText());
         assertEquals("operation:exclusion",
                 res.at("/query/operation").asText());
         assertEquals(1, res.at("/query/frames").size());
         assertEquals("frames:isWithin", res.at("/query/frames/0").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:token", res.at("/query/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(130, seqOperand.at("/0/classOut").asInt());
+        assertEquals(129, seqOperand.at("/0/classOut").asInt());
         
         assertEquals("operation:class", seqOperand.at("/1/operation").asText());
-        assertEquals(130, seqOperand.at("/1/classOut").asInt());
+        assertEquals(129, seqOperand.at("/1/classOut").asInt());
     }
     
 }
