Lots of cleanups
diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndex.java b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
index a51eabd..a529a73 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
@@ -1082,7 +1082,7 @@
 	int i                       = 0,
   	    startIndex              = kr.getStartIndex(),
 	    count                   = kr.getItemsPerPage(),
-	    hits                    = kr.itemsPerPage() + startIndex,
+	    hits                    = kr.getItemsPerPage() + startIndex,
 	    limit                   = ks.getLimit(),
 	    itemsPerResourceCounter = 0;
 	boolean cutoff              = ks.doCutOff();
@@ -1099,7 +1099,7 @@
 	};
 
 	// Collect matches from atomic readers
-	ArrayList<KorapMatch> atomicMatches = new ArrayList<KorapMatch>(kr.itemsPerPage());
+	ArrayList<KorapMatch> atomicMatches = new ArrayList<KorapMatch>(kr.getItemsPerPage());
 
 	// Start time out thread
 	TimeOutThread tthread = new TimeOutThread();
@@ -1261,7 +1261,7 @@
 	    if (itemsPerResource > 0)
 		kr.setItemsPerResource(itemsPerResource);
 
-	    kr.setTotalResults(cutoff ? -1 : i);
+	    kr.setTotalResults(cutoff ? (long) -1 : (long) i);
 	}
 	catch (IOException e) {
 	    kr.addError(
diff --git a/src/main/java/de/ids_mannheim/korap/KorapMatch.java b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
index 98811db..74a62bc 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapMatch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
@@ -1339,7 +1339,7 @@
     
 
     // Identical to KorapResult!
-    public String toJSON () {
+    public String toJsonString () {
 	ObjectNode json = (ObjectNode) mapper.valueToTree(this);
 
 	// Match was no match
@@ -1347,7 +1347,7 @@
 	    return "{}";
 
 	if (this.context != null)
-	    json.put("context", this.getContext().toJSON());
+	    json.put("context", this.getContext().toJsonNode());
 
 	if (this.version != null)
 	    json.put("version", this.getVersion());
diff --git a/src/main/java/de/ids_mannheim/korap/KorapQuery.java b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
index d7962e8..96bd4ac 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapQuery.java
@@ -100,7 +100,7 @@
 	};
     };
 
-    public SpanQueryWrapper fromJSON (String jsonString) throws QueryException {
+    public SpanQueryWrapper fromJson (String jsonString) throws QueryException {
 	JsonNode json;
 	try {
 	    json = this.json.readValue(jsonString, JsonNode.class);
@@ -114,7 +114,7 @@
 	if (!json.has("@type") && json.has("query"))
 	    json = json.get("query");
 
-	return this.fromJSON(json);
+	return this.fromJson(json);
     };
 
     // http://fasterxml.github.io/jackson-databind/javadoc/2.2.0/com/fasterxml/jackson/databind/JsonNode.html
@@ -122,7 +122,7 @@
     // TODO: Use the shortcuts implemented in this class instead of the wrapper constructors
     // TODO: Check for isArray()
     // TODO: Rename this span context!
-    public SpanQueryWrapper fromJSON (JsonNode json) throws QueryException {
+    public SpanQueryWrapper fromJson (JsonNode json) throws QueryException {
 
 	int number = 0;
 
@@ -161,7 +161,7 @@
 	    case "operation:or":
 		SpanAlterQueryWrapper ssaq = new SpanAlterQueryWrapper(this.field);
 		for (JsonNode operand : operands) {
-		    ssaq.or(this.fromJSON(operand));
+		    ssaq.or(this.fromJson(operand));
 		};
 		return ssaq;
 
@@ -226,8 +226,8 @@
 		    );
 
 		return new SpanWithinQueryWrapper(
-		    this.fromJSON(operands.get(0)),
-		    this.fromJSON(operands.get(1)),
+		    this.fromJson(operands.get(0)),
+		    this.fromJson(operands.get(1)),
 		    flag
 		);
 
@@ -254,14 +254,14 @@
 		};
 
 		return new SpanMatchModifyQueryWrapper(
-		    this.fromJSON(operands.get(0)), number
+		    this.fromJson(operands.get(0)), number
                 );
 
 	    case "operation:sequence":
 
 		// Sequence with only one operand
 		if (operands.size() == 1)
-		    return this.fromJSON(operands.get(0));
+		    return this.fromJson(operands.get(0));
 
 		SpanSequenceQueryWrapper sseqqw = this.seq();
 
@@ -364,7 +364,7 @@
 
 		// Add segments to sequence
 		for (JsonNode operand : operands) {
-		    sseqqw.append(this.fromJSON(operand));
+		    sseqqw.append(this.fromJson(operand));
 		};
 
 		// inOrder was set to false without a distance constraint
@@ -413,7 +413,7 @@
                         );
 		    };
 
-		    SpanQueryWrapper sqw = this.fromJSON(operands.get(0));
+		    SpanQueryWrapper sqw = this.fromJson(operands.get(0));
 
 		    // Problematic
 		    if (sqw.maybeExtension())
@@ -469,7 +469,7 @@
 		if (min > max)
 		    max = max;
 
-		SpanQueryWrapper sqw = this.fromJSON(operands.get(0));
+		SpanQueryWrapper sqw = this.fromJson(operands.get(0));
 
 		if (sqw.maybeExtension())
 		    return sqw.setMin(min).setMax(max);
@@ -530,7 +530,7 @@
 		log.trace("Wrap class reference {}", number);
 
 	    return new SpanMatchModifyQueryWrapper(
-	        this.fromJSON(operands.get(0)), number
+	        this.fromJson(operands.get(0)), number
 	    );
 
 	case "korap:token":
@@ -539,17 +539,17 @@
 	    if (!json.has("wrap"))
 		return new SpanRepetitionQueryWrapper();
 
-	    return this._segFromJSON(json.get("wrap"));
+	    return this._segFromJson(json.get("wrap"));
 
 	case "korap:span":
-	    return this._termFromJSON(json);
+	    return this._termFromJson(json);
 	};
 	throw new QueryException(713, "Query type is not supported");
     };
 
 
 
