diff --git a/src/main/java/de/ids_mannheim/korap/Krill.java b/src/main/java/de/ids_mannheim/korap/Krill.java
index 964c10c..0531c63 100644
--- a/src/main/java/de/ids_mannheim/korap/Krill.java
+++ b/src/main/java/de/ids_mannheim/korap/Krill.java
@@ -330,55 +330,4 @@
     public SpanQuery getSpanQuery () {
         return this.spanQuery;
     };
-
-
-    /**
-     * Set the SpanQuery by means of a {@link SpanQueryWrapper} object
-     * (i.e. the internal correspandence to KoralQuery's query
-     * object).
-     * 
-     * <strong>Warning</strong>: SpanQueries may be lazy deserialized
-     * in future versions of Krill, rendering this API obsolete.
-     * 
-     * @param query
-     *            The {@link SpanQueryWrapper} to unwrap
-     *            the {@link SpanQuery} object.
-     * @return The {@link Krill} object for chaining.
-     */
-    @Deprecated
-    public Krill setSpanQuery (SpanQueryWrapper sqwi) {
-        try {
-            this.spanQuery = sqwi.toQuery();
-        }
-        catch (QueryException q) {
-            this.addError(q.getErrorCode(), q.getMessage());
-        };
-        return this;
-    };
-
-
-    /**
-     * Set the {@link SpanQuery} object
-     * (i.e. the internal correspandence to KoralQuery's query
-     * object).
-     * 
-     * <strong>Warning</strong>: SpanQueries may be lazy deserialized
-     * in future versions of Krill, rendering this API obsolete.
-     * 
-     * @param query
-     *            The {@link SpanQuery} object.
-     * @return The {@link Krill} object for chaining.
-     */
-    @Deprecated
-    public Krill setSpanQuery (SpanQuery sq) {
-        this.spanQuery = sq;
-        return this;
-    };
-
-
-    // Requests are out - queries will be mirrored completely
-    @Deprecated
-    public JsonNode getRequest () {
-        return this.request;
-    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/KrillQuery.java b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
index d12e473..fb7ae74 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillQuery.java
@@ -137,6 +137,17 @@
 
 
     /**
+     * The index field associated with
+     * the token stream.
+     */
+    public String getField () {
+        if (field == null)
+            return "tokens";
+        return this.field;
+    };
+
+
+    /**
      * <p>Deserialize JSON-LD query to a {@link SpanQueryWrapper}
      * object.</p>
      * 
