- no-highlight classes > 128
- code cleanup
diff --git a/.gitignore b/.gitignore
index 56fb75b..714609d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -64,3 +64,5 @@
 
 # /src/main/java/de/ids_mannheim/korap/query/serialize/
 /src/main/java/de/ids_mannheim/korap/query/serialize/SerializationSandbox.java
+/lib/
+/bin/
diff --git a/pom.xml b/pom.xml
index 0c2ec69..4e1eac4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -102,125 +102,127 @@
 	</dependencies>
 	<build>
 		<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
-		<outputDirectory>${basedir}/bin</outputDirectory>
-		<plugins>
-			<!-- Formatter plugin for Eclipse based coding conventions http://maven-java-formatter-plugin.googlecode.com/svn/site/0.4/usage.html -->
-			<plugin>
-				<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
-				<artifactId>maven-java-formatter-plugin</artifactId>
-				<version>0.4</version>
-				<configuration>
-					<configFile>${project.basedir}/korap-style.xml</configFile>
-					<overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
-					<compilerSource>1.7</compilerSource>
-					<compilerCompliance>1.7</compilerCompliance>
-					<compilerTargetPlatform>1.7</compilerTargetPlatform>
-				</configuration>
-			</plugin>
-			<plugin>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<phase>install</phase>
-						<goals>
-							<goal>copy-dependencies</goal>
-						</goals>
-						<configuration>
-							<outputDirectory>${project.build.directory}/../lib</outputDirectory>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-jar-plugin</artifactId>
-				<version>2.5</version>
-				<configuration>
-					<archive>
-						<manifest>
-							<addClasspath>true</addClasspath>
-							<classpathPrefix>../lib/</classpathPrefix>
-							<mainClass>de.ids_mannheim.korap.query.serialize.QuerySerializer</mainClass>
-						</manifest>
-					</archive>
-				</configuration>
-			</plugin>
-			<plugin>
-				<!-- This plugin will help to build the ANTLR4 grammar on the fly. The 
-					recipe is based on http://stackoverflow.com/questions/15310628/ customize-maven-to-automatically-create-antlr4-grammar-java-files-on-build -->
-				<groupId>org.antlr</groupId>
-				<artifactId>antlr4-maven-plugin</artifactId>
-				<version>4.1</version>
-				<executions>
-					<execution>
-						<id>poliqarpplus</id>
-						<goals>
-							<goal>antlr4</goal>
-						</goals>
-						<configuration>
-							<sourceDirectory>${basedir}/src/main/antlr/poliqarpplus</sourceDirectory>
-							<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/poliqarpplus</outputDirectory>
-							<libDirectory>${basedir}/src/main/antlr/poliqarpplus</libDirectory>
-						</configuration>
-						<phase>generate-sources</phase>
-					</execution>
-					<execution>
-						<id>annis</id>
-						<goals>
-							<goal>antlr4</goal>
-						</goals>
-						<configuration>
-							<sourceDirectory>${basedir}/src/main/antlr/annis</sourceDirectory>
-							<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/annis</outputDirectory>
-							<libDirectory>${basedir}/src/main/antlr/annis</libDirectory>
-						</configuration>
-						<phase>generate-sources</phase>
-					</execution>
-					<execution>
-						<id>collection</id>
-						<goals>
-							<goal>antlr4</goal>
-						</goals>
-						<configuration>
-							<sourceDirectory>${basedir}/src/main/antlr/collection</sourceDirectory>
-							<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/collection</outputDirectory>
-							<libDirectory>${basedir}/src/main/antlr/collection</libDirectory>
-						</configuration>
-						<phase>generate-sources</phase>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<!-- This plugin will help to build the ANTLR3 grammar on the fly. The 
-					recipe is based on http://stackoverflow.com/questions/15310628/ customize-maven-to-automatically-create-antlr4-grammar-java-files-on-build -->
-				<groupId>org.antlr</groupId>
-				<artifactId>antlr3-maven-plugin</artifactId>
-				<version>3.5.1</version>
-				<configuration>
-					<sourceDirectory>${basedir}/src/main/antlr/cosmas</sourceDirectory>
-					<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/cosmas</outputDirectory>
-					<libDirectory>${basedir}/src/main/antlr</libDirectory>
-				</configuration>
+		<outputDirectory>${basedir}/target/classes</outputDirectory>
+		<pluginManagement>
+			<plugins>
+				<!-- Formatter plugin for Eclipse based coding conventions http://maven-java-formatter-plugin.googlecode.com/svn/site/0.4/usage.html -->
+				<plugin>
+					<groupId>com.googlecode.maven-java-formatter-plugin</groupId>
+					<artifactId>maven-java-formatter-plugin</artifactId>
+					<version>0.4</version>
+					<configuration>
+						<configFile>${project.basedir}/korap-style.xml</configFile>
+						<overrideConfigCompilerVersion>true</overrideConfigCompilerVersion>
+						<compilerSource>1.7</compilerSource>
+						<compilerCompliance>1.7</compilerCompliance>
+						<compilerTargetPlatform>1.7</compilerTargetPlatform>
+					</configuration>
+				</plugin>
+				<plugin>
+					<artifactId>maven-dependency-plugin</artifactId>
+					<executions>
+						<execution>
+							<phase>install</phase>
+							<goals>
+								<goal>copy-dependencies</goal>
+							</goals>
+							<configuration>
+								<outputDirectory>${project.build.directory}/../lib</outputDirectory>
+							</configuration>
+						</execution>
+					</executions>
+				</plugin>
+				<plugin>
+					<groupId>org.apache.maven.plugins</groupId>
+					<artifactId>maven-jar-plugin</artifactId>
+					<version>2.5</version>
+					<configuration>
+						<archive>
+							<manifest>
+								<addClasspath>true</addClasspath>
+								<classpathPrefix>../lib/</classpathPrefix>
+								<mainClass>de.ids_mannheim.korap.query.serialize.QuerySerializer</mainClass>
+							</manifest>
+						</archive>
+					</configuration>
+				</plugin>
+				<plugin>
+					<!-- This plugin will help to build the ANTLR4 grammar on the fly. The 
+						recipe is based on http://stackoverflow.com/questions/15310628/ customize-maven-to-automatically-create-antlr4-grammar-java-files-on-build -->
+					<groupId>org.antlr</groupId>
+					<artifactId>antlr4-maven-plugin</artifactId>
+					<version>4.1</version>
+					<executions>
+						<execution>
+							<id>poliqarpplus</id>
+							<goals>
+								<goal>antlr4</goal>
+							</goals>
+							<configuration>
+								<sourceDirectory>${basedir}/src/main/antlr/poliqarpplus</sourceDirectory>
+								<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/poliqarpplus</outputDirectory>
+								<libDirectory>${basedir}/src/main/antlr/poliqarpplus</libDirectory>
+							</configuration>
+							<phase>generate-sources</phase>
+						</execution>
+						<execution>
+							<id>annis</id>
+							<goals>
+								<goal>antlr4</goal>
+							</goals>
+							<configuration>
+								<sourceDirectory>${basedir}/src/main/antlr/annis</sourceDirectory>
+								<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/annis</outputDirectory>
+								<libDirectory>${basedir}/src/main/antlr/annis</libDirectory>
+							</configuration>
+							<phase>generate-sources</phase>
+						</execution>
+						<execution>
+							<id>collection</id>
+							<goals>
+								<goal>antlr4</goal>
+							</goals>
+							<configuration>
+								<sourceDirectory>${basedir}/src/main/antlr/collection</sourceDirectory>
+								<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/collection</outputDirectory>
+								<libDirectory>${basedir}/src/main/antlr/collection</libDirectory>
+							</configuration>
+							<phase>generate-sources</phase>
+						</execution>
+					</executions>
+				</plugin>
+				<plugin>
+					<!-- This plugin will help to build the ANTLR3 grammar on the fly. The 
+						recipe is based on http://stackoverflow.com/questions/15310628/ customize-maven-to-automatically-create-antlr4-grammar-java-files-on-build -->
+					<groupId>org.antlr</groupId>
+					<artifactId>antlr3-maven-plugin</artifactId>
+					<version>3.5.1</version>
+					<configuration>
+						<sourceDirectory>${basedir}/src/main/antlr/cosmas</sourceDirectory>
+						<outputDirectory>${basedir}/src/main/java/de/ids_mannheim/korap/query/parse/cosmas</outputDirectory>
+						<libDirectory>${basedir}/src/main/antlr</libDirectory>
+					</configuration>
 