-    private SpanQueryWrapper _segFromJSON (JsonNode json) throws QueryException {
+    private SpanQueryWrapper _segFromJson (JsonNode json) throws QueryException {
 
 	if (!json.has("@type"))
 	    throw new QueryException(701, "JSON-LD group has no @type attribute");
@@ -571,11 +571,11 @@
 		if (DEBUG)
 		    log.trace("Term is negated");
 		SpanSegmentQueryWrapper ssqw =
-		    (SpanSegmentQueryWrapper) this._termFromJSON(json);
+		    (SpanSegmentQueryWrapper) this._termFromJson(json);
 		ssqw.makeNegative();
 		return this.seg().without(ssqw);
 	    case "match:eq":
-		return this._termFromJSON(json);
+		return this._termFromJson(json);
 	    };
 
 	    throw new QueryException(741, "Match relation unknown");
@@ -597,7 +597,7 @@
 	    case "relation:and":
 
 		for (JsonNode operand : operands) {
-		    SpanQueryWrapper part = this._segFromJSON(operand);
+		    SpanQueryWrapper part = this._segFromJson(operand);
 		    if (part instanceof SpanAlterQueryWrapper) {
 			ssegqw.with((SpanAlterQueryWrapper) part);			
 		    }
@@ -619,7 +619,7 @@
 
 		SpanAlterQueryWrapper ssaq = new SpanAlterQueryWrapper(this.field);
 		for (JsonNode operand : operands) {
-		    ssaq.or(this._segFromJSON(operand));
+		    ssaq.or(this._segFromJson(operand));
 		};
 		return ssaq;
 	    };
@@ -628,7 +628,7 @@
     };
 
 
