diff --git a/src/test/java/de/ids_mannheim/korap/query/test/AnnisQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/AnnisQueryProcessorTest.java
index 114fc2c..716f9f3 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/AnnisQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/AnnisQueryProcessorTest.java
@@ -1,4 +1,4 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test;
 
 import static org.junit.Assert.*;
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/Cosmas2QueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/Cosmas2QueryProcessorTest.java
index 9db30b9..5b43fd2 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/Cosmas2QueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/Cosmas2QueryProcessorTest.java
@@ -1,4 +1,4 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test;
 
 import static org.junit.Assert.*;
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/CqlQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/CqlQueryProcessorTest.java
index 5af4b60..1448d54 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/CqlQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/CqlQueryProcessorTest.java
@@ -1,4 +1,4 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test;
 
 import static org.junit.Assert.assertEquals;
 
@@ -10,6 +10,8 @@
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
+import de.ids_mannheim.korap.query.serialize.CqlQueryProcessor;
+
 public class CqlQueryProcessorTest {
 
     String query;
@@ -17,7 +19,7 @@
     ObjectMapper mapper = new ObjectMapper();
 
     private List<Object> getError(CqlQueryProcessor processor) {
-        List<Object> errors = (List<Object>) processor.requestMap.get("errors");
+        List<Object> errors = (List<Object>) processor.getRequestMap().get("errors");
         return (List<Object>) errors.get(0);
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/EmptyResultsTest.java b/src/test/java/de/ids_mannheim/korap/query/test/EmptyResultsTest.java
index 264ca67..43845b4 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/EmptyResultsTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/EmptyResultsTest.java
@@ -1,7 +1,10 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
+import de.ids_mannheim.korap.query.serialize.QuerySerializer;
+
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryDuplicateTest.java b/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryDuplicateTest.java
index f7c4dd1..1623c3e 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryDuplicateTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryDuplicateTest.java
@@ -1,7 +1,10 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test.collection;
 
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
+import de.ids_mannheim.korap.query.serialize.QuerySerializer;
+
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryProcessorTest.java
index 0e91058..a88278f 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/collection/CollectionQueryProcessorTest.java
@@ -1,8 +1,12 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test.collection;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
+
+import de.ids_mannheim.korap.query.serialize.QuerySerializer;
+import de.ids_mannheim.korap.query.serialize.QueryUtils;
+
 import org.junit.Test;
 
 import java.io.IOException;
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLComplexTest.java b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLComplexTest.java
index 990f611..7a0ae47 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLComplexTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLComplexTest.java
@@ -1,4 +1,4 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test.fcsql;
 
 import static org.junit.Assert.assertEquals;
 
@@ -9,6 +9,8 @@
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 
+import de.ids_mannheim.korap.query.serialize.FCSQLQueryProcessor;
+
 /**
  * @author margaretha
  * 
diff --git a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
index 8fa70df..552867d 100644
--- a/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
+++ b/src/test/java/de/ids_mannheim/korap/query/test/fcsql/FCSQLQueryProcessorTest.java
@@ -1,4 +1,4 @@
-package de.ids_mannheim.korap.query.serialize;
+package de.ids_mannheim.korap.query.test.fcsql;
 
 import static org.junit.Assert.assertEquals;
 
@@ -11,6 +11,9 @@
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
+import de.ids_mannheim.korap.query.serialize.FCSQLQueryProcessor;
+import de.ids_mannheim.korap.query.serialize.QuerySerializer;
+
 /**
  * @author margaretha
  * 
@@ -41,7 +44,7 @@
     }
 
     public static List<Object> getError(FCSQLQueryProcessor processor) {
-        List<Object> errors = (List<Object>) processor.requestMap.get("errors");
+        List<Object> errors = (List<Object>) processor.getRequestMap().get("errors");
         return (List<Object>) errors.get(0);
     }
 