-				<executions>
-					<execution>
-						<goals>
-							<goal>antlr</goal>
-						</goals>
-						<phase>generate-sources</phase>
-					</execution>
-				</executions>
+					<executions>
+						<execution>
+							<goals>
+								<goal>antlr</goal>
+							</goals>
+							<phase>generate-sources</phase>
+						</execution>
+					</executions>
 
-			</plugin>
-			<plugin>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>2.3.2</version>
-				<configuration>
-					<source>1.7</source>
-					<target>1.7</target>
-					<!-- excludes> <exclude>**/CosmasTree.java</exclude> </excludes -->
-				</configuration>
-			</plugin>
-		</plugins>
+				</plugin>
+				<plugin>
+					<artifactId>maven-compiler-plugin</artifactId>
+					<version>2.3.2</version>
+					<configuration>
+						<source>1.7</source>
+						<target>1.7</target>
+						<!-- excludes> <exclude>**/CosmasTree.java</exclude> </excludes -->
+					</configuration>
+				</plugin>
+			</plugins>
+		</pluginManagement>
 	</build>
 </project>
diff --git a/src/main/java/.gitignore b/src/main/java/.gitignore
new file mode 100644
index 0000000..688761c
--- /dev/null
+++ b/src/main/java/.gitignore
@@ -0,0 +1 @@
+/SerializationSandbox.java
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/.gitignore b/src/main/java/de/ids_mannheim/korap/query/parse/.gitignore
new file mode 100644
index 0000000..e92a46d
--- /dev/null
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/.gitignore
@@ -0,0 +1,3 @@
+/annis/
+/collection/
+/poliqarpplus/
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opAnnot.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opAnnot.java
index 4bb62a2..593988d 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opAnnot.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opAnnot.java
@@ -1,10 +1,5 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
-import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
-import org.antlr.runtime.tree.*;
-
 /* COSMAS II Plain Syntax (c2ps).
  * lokale Grammatik für Optionen von #IN(Opts).
  * 12.12.12/FB
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opBED.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opBED.java
index a6dc19b..713c289 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opBED.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opBED.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 // parses Opts in #BED(x,Opts):
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opELEM.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opELEM.java
index 9968e24..2e0c55c 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opELEM.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opELEM.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 // parses Search Expression inside #ELEM(...):
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opIN.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opIN.java
index 7d50a90..53f6429 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opIN.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opIN.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 /* COSMAS II Plain Syntax (c2ps).
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opOV.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opOV.java
index c47160c..27cd9de 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opOV.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opOV.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 /* COSMAS II Plain Syntax (c2ps).
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opPROX.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opPROX.java
index 4d8561d..12d8fa4 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opPROX.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opPROX.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 /*
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opWF.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opWF.java
index 5400bec..7cdac48 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opWF.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_opWF.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 /*
diff --git a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_optCase.java b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_optCase.java
index 8f1ad28..8a971d6 100644
--- a/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_optCase.java
+++ b/src/main/java/de/ids_mannheim/korap/query/parse/cosmas/c2ps_optCase.java
@@ -1,8 +1,6 @@
 package de.ids_mannheim.korap.query.parse.cosmas;
 
-import java.io.*;
 import org.antlr.runtime.*;
-import org.antlr.runtime.debug.DebugEventSocketProxy;
 import org.antlr.runtime.tree.*;
 
 // parses Case Options.
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 8e41b38..c8cc39f 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
@@ -352,7 +352,7 @@
                         "TPEND");
 
                 LinkedHashMap<String, Object> submatchgroup = 
-                        KoralObjectGenerator.makeReference(classCounter);
+                        KoralObjectGenerator.makeReference(classCounter+128);
                 ArrayList<Object> submatchOperands = new ArrayList<Object>();
                 submatchgroup.put("operands", submatchOperands);
                 putIntoSuperObject(submatchgroup);
@@ -397,7 +397,7 @@
                         // constraint applies
                         if (conditionCount > 1) {
                             LinkedHashMap<String, Object> focus = 
-                                    KoralObjectGenerator.makeReference(classCounter - 2);
+                                    KoralObjectGenerator.makeReference(classCounter +128 - 2);
                             ArrayList<Object> focusOperands = new ArrayList<Object>();
                             focus.put("operands", focusOperands);
                             focusOperands.add(matchesGroup);
@@ -415,22 +415,22 @@
             }
 
             private void processOPNHIT(Tree node) {
-                Integer[] classRef = new Integer[] { classCounter + 1,
-                        classCounter + 2 };
+                Integer[] classRef = new Integer[] { classCounter + 128 + 1,
+                        classCounter + 128 + 2 };
                 // classRef.add(classCounter + 1); // yes, do this twice (two
                 // classes)!
                 LinkedHashMap<String, Object> group = 
-                        KoralObjectGenerator.makeReference(classCounter);
+                        KoralObjectGenerator.makeReference(classCounter+128);
                 LinkedHashMap<String, Object> classRefCheck = 
                         KoralObjectGenerator.makeClassRefOp("classRefOp:inversion", classRef,
-                                classCounter);
+                                classCounter+128);
                 ArrayList<Object> operands = new ArrayList<Object>();
                 operands.add(classRefCheck);
                 group.put("operands", operands);
                 classCounter++;
                 // direct child is OPPROX
-                wrapOperandInClass(node.getChild(0), 1, classCounter++); 
-                wrapOperandInClass(node.getChild(0), 2, classCounter++);
+                wrapOperandInClass(node.getChild(0), 1, 128+classCounter++); 
+                wrapOperandInClass(node.getChild(0), 2, 128+classCounter++);
                 objectStack.push(classRefCheck);
                 stackedObjects++;
                 putIntoSuperObject(group, 1);
@@ -457,8 +457,8 @@
             private void processOPIN_OPOV(Tree node) {
                 // Step I: create group
                 String nodeCat = getNodeCat(node);
-                wrapOperandInClass(node, 2, classCounter++);
-                wrapOperandInClass(node, 1, classCounter++);
+                wrapOperandInClass(node, 2, 128+classCounter++);
+                wrapOperandInClass(node, 1, 128+classCounter++);
                 // LinkedHashMap<String, Object> posgroup =
                 // makePosition(null);
                 LinkedHashMap<String, Object> posGroup = KoralObjectGenerator
@@ -484,13 +484,13 @@
                 ArrayList<String> check = 
                         (ArrayList<String>) positionOptions.get("classRefCheck");
                 Integer[] classIn = 
-                        new Integer[] { classCounter - 2, classCounter - 1 };
+                        new Integer[] { classCounter+128-2, classCounter+128-1 };
                 LinkedHashMap<String, Object> topGroup;
                 if (! check.isEmpty()) {
                     // wrap position in a classRefCheck
                     topGroup = 
                             KoralObjectGenerator.makeClassRefCheck(check, classIn,
-                                    classCounter);
+                                    classCounter+128);
                     ((ArrayList<Object>) topGroup.get("operands")).add(posGroup);
                 } else {
                     topGroup = posGroup;
@@ -498,12 +498,12 @@
                 LinkedHashMap<String, Object> focusGroup = null;
                 if ((boolean) positionOptions.get("matchall") == true) {
                     focusGroup = KoralObjectGenerator.makeClassRefOp("classRefOp:delete", 
-                            new Integer[]{classCounter++}, classCounter);
+                            new Integer[]{128+classCounter++}, 128+classCounter);
                     ((ArrayList<Object>) focusGroup.get("operands")).add(topGroup);
                 }
                 else { // match only first argument
                     focusGroup = KoralObjectGenerator.wrapInReference(topGroup,
-                            classCounter-1);
+                            classCounter+128-1);
                     classCounter++;
                 }
                 // wrap in 'merge' operation if grouping option is set
@@ -599,8 +599,10 @@
                         || openNodeCats.get(1).equals("OPEND") 
                         || inOPALL 
                         || openNodeCats.get(1).equals("OPNHIT"))) {
-                    wrapOperandInClass(node, 1, classCounter);
-                    wrapOperandInClass(node, 2, classCounter);
+                    System.err.println(classCounter);
+                    wrapOperandInClass(node, 1, 128+classCounter);
+                    wrapOperandInClass(node, 2, 128+classCounter);
+                    System.err.println(classCounter);
                     // Deactivated, uncomment to wrap sequence in reference.
                     //            group = KoralObjectGenerator.wrapInReference(group,
                     //                    classCounter++);
@@ -1040,7 +1042,7 @@
                     positionGroup.put("exclude", true);
                 ArrayList<Object> posOperands = new ArrayList<Object>();
                 LinkedHashMap<String, Object> classGroup = 
-                        KoralObjectGenerator.makeSpanClass(classCounter++);
+                        KoralObjectGenerator.makeSpanClass(128+classCounter++);
                 classGroup.put("operands", distributedOperands);
                 positionGroup.put("operands", posOperands);
                 LinkedHashMap<String, Object> span = new LinkedHashMap<String, Object>();
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessor.java b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessor.java
index 23958fa..b07d0f9 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessor.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessor.java
@@ -454,8 +454,9 @@
             catch (NumberFormatException e) {
                 String msg = "The specified class reference in the "
                         + "focus/split-Operator is not a number: " + ref;
+                classId = 0;
                 log.error(msg);
-                addError(StatusCodes.UNDEFINED_CLASS_REFERENCE, msg);
+                addError(StatusCodes.INVALID_CLASS_REFERENCE, msg);
             }
             // only allow class id up to 127
             if (classId > 128) {
@@ -464,7 +465,7 @@
                         + "Check for possible conflict with other classes.");
                 classId = 128;
             }
-        }
+        } 
         LinkedHashMap<String, Object> classGroup = 
                 KoralObjectGenerator.makeSpanClass(classId);
         addHighlightClass(classId);
@@ -502,13 +503,13 @@
                     catch (NumberFormatException e) {
                         String err = "The specified class reference in the "
                                 + "shrink/split-Operator is not a number.";
-                        addError(StatusCodes.UNDEFINED_CLASS_REFERENCE, err);
+                        addError(StatusCodes.INVALID_CLASS_REFERENCE, err);
                     }
                 }
             }
         }
         else {
-            classRefs.add(1);
+            classRefs.add(1); // default
         }
         LinkedHashMap<String, Object> referenceGroup = 
                 KoralObjectGenerator.makeReference(classRefs);
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java b/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
index 610c83e..8fdf565 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/util/KoralObjectGenerator.java
@@ -114,12 +114,7 @@
                     + "your query for later reference to a part of the query. The class id is "
                     + classId);
         }
-        group.put("class", classId);
         group.put("classOut", classId);
-        qp.addMessage(
-                StatusCodes.DEPRECATED_QUERY_ELEMENT,
-                "Deprecated 2014-10-07: 'class' only to be supported until 3 months from deprecation date. "
-                        + "Classes are now defined using the 'classOut' attribute.");
         group.put("operands", new ArrayList<Object>());
         return group;
     }
@@ -132,11 +127,6 @@
         group.put("classRefCheck", check);
         group.put("classIn", Arrays.asList(classIn));
         group.put("classOut", classOut);
-        group.put("class", classOut);
-        qp.addMessage(
-                StatusCodes.DEPRECATED_QUERY_ELEMENT,
-                "Deprecated 2014-10-07: 'class' only to be supported until 3 months from deprecation date. "
-                        + "Classes are now defined using the 'classOut' attribute.");
         group.put("operands", new ArrayList<Object>());
         return group;
     }
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/util/StatusCodes.java b/src/main/java/de/ids_mannheim/korap/query/serialize/util/StatusCodes.java
index 6416b0e..993ba38 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/util/StatusCodes.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/util/StatusCodes.java
@@ -4,7 +4,7 @@
 	public final static int NO_QUERY = 301;
 	public final static int MALFORMED_QUERY = 302;
 	public final static int DEPRECATED_QUERY_ELEMENT = 303;
-	public final static int UNDEFINED_CLASS_REFERENCE = 304;
+	public final static int INVALID_CLASS_REFERENCE = 304;
 	public final static int INCOMPATIBLE_OPERATOR_AND_OPERAND = 305;
 	public final static int UNKNOWN_QUERY_ELEMENT = 306;
 	public final static int UNKNOWN_QL = 307;
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
index 4c04ed9..82020db 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/Cosmas2QueryProcessorTest.java
@@ -407,8 +407,8 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("korap:token",			res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("Sonne",				res.at("/query/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mond",				res.at("/query/operands/1/operands/0/wrap/key").asText());
@@ -430,8 +430,8 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("korap:token",			res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("Sonne",				res.at("/query/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mond",				res.at("/query/operands/1/operands/0/wrap/key").asText());
@@ -480,16 +480,16 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("Sonne",				res.at("/query/operands/0/operands/0/wrap/key").asText());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("operation:sequence",	res.at("/query/operands/1/operands/0/operation").asText());
         assertEquals("w",					res.at("/query/operands/1/operands/0/distances/0/key").asText());
         assertEquals(1,						res.at("/query/operands/1/operands/0/distances/0/boundary/min").asInt());
         assertEquals(7,						res.at("/query/operands/1/operands/0/distances/0/boundary/max").asInt());
-        assertEquals(2,  					res.at("/query/operands/1/operands/0/operands/0/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/1/operands/0/operands/0/classOut").asInt());
         assertEquals("Mond",				res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
-        assertEquals(2,  					res.at("/query/operands/1/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/1/operands/0/operands/1/classOut").asInt());
         assertEquals("Sterne",				res.at("/query/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
 
         query = "Sonne /+w1:4 Mond /-w1:7 Sterne";
@@ -511,16 +511,16 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/1/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/1/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("Sonne",				res.at("/query/operands/1/operands/0/wrap/key").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("operation:sequence",	res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals("w",					res.at("/query/operands/0/operands/0/distances/0/key").asText());
         assertEquals(0,						res.at("/query/operands/0/operands/0/distances/0/boundary/min").asInt());
         assertEquals(2,						res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
-        assertEquals(2,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
         assertEquals("Mond",				res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
-        assertEquals(2,  					res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("Sterne",				res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
 
     }
@@ -532,24 +532,24 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(2,  							res.at("/query/classRef/0").asInt());
+        assertEquals(130,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operation").asText());
         assertEquals("classRefCheck:includes",		res.at("/query/operands/0/classRefCheck/0").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals(true,							res.at("/query/operands/0/operands/0/frames/0").isMissingNode());
-        assertEquals(1,  							res.at("/query/operands/0/classIn/0").asInt());
-        assertEquals(2,  							res.at("/query/operands/0/classIn/1").asInt());
-        assertEquals(3,                             res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/classIn/0").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/classIn/1").asInt());
+        assertEquals(131,                           res.at("/query/operands/0/classOut").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/0/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
         assertEquals("korap:span",					res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("s",							res.at("/query/operands/0/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",					res.at("/query/operands/0/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("wegen",						res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
 
@@ -558,7 +558,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",             res.at("/query/@type").asText());
         assertEquals("operation:focus",             res.at("/query/operation").asText());
-        assertEquals(2,                             res.at("/query/classRef/0").asInt());
+        assertEquals(130,                           res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",                 res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",          res.at("/query/operands/0/operation").asText());
         assertEquals("frames:startsWith",           res.at("/query/operands/0/frames/0").asText());
@@ -566,12 +566,12 @@
         assertEquals(true,                          res.at("/query/operands/0/frames/2").isMissingNode());
         assertEquals("korap:group",                 res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",             res.at("/query/operands/0/operands/0/operation").asText());
-        assertEquals(1,                             res.at("/query/operands/0/operands/0/classOut").asInt());
+        assertEquals(129,                           res.at("/query/operands/0/operands/0/classOut").asInt());
         assertEquals("korap:span",                  res.at("/query/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("s",                           res.at("/query/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",                 res.at("/query/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",             res.at("/query/operands/0/operands/1/operation").asText());
-        assertEquals(2,                             res.at("/query/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,                           res.at("/query/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",                 res.at("/query/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("wegen",                       res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
 
@@ -615,7 +615,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("operation:class",             res.at("/query/operation").asText());
         assertEquals("classRefOp:delete",           res.at("/query/classRefOp").asText());
-        assertEquals(3,                             res.at("/query/classIn/0").asInt());
+        assertEquals(131,                           res.at("/query/classIn/0").asInt());
         assertEquals("classRefCheck:equals",		res.at("/query/operands/0/classRefCheck/0").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/operands/0/frames/0").asText());
         assertEquals(true,							res.at("/query/operands/0/operands/0/exclude").asBoolean());
@@ -626,7 +626,7 @@
         assertEquals("operation:merge",             res.at("/query/operation").asText());
         assertEquals("operation:class",             res.at("/query/operands/0/operation").asText());
         assertEquals("classRefOp:delete",           res.at("/query/operands/0/classRefOp").asText());
-        assertEquals(3,                             res.at("/query/operands/0/classIn/0").asInt());
+        assertEquals(131,                           res.at("/query/operands/0/classIn/0").asInt());
         assertEquals("classRefCheck:equals",        res.at("/query/operands/0/operands/0/classRefCheck/0").asText());
         assertEquals("frames:matches",              res.at("/query/operands/0/operands/0/operands/0/frames/0").asText());
         assertEquals(true,                          res.at("/query/operands/0/operands/0/operands/0/exclude").asBoolean());
@@ -639,25 +639,25 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(2,  							res.at("/query/classRef/0").asInt());
+        assertEquals(130,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operation").asText());
         assertEquals("classRefCheck:intersects",	res.at("/query/operands/0/classRefCheck/0").asText());
         //		assertEquals("classRefOp:merge",            res.at("/query/operands/0/classRefOp").asText());
-        assertEquals(3,                             res.at("/query/operands/0/classOut").asInt());
-        assertEquals(1,                             res.at("/query/operands/0/classIn/0").asInt());
-        assertEquals(2,                             res.at("/query/operands/0/classIn/1").asInt());
+        assertEquals(131,                           res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,                           res.at("/query/operands/0/classIn/0").asInt());
+        assertEquals(130,                           res.at("/query/operands/0/classIn/1").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals(true,							res.at("/query/operands/0/operands/0/frames/0").isMissingNode());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/0/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
         assertEquals("korap:span",					res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("s",							res.at("/query/operands/0/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",					res.at("/query/operands/0/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("wegen",						res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
 
@@ -722,7 +722,7 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("korap:reference",		res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:focus",		res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals(0,						res.at("/query/operands/0/operands/0/spanRef/0").asInt());
@@ -738,7 +738,7 @@
         assertEquals("der",					res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mann",				res.at("/query/operands/0/operands/0/operands/0/operands/1/wrap/key").asText());
         assertEquals("operation:class",		res.at("/query/operands/1/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("korap:token",			res.at("/query/operands/1/operands/0/@type").asText());
         assertEquals("kommt",				res.at("/query/operands/1/operands/0/wrap/key").asText());
 
@@ -754,7 +754,7 @@
         assertEquals(true,					res.at("/query/inOrder").asBoolean());
         assertEquals("korap:group",			res.at("/query/operands/1/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/1/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/1/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/1/classOut").asInt());
         assertEquals("korap:reference",		res.at("/query/operands/1/operands/0/@type").asText());
         assertEquals("operation:focus",		res.at("/query/operands/1/operands/0/operation").asText());
         assertEquals(0,						res.at("/query/operands/1/operands/0/spanRef/0").asInt());
@@ -770,7 +770,7 @@
         assertEquals("der",					res.at("/query/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mann",				res.at("/query/operands/1/operands/0/operands/0/operands/1/wrap/key").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("korap:token",			res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("kommt",				res.at("/query/operands/0/operands/0/wrap/key").asText());
 
@@ -906,13 +906,13 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",		res.at("/query/@type").asText());
         assertEquals("operation:focus",		res.at("/query/operation").asText());
-        assertEquals(1,  					res.at("/query/classRef/0").asInt());
+        assertEquals(129,  					res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
         assertEquals("classRefOp:inversion",res.at("/query/operands/0/classRefOp").asText());
-        assertEquals(2,  					res.at("/query/operands/0/classIn/0").asInt());
-        assertEquals(3,  					res.at("/query/operands/0/classIn/1").asInt());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/classIn/0").asInt());
+        assertEquals(131,  					res.at("/query/operands/0/classIn/1").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:sequence",	res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals("korap:distance",		res.at("/query/operands/0/operands/0/distances/0/@type").asText());
@@ -921,8 +921,8 @@
         assertEquals(10,					res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operands/0/operands/0/operation").asText());
-        assertEquals(2,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
-        assertEquals(3,  					res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+        assertEquals(131,  					res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",			res.at("/query/operands/0/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("gehen",				res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
         assertEquals("voran",				res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
@@ -932,13 +932,13 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",		res.at("/query/@type").asText());
         assertEquals("operation:focus",		res.at("/query/operation").asText());
-        assertEquals(1,  					res.at("/query/classRef/0").asInt());
+        assertEquals(129,  					res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operation").asText());
         assertEquals("classRefOp:inversion",res.at("/query/operands/0/classRefOp").asText());
-        assertEquals(2,  					res.at("/query/operands/0/classIn/0").asInt());
-        assertEquals(3,  					res.at("/query/operands/0/classIn/1").asInt());
-        assertEquals(1,  					res.at("/query/operands/0/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/classIn/0").asInt());
+        assertEquals(131,  					res.at("/query/operands/0/classIn/1").asInt());
+        assertEquals(129,  					res.at("/query/operands/0/classOut").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/operands/0/@type").asText());
         assertEquals("operation:sequence",	res.at("/query/operands/0/operands/0/operation").asText());
         assertEquals("korap:distance",		res.at("/query/operands/0/operands/0/distances/0/@type").asText());
@@ -947,14 +947,14 @@
         assertEquals(10,					res.at("/query/operands/0/operands/0/distances/0/boundary/max").asInt());
         assertEquals("korap:group",			res.at("/query/operands/0/operands/0/operands/0/@type").asText());
         assertEquals("operation:class",		res.at("/query/operands/0/operands/0/operands/0/operation").asText());
-        assertEquals(2,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
+        assertEquals(130,  					res.at("/query/operands/0/operands/0/operands/0/classOut").asInt());
         assertEquals("gehen",				res.at("/query/operands/0/operands/0/operands/0/operands/0/wrap/key").asText());
-        assertEquals(3,                     res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(131,                     res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         //        assertEquals("classRefOp:merge",    res.at("/query/operands/0/operands/0/operands/1/classRefOp").asText());
         assertEquals("operation:sequence",	res.at("/query/operands/0/operands/0/operands/1/operands/0/operation").asText());
-        assertEquals(4,  					res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/classOut").asInt());
+        assertEquals(132,  					res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/classOut").asInt());
         assertEquals("voran",				res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
-        assertEquals(4, 					res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/classOut").asInt());
+        assertEquals(132, 					res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/classOut").asInt());
         assertEquals("Beispiel",			res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/operands/0/wrap/key").asText());
 
     }
@@ -966,13 +966,13 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:startsWith",			res.at("/query/operands/0/frames/0").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/1/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",					res.at("/query/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
         assertEquals("korap:span",					res.at("/query/operands/0/operands/0/@type").asText());
@@ -983,7 +983,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/frames/0").asText());
@@ -999,7 +999,7 @@
         assertEquals(1,								res.at("/query/operands/0/operands/1/spanRef/1").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operands/0/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/1/operands/0/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/1/operands/0/classOut").asInt());
         assertEquals("operation:sequence",			res.at("/query/operands/0/operands/1/operands/0/operands/0/operation").asText());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mann",						res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/wrap/key").asText());
@@ -1009,7 +1009,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/frames/0").asText());
@@ -1021,7 +1021,7 @@
         assertEquals("s",							res.at("/query/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("operation:sequence",			res.at("/query/operands/0/operands/0/operands/1/operands/0/operation").asText());
         assertEquals("der",							res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mann",						res.at("/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/key").asText());
@@ -1034,7 +1034,7 @@
         assertEquals("p",							res.at("/query/operands/0/operands/1/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
         assertEquals("operation:sequence",			res.at("/query/operands/0/operands/1/operands/1/operands/0/operation").asText());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key").asText());
         assertEquals("Mann",						res.at("/query/operands/0/operands/1/operands/1/operands/0/operands/1/wrap/key").asText());
@@ -1048,13 +1048,13 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:startsWith",			res.at("/query/operands/0/frames/0").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/1/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/1/classOut").asInt());
         assertEquals("korap:token",					res.at("/query/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/0/wrap/key").asText());
         assertEquals("korap:span",					res.at("/query/operands/0/operands/0/@type").asText());
@@ -1065,7 +1065,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/frames/0").asText());
@@ -1076,7 +1076,7 @@
         assertEquals("s",							res.at("/query/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("der",							res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operands/1/operation").asText());
@@ -1086,7 +1086,7 @@
         assertEquals("p",							res.at("/query/operands/0/operands/1/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/1/operands/1/classOut").asInt());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/1/operands/0/wrap/key").asText());
 
         query = "der:sa,-pa,+te";
@@ -1094,7 +1094,7 @@
         res = mapper.readTree(qs.toJSON());
         assertEquals("korap:reference",				res.at("/query/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operation").asText());
-        assertEquals(1,  							res.at("/query/classRef/0").asInt());
+        assertEquals(129,  							res.at("/query/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operation").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/frames/0").asText());
@@ -1105,11 +1105,11 @@
         assertEquals("s",							res.at("/query/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(1,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(129,  							res.at("/query/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("der",							res.at("/query/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
         assertEquals("korap:reference",				res.at("/query/operands/0/operands/1/@type").asText());
         assertEquals("operation:focus",				res.at("/query/operands/0/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/1/classRef/0").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/1/classRef/0").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/0/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operands/1/operands/0/operation").asText());
         assertEquals("frames:matches",				res.at("/query/operands/0/operands/1/operands/0/frames/0").asText());
@@ -1121,7 +1121,7 @@
         assertEquals("p",							res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/0/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operation").asText());
-        assertEquals(2,  							res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
+        assertEquals(130,  							res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/classOut").asInt());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/0/operands/0/operands/1/operands/0/wrap/key").asText());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/0/operands/1/@type").asText());
         assertEquals("operation:position",			res.at("/query/operands/0/operands/1/operands/0/operands/1/operation").asText());
@@ -1138,7 +1138,7 @@
         assertEquals(1,								res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/spanRef/1").asInt());
         assertEquals("korap:group",					res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/@type").asText());
         assertEquals("operation:class",				res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operation").asText());
-        assertEquals(3,  							res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/classOut").asInt());
+        assertEquals(131,  							res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/classOut").asInt());
         assertEquals("der",							res.at("/query/operands/0/operands/1/operands/0/operands/1/operands/1/operands/0/operands/0/wrap/key").asText());
     }
 
@@ -1165,4 +1165,4 @@
         assertEquals(StatusCodes.MALFORMED_QUERY,          res.at("/errors/0/0").asInt());
         assertTrue(res.at("/errors/0/1").asText().startsWith("Early closing parenthesis"));
     }
-}
\ No newline at end of file
+}
diff --git a/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
index 8344d2c..f9cdf16 100644
--- a/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/serialize/PoliqarpPlusQueryProcessorTest.java
@@ -958,6 +958,19 @@
         assertEquals("Mann", 				res.at("/query/operands/0/operands/0/wrap/key").asText());
         assertEquals("Frau", 				res.at("/query/operands/0/operands/1/wrap/key").asText());
 
+        query = "{[base=Mann]}{[orth=Frau]}";
+        qs.setQuery(query, "poliqarpplus");
+        res = mapper.readTree(qs.toJSON());
+        assertEquals("korap:group",         res.at("/query/@type").asText());
+        assertEquals("operation:sequence",  res.at("/query/operation").asText());
+        assertEquals("operation:class",     res.at("/query/operands/0/operation").asText());
+        assertEquals(1,                     res.at("/query/operands/0/classOut").asInt());
+        assertEquals("operation:class",     res.at("/query/operands/1/operation").asText());
+        assertEquals(1,                     res.at("/query/operands/1/classOut").asInt());
+        assertEquals(true,                  res.at("/query/classIn").isMissingNode());
+        assertEquals("Mann",                res.at("/query/operands/0/operands/0/wrap/key").asText());
+        assertEquals("Frau",                res.at("/query/operands/1/operands/0/wrap/key").asText());
+        
         query = "[p=NN]{[base=Mann][orth=Frau]}";
         qs.setQuery(query, "poliqarpplus");
         res = mapper.readTree(qs.toJSON());