-    private SpanQueryWrapper _termFromJSON (JsonNode json) throws QueryException {
+    private SpanQueryWrapper _termFromJson (JsonNode json) throws QueryException {
 	if (!json.has("key") || json.get("key").asText().length() < 1)
 	    throw new QueryException(740, "Key definition is missing in term or span");
 	    
diff --git a/src/main/java/de/ids_mannheim/korap/KorapResult.java b/src/main/java/de/ids_mannheim/korap/KorapResult.java
index 9ac2aef..6b5516e 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapResult.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapResult.java
@@ -30,23 +30,18 @@
     @JsonIgnore
     public static final short ITEMS_PER_PAGE = 25;
 
-    private int totalResults;
-    private long totalTexts;
+    private int startIndex = 0;
+    private long totalTexts, totalResults;
 
     private String query;
 
     private List<KorapMatch> matches;
 
-    private int startIndex = 0;
 
     private SearchContext context;
 
-    private short itemsPerPage = ITEMS_PER_PAGE;
-    private short itemsPerResource = 0;
-
-    private String benchmarkSearchResults,
-            benchmarkHitCounter;
-    private String error = null;
+    private short itemsPerPage = ITEMS_PER_PAGE,
+	          itemsPerResource = 0;
 
     private JsonNode request;
 
@@ -95,20 +90,10 @@
         return km;
     };
 
-    @Deprecated
-    public int totalResults() {
-        return this.getTotalResults();
-    };
-
     public short getItemsPerPage() {
         return this.itemsPerPage;
     };
 
-    @Deprecated
-    public short itemsPerPage() {
-        return this.itemsPerPage;
-    };
-
     public void setRequest(JsonNode request) {
         this.request = request;
     };
@@ -117,24 +102,6 @@
         return this.request;
     };
 
-    /*
-    @JsonIgnore
-    public void setBenchmarkHitCounter(long t1, long t2) {
-        this.benchmarkHitCounter =
-                (t2 - t1) < 100_000_000 ? (((double) (t2 - t1) * 1e-6) + " ms") :
-                        (((double) (t2 - t1) / 1000000000.0) + " s");
-    };
-
-    public void setBenchmarkHitCounter(String bm) {
-	this.benchmarkHitCounter = bm;
-    };
-
-    public String getBenchmarkHitCounter() {
-        return this.benchmarkHitCounter;
-    };
-
-    */
-
     // Make this working in a KorapResult class
     // that is independent from search and collection
     public KorapResult setTotalTexts (long i) {
@@ -142,11 +109,17 @@
 	return this;
     };
 
+    public KorapResult incrTotalTexts (int i) {
+        this.totalTexts += i;
+	return this;
+    };
+
     public long getTotalTexts() {
         return this.totalTexts;
     };
 
-    public KorapResult setTotalResults (int i) {
+
+    public KorapResult setTotalResults (long i) {
         this.totalResults = i;
 	return this;
     };
@@ -156,7 +129,7 @@
 	return this;
     };
 
-    public int getTotalResults() {
+    public long getTotalResults() {
         return this.totalResults;
     };
 
@@ -189,16 +162,10 @@
         return this.matches;
     };
 
-    @Deprecated
-    public KorapMatch match (int index) {
-        return this.matches.get(index);
-    };
-
     public int getStartIndex () {
         return startIndex;
     };
 
-
     @JsonIgnore
     public KorapResult setContext(SearchContext context) {
         this.context = context;
@@ -211,11 +178,12 @@
         return this.context;
     }
 
