resource service tests
diff --git a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
index 4744e07..a559415 100644
--- a/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
+++ b/src/main/java/de/ids_mannheim/korap/utils/KoralCollectionQueryBuilder.java
@@ -6,6 +6,7 @@
 import de.ids_mannheim.korap.query.serialize.CollectionQueryProcessor;
 import edu.emory.mathcs.backport.java.util.Arrays;
 
+import java.io.IOError;
 import java.util.Map;
 
 /**
@@ -48,9 +49,14 @@
      * @param value
      * @return
      */
-    public KoralCollectionQueryBuilder fieldValue (String field, String op,
+    public KoralCollectionQueryBuilder with (String field, String op,
             String value) {
-        this.builder.append(field + op + value);
+        //String end = this.builder.substring(this.builder.length() - 4,
+        //        this.builder.length() - 1);
+        //if (this.builder.length() != 0
+        //        && (!end.contains("&") | !end.contains("|")))
+        //    throw new RuntimeException("no join operator given!");
+        this.with(field + op + value);
         return this;
     }
 
@@ -92,10 +98,7 @@
     }
 
 
-    public Object rebaseCollection (JsonNode node) {
-        if (node != null)
-            return mergeWith(node);
-
+    public Object rebaseCollection () {
         if (this.builder.length() == 0 && this.base == null)
             return null;
 
@@ -110,15 +113,8 @@
         if (this.base != null) {
             // check that collection non empty
             JsonNode tmp = this.base.deepCopy();
-            if (request != null) {
-                JsonNode tobase = request.at("/collection");
-                request = tmp;
-                JsonNode result = JsonBuilder.buildDocGroup(
-                        this.mergeOperator != null ? this.mergeOperator
-                                .toLowerCase() : "and", request
-                                .at("/collection"), tobase);
-                ((ObjectNode) request).put("collection", result);
-            }
+            if (request != null)
+                request = mergeWith(request);
             else
                 request = tmp;
         }
@@ -171,12 +167,7 @@
 
 
     public String toJSON () {
-        return JsonUtils.toJSON(rebaseCollection(null));
-    }
-
-
-    public String mergeToJSON (JsonNode node) {
-        return JsonUtils.toJSON(rebaseCollection(node));
+        return JsonUtils.toJSON(rebaseCollection());
     }
 
 
@@ -200,6 +191,8 @@
 
 
         public static ObjectNode buildDocGroup (String op, JsonNode ... groups) {
+            System.out.println("GROUPS " + Arrays.asList(groups));
+
             ObjectNode node = JsonUtils.createObjectNode();
             node.put("@type", "koral:docGroup");
             node.put("operation", "operation:" + op);
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java b/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
index ecb1133..084a686 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/CollectionLoader.java
@@ -39,7 +39,7 @@
         c1.setDescription("Goethe-Werke in Weimar (seit 1775)");
 
         bui = new KoralCollectionQueryBuilder();
-        bui.with("textType = Aphorismus");
+        bui.with("textType=Aphorismus");
 
         VirtualCollection c2 = new VirtualCollection();
         c2.setName("Aphorismen");
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
index 0c54bd8..dd29b09 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/full/ResourceService.java
@@ -312,8 +312,6 @@
         meta.addEntry("cutOff", cutoff);
 
         ss.setMeta(meta.raw());
-        //fixme: parsing should be done only in search functions!
-        //String query = this.processor.processQuery(ss.toJSON(), user);
         return Response.ok(ss.toJSON()).build();
     }
 
@@ -367,6 +365,7 @@
         KoralCollectionQueryBuilder cquery = new KoralCollectionQueryBuilder();
         cquery.setBaseQuery(ss.toJSON());
 
+
         String query = "";
         KustvaktResource resource;
         try {
@@ -387,10 +386,11 @@
 
         if (resource != null) {
             if (resource instanceof VirtualCollection)
-                query = cquery.and().mergeToJSON(resource.getData());
+                query = JsonUtils.toJSON(cquery.and().mergeWith(
+                        resource.getData()));
             else if (resource instanceof Corpus) {
-                cquery.and().with(
-                        Attributes.CORPUS_SIGLE + resource.getPersistentID());
+                cquery.and().with(Attributes.CORPUS_SIGLE, "=",
+                        resource.getPersistentID());
                 query = cquery.toJSON();
             }
         }
@@ -464,7 +464,6 @@
         serializer.setMeta(meta.raw());
 
         String query = this.processor.processQuery(serializer.toJSON(), user);
-        //String query = serializer.toJSON();
 
         jlog.info("the serialized query {}", query);
 
@@ -484,7 +483,7 @@
             }
         }
         else
-            result = searchKrill.search(serializer.toJSON());
+            result = searchKrill.search(query);
         KustvaktLogger.QUERY_LOGGER.trace("The result set: {}", result);
         return Response.ok(result).build();
     }
@@ -503,7 +502,7 @@
      * @param locale
      * @return
      */
-    //fixme: does not use policyrewrite!
+    // todo: remove raw
     @GET
     @Path("/{type}/{id}/search")
     public Response searchbyName (@Context SecurityContext securityContext,
@@ -533,7 +532,6 @@
                 QuerySerializer s = new QuerySerializer();
                 s.setQuery(query, ql, v);
 
-                // fixme: be replaced by public collection rewrite
                 KoralCollectionQueryBuilder builder = new KoralCollectionQueryBuilder();
 
                 KustvaktResource resource;
@@ -565,10 +563,6 @@
                 s.setMeta(meta.raw());
 
                 query = s.toJSON();
-                //                PolicyParser parser = new PolicyParser(user);
-                //                query = parser.parse(s.toJSON());
-                //todo: 1
-
             }
             String result;
             try {