-    public JsonNode toJSONnode () {
-	ObjectNode json = (ObjectNode) mapper.valueToTree(super.toJSONnode());
+
+    public JsonNode toJsonNode () {
+	ObjectNode json = (ObjectNode) mapper.valueToTree(super.toJsonNode());
 
 	if (this.context != null)
-	    json.put("context", this.getContext().toJSON());
+	    json.put("context", this.getContext().toJsonNode());
 
 	if (this.itemsPerResource > 0)
 	    json.put("itemsPerResource",
@@ -247,7 +215,7 @@
 
 
     // For Collocation Analysis API
-    public String toTokenListJSON () {
+    public String toTokenListJsonString () {
         ObjectNode json = (ObjectNode) mapper.valueToTree(this);
 
 	ArrayNode array = json.putArray("matches");
diff --git a/src/main/java/de/ids_mannheim/korap/KorapSearch.java b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
index d145856..bc5d205 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapSearch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapSearch.java
@@ -85,7 +85,7 @@
 	    if (this.request.has("query")) {
 		try {
 		    KorapQuery kq = new KorapQuery("tokens");
-		    SpanQueryWrapper qw = kq.fromJSON(this.request.get("query"));
+		    SpanQueryWrapper qw = kq.fromJson(this.request.get("query"));
 
 		    if (qw.isEmpty()) {
 
@@ -160,7 +160,7 @@
 
 		    // Defined contexts
 		    if (meta.has("context"))
-			this.context.fromJSON(meta.get("context"));
+			this.context.fromJson(meta.get("context"));
 
 		    // Defined resource count
 		    if (meta.has("timeout"))
diff --git a/src/main/java/de/ids_mannheim/korap/index/SearchContext.java b/src/main/java/de/ids_mannheim/korap/index/SearchContext.java
index 9074512..37fda27 100644
--- a/src/main/java/de/ids_mannheim/korap/index/SearchContext.java
+++ b/src/main/java/de/ids_mannheim/korap/index/SearchContext.java
@@ -106,7 +106,7 @@
 	    return this.setLength((short) value);
 	};
 
-	public void fromJSON (JsonNode json) {
+	public void fromJson (JsonNode json) {
 	    String type = json.get(0).asText();
 	    if (type.equals("token")) {
 		this.setToken(true);
@@ -119,20 +119,20 @@
     };
 
 
-    public void fromJSON (JsonNode context) {
+    public void fromJson (JsonNode context) {
 	if (context.isContainerNode()) {
 	    if (context.has("left"))
-		this.left.fromJSON(context.get("left"));
+		this.left.fromJson(context.get("left"));
 	    
 	    if (context.has("right"))
-		this.right.fromJSON(context.get("right"));
+		this.right.fromJson(context.get("right"));
 	}
 	else if (context.isValueNode()) {
 	    this.setSpanContext(context.asText());
 	};
     };
 
-    public JsonNode toJSON () {
+    public JsonNode toJsonNode () {
 
 	if (this.isSpanDefined())
 	    return new TextNode(this.spanContext);
diff --git a/src/main/java/de/ids_mannheim/korap/response/KorapResponse.java b/src/main/java/de/ids_mannheim/korap/response/KorapResponse.java
index 40a75aa..46d4028 100644
--- a/src/main/java/de/ids_mannheim/korap/response/KorapResponse.java
+++ b/src/main/java/de/ids_mannheim/korap/response/KorapResponse.java
@@ -16,7 +16,7 @@
  * <blockquote><pre>
  *   KorapResponse km = new KorapResponse();
  *   System.out.println(
- *     km.toJSON()
+ *     km.toJsonString()
  *   );
  * </pre></blockquote>
  *
@@ -26,8 +26,6 @@
 public class KorapResponse extends Notifications {
     ObjectMapper mapper = new ObjectMapper();
 
-    // TODO: Add timeout!!!
-
     private String version, name, node, listener;
     private String benchmark;
     private boolean timeExceeded = false;
@@ -40,17 +38,6 @@
      */
     public KorapResponse () {};
 
-    /**
-     * Get string representation of the backend's version.
-     *
-     * @return String representation of the backend's version
-     */
-    @JsonIgnore
-    public String getVersion () {
-	if (this.version == null)
-	    return null;
-	return this.version;
-    };
 
     /**
      * Set the string representation of the backend's version.
@@ -64,19 +51,18 @@
 	return this;
     };
 
+
     /**
-     * Get string representation of the backend's name.
-     * All nodes in a cluster should have the same backend name.
+     * Get string representation of the backend's version.
      *
-     * @return String representation of the backend's name
+     * @return String representation of the backend's version
      */
     @JsonIgnore
-    public String getName () {
-	if (this.name == null)
-	    return null;
-	return this.name;
+    public String getVersion () {
+	return this.version;
     };
 
+
     /**
      * Set the string representation of the backend's name.
      * All nodes in a cluster should have the same backend name.
@@ -90,17 +76,19 @@
 	return this;
     };
 
+
     /**
-     * Get string representation of the node's name.
-     * Each node in a cluster has a unique name.
+     * Get string representation of the backend's name.
+     * All nodes in a cluster should have the same backend name.
      *
-     * @return String representation of the node's name
+     * @return String representation of the backend's name
      */
     @JsonIgnore
-    public String getNode () {
-	return this.node;
+    public String getName () {
+	return this.name;
     };
 
+
     /**
      * Set the string representation of the node's name.
      * Each node in a cluster has a unique name.
@@ -115,79 +103,154 @@
     };
 
 
+    /**
+     * Get string representation of the node's name.
+     * Each node in a cluster has a unique name.
+     *
+     * @return String representation of the node's name
+     */
     @JsonIgnore
-    public void setTimeExceeded (boolean timeout) {
-	if (timeout)
-	    this.addWarning(682, "Search time exceeded");
-	this.timeExceeded = timeout;
+    public String getNode () {
+	return this.node;
     };
 
 
+    /**
+     * Set to <tt>true</tt> if time is exceeded
+     * based on a timeout.
+     *
+     * <p>
+     * Will add a warning (682) to the output.
+     *
+     * @param timeout Either <tt>true</tt> or <tt>false</tt>, in case the response
+     *        timed out
+     * @return KorapResponse object for chaining
+     */
+    @JsonIgnore
+    public KorapResponse setTimeExceeded (boolean timeout) {
+	if (timeout)
+	    this.addWarning(682, "Response time exceeded");
+	this.timeExceeded = timeout;
+	return this;
+    };
+
+
+    /**
+     * Check if the response time was exceeded.
+     *
+     * @return <tt>true</tt> in case the response had a timeout,
+     *         otherwise <tt>false</tt>
+     */
     @JsonIgnore
     public boolean getTimeExceeded () {
 	return this.timeExceeded;
     };
 
 
+    /**
+     * Set the benchmark as timestamp differences.
+     *
+     * @param ts1 Starting time of the benchmark
+     * @param ts2 Ending time of the benchmark
+     * @return KorapResponse object for chaining
+     */
     @JsonIgnore
-    public KorapResponse setBenchmark (long t1, long t2) {
+    public KorapResponse setBenchmark (long ts1, long ts2) {
         this.benchmark =
-                (t2 - t1) < 100_000_000 ?
+	    (ts2 - ts1) < 100_000_000 ?
 	    // Store as miliseconds
-	    (((double) (t2 - t1) * 1e-6) + " ms") :
+	    (((double) (ts2 - ts1) * 1e-6) + " ms") :
 	    // Store as seconds
-	    (((double) (t2 - t1) / 1000000000.0) + " s");
+	    (((double) (ts2 - ts1) / 1000000000.0) + " s");
 	return this;
     };
 
+
+    /**
+     * Set the benchmark as a string representation.
+     *
+     * @param bm String representation of a benchmark
+     *           (including trailing time unit)
+     * @return KorapResponse for chaining
+     */
     @JsonIgnore
     public KorapResponse setBenchmark (String bm) {
 	this.benchmark = bm;
 	return this;
     };
 
+
+    /**
+     * Get the benchmark time as a string.
+     *
+     * @return String representation of the benchmark
+     *         (including trailing time unit)
+     */
     @JsonIgnore
     public String getBenchmark () {
         return this.benchmark;
     };
 
+
+    /**
+     * Set the listener URI as a String. This is probably the localhost
+     * with an arbitrary port, like
+     *
+     * <p>
+     * <blockquote><pre>
+     *   http://localhost:8080/
+     * </pre></blockquote>
+     *
+     * @param listener String representation of the listener URI
+     * @return KorapResponse object for chaining
+     */
     @JsonIgnore
     public KorapResponse setListener (String listener) {
 	this.listener = listener;
 	return this;
     };
 
+
+    /**
+     * Get the listener URI as a string.
+     *
+     * @return The listener URI as a string representation
+     */
     @JsonIgnore
     public String getListener () {
 	return this.listener;
-    }
+    };
+
 
     /**
-     * Serialize response to JSON node.
+     * Serialize response as a JsonNode.
+     *
+     * @return JsonNode representation of the response
      */
     @Override
-    public JsonNode toJSONnode () {
+    public JsonNode toJsonNode () {
 
 	// Get notifications json response
-	ObjectNode json = (ObjectNode) super.toJSONnode();
+	ObjectNode json = (ObjectNode) super.toJsonNode();
 
 	StringBuilder sb = new StringBuilder();
         if (this.getName() != null) {
 	    sb.append(this.getName());
 
 	    if (this.getVersion() != null)
-		sb.append("-").append(this.getVersion());
-	}
-        else if (this.getVersion() != null) {
-	    sb.append(this.getVersion());
+		sb.append("-");
 	};
 
-	if (this.timeExceeded)
-	    json.put("timeExceeded", true);
+	// No name but version is given
+	if (this.getVersion() != null)
+	    sb.append(this.getVersion());
 
 	if (sb.length() > 0)
 	    json.put("version", sb.toString());
 
+	if (this.timeExceeded)
+	    json.put("timeExceeded", true);
+
         if (this.getNode() != null)
             json.put("node", this.getNode());
 
@@ -199,4 +262,43 @@
 
 	return (JsonNode) json;
     };
+
+    /**
+     * Serialize response as a JSON string.
+     * <p>
+     * <blockquote><pre>
+     * {
+     *   "version" : "Lucene-Backend-0.49.1",
+     *   "timeExceeded" : true,
+     *   "node" : "Tanja",
+     *   "listener" : "http://localhost:8080/",
+     *   "benchmark" : "12.3s",
+     *   "errors": [
+     *     [123, "You are not allowed to serialize these messages"],
+     *     [124, "Your request was invalid"]
+     *   ],
+     *   "messages" : [
+     *     [125, "Class is deprecated", "Notifications"]
+     *   ]
+     * }
+     * </pre></blockquote>
+     *
+     * @return String representation of the response
+     */
+    public String toJsonString () {
+	String msg = "";
+	try {
+	    return mapper.writeValueAsString(this.toJsonNode());
+	}
+	catch (Exception e) {
+	    // Bad in case the message contains quotes!
+	    msg = ", \"" + e.getLocalizedMessage() + "\"";
+	};
+
+	return
+	    "{\"errors\":["+
+	    "[620, " +
+	    "\"Unable to generate JSON\"" + msg + "]" +
+	    "]}";
+    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/response/Message.java b/src/main/java/de/ids_mannheim/korap/response/Message.java
index 1fb1709..9a0c91b 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Message.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Message.java
@@ -136,7 +136,7 @@
      *
      * @return JsonNode representation of the message
      */
-    public JsonNode toJSONnode () {
+    public JsonNode toJsonNode () {
 	ArrayNode message = mapper.createArrayNode();
 
 	if (this.code != 0)
@@ -159,10 +159,10 @@
      *
      * @return String representation of the message
      */
-    public String toJSON () {
+    public String toJsonString () {
 	String msg = "";
 	try {
-	    return mapper.writeValueAsString(this.toJSONnode());
+	    return mapper.writeValueAsString(this.toJsonNode());
 	}
 	catch (Exception e) {
 	    // Bad in case the message contains quotes!
diff --git a/src/main/java/de/ids_mannheim/korap/response/Messages.java b/src/main/java/de/ids_mannheim/korap/response/Messages.java
index 2239842..c78e6aa 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Messages.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Messages.java
@@ -228,10 +228,10 @@
      *
      * @return JsonNode representation of all messages
      */
-    public JsonNode toJSONnode () {
+    public JsonNode toJsonNode () {
 	ArrayNode messageArray = mapper.createArrayNode();
 	for (Message msg : this.messages)
-	    messageArray.add(msg.toJSONnode());
+	    messageArray.add(msg.toJsonNode());
 	return (JsonNode) messageArray;
     };
 
@@ -248,10 +248,10 @@
      *
      * @return String representation of all messages
      */
-    public String toJSON () {
+    public String toJsonString () {
 	String msg = "";
 	try {
-	    return mapper.writeValueAsString(this.toJSONnode());
+	    return mapper.writeValueAsString(this.toJsonNode());
 	}
 	catch (Exception e) {
 	    // Bad in case the message contains quotes!
diff --git a/src/main/java/de/ids_mannheim/korap/response/Notifications.java b/src/main/java/de/ids_mannheim/korap/response/Notifications.java
index 4b985f7..9074828 100644
--- a/src/main/java/de/ids_mannheim/korap/response/Notifications.java
+++ b/src/main/java/de/ids_mannheim/korap/response/Notifications.java
@@ -28,7 +28,7 @@
  *     for (Message msg : n.getWarnings())
  *       System.err.out(msg.getCode() + ": " + msg.getMessage());
  *   };
- *   System.err.println(n.toJSON());
+ *   System.err.println(n.toJsonString());
  * </pre></blockquote>
  *
  * @author Nils Diewald
@@ -361,20 +361,36 @@
 
 
     /**
+     * Clear all notifications.
+     *
+     * @return Notification object for chaining
+     */
+    public Notifications clearNotifications () {
+	if (this.warnings != null)
+	    this.warnings.clear();
+	if (this.messages != null)
+	    this.messages.clear();
+	if (this.errors != null)
+	    this.errors.clear();
+	return this;
+    };
+
+
+    /**
      * Serialize Notifications as a JsonNode.
      *
      * @return JsonNode representation of all warnings, errors, and messages
      */
-    public JsonNode toJSONnode () {
+    public JsonNode toJsonNode () {
 	ObjectNode json =  mapper.createObjectNode();
 
 	// Add messages
 	if (this.hasWarnings())
-	    json.put("warnings", this.getWarnings().toJSONnode());
+	    json.put("warnings", this.getWarnings().toJsonNode());
 	if (this.hasErrors())
-	    json.put("errors", this.getErrors().toJSONnode());
+	    json.put("errors", this.getErrors().toJsonNode());
 	if (this.hasMessages())
-	    json.put("messages", this.getMessages().toJSONnode());
+	    json.put("messages", this.getMessages().toJsonNode());
 
 	return (JsonNode) json;
     };
@@ -396,10 +412,10 @@
      *
      * @return String representation of all warnings, errors, and messages
      */
-    public String toJSON () {
+    public String toJsonString () {
 	String msg = "";
 	try {
-	    JsonNode node = this.toJSONnode();
+	    JsonNode node = this.toJsonNode();
 	    if (node == null)
 		return "{}";
 	    return mapper.writeValueAsString(node);
@@ -415,19 +431,4 @@
 	    "\"Unable to generate JSON\"" + msg + "]" +
 	    "]}";
     };
-
-    /**
-     * Clear all notifications.
-     *
-     * @return Notification object for chaining
-     */
-    public Notifications clearNotifications () {
-	if (this.warnings != null)
-	    this.warnings.clear();
-	if (this.messages != null)
-	    this.messages.clear();
-	if (this.errors != null)
-	    this.errors.clear();
-	return this;
-    };
 };
diff --git a/src/main/java/de/ids_mannheim/korap/server/Resource.java b/src/main/java/de/ids_mannheim/korap/server/Resource.java
index 6a663ae..f27b14a 100644
--- a/src/main/java/de/ids_mannheim/korap/server/Resource.java
+++ b/src/main/java/de/ids_mannheim/korap/server/Resource.java
@@ -101,7 +101,7 @@
 	);
 	*/
 	kresp.addMessage(680, "Server is up and running!");
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
     
 
@@ -137,7 +137,7 @@
 
 	if (index == null) {
 	    kresp.addError(601, "Unable to find index");
-	    return kresp.toJSON();
+	    return kresp.toJsonString();
 	};
 
 	kresp.setVersion(index.getVersion());
@@ -152,12 +152,12 @@
 	// TODO: This may be a field error!
 	catch (IOException e) {
 	    kresp.addError(602, "Unable to add document to index");
-	    return kresp.toJSON();
+	    return kresp.toJsonString();
 	};
 
 	// Set HTTP to 200
 	kresp.addMessage(681, "Document was added successfully", ID);
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
 
 
@@ -177,7 +177,7 @@
 
 	if (index == null) {
 	    kresp.addError(601, "Unable to find index");
-	    return kresp.toJSON();
+	    return kresp.toJsonString();
 	};
 
 	kresp.setVersion(index.getVersion());
@@ -190,11 +190,11 @@
 	catch (IOException e) {
 	    // Set HTTP to ???
 	    kresp.addError(603, "Unable to commit staged data to index");
-	    return kresp.toJSON();
+	    return kresp.toJsonString();
 	};
 
 	// Set HTTP to ???
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
 
 
@@ -234,12 +234,12 @@
 		// Only return the first match per text
 		ks.setItemsPerResource(1);
 
-		return ks.run(index).toJSON();
+		return ks.run(index).toJsonString();
 	    };
 	    KorapResult kr = new KorapResult();
 	    kr.setNode(KorapNode.getName());
 	    kr.addError(610, "Missing request parameters", "No unique IDs were given");
-	    return kr.toJSON();
+	    return kr.toJsonString();
 	};
 
 	KorapResponse kresp = new KorapResponse();
@@ -249,7 +249,7 @@
 
 	kresp.addError(601, "Unable to find index");
 	
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
 
 
@@ -274,7 +274,7 @@
 	    KorapResponse kresp = new KorapResponse();
 	    kresp.setNode(KorapNode.getName());
 	    kresp.addError(601, "Unable to find index");
-  	    return kresp.toJSON();
+  	    return kresp.toJsonString();
 	};
 
 	// Get the database
@@ -289,7 +289,7 @@
 	    MatchCollector result = index.collect(ks, mc);
 
 	    result.setNode(KorapNode.getName());
-	    return result.toJSON();
+	    return result.toJsonString();
 	}
 	catch (SQLException e) {
 	    log.error(e.getLocalizedMessage());
@@ -301,7 +301,7 @@
 	kresp.setVersion(index.getVersion());
 
 	kresp.addError(604, "Unable to connect to database");
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
 
 
@@ -331,7 +331,7 @@
         if (index != null) {
             KorapResult kr = new KorapSearch(json).run(index);
 	    kr.setNode(KorapNode.getName());
-	    return kr.toJSON();
+	    return kr.toJsonString();
 	};
 
 	KorapResponse kresp = new KorapResponse();
@@ -340,7 +340,7 @@
 	kresp.setVersion(index.getVersion());
 
 	kresp.addError(601, "Unable to find index");
-	return kresp.toJSON();
+	return kresp.toJsonString();
     };
 
     @GET
@@ -396,7 +396,7 @@
 		    includeSpans,
 		    includeHighlights,
 		    extendToSentence
-		).toJSON();
+		).toJsonString();
             }
 
 	    // Nothing found
@@ -404,14 +404,14 @@
 		// Todo: Make KorapMatch rely on KorapResponse!
                 KorapMatch km = new KorapMatch();
                 km.addError(qe.getErrorCode(), qe.getMessage());
-                return km.toJSON();
+                return km.toJsonString();
             }
 	};
 
 	// Response with error message
         KorapMatch km = new KorapMatch();
         km.addError(601, "Unable to find index");
-        return km.toJSON();
+        return km.toJsonString();
     };
 
     /*