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 e1a5278..c77d409 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
@@ -91,7 +91,6 @@
         type = StringUtils.normalize(type);
         Class cl_type = ResourceFactory.getResourceClass(type);
         if (cl_type == null) {
-            //todo return bad request response
             throw KustvaktResponseHandler.throwit(StatusCodes.REQUEST_INVALID,
                     "Resource type not available!", "");
         }
@@ -477,9 +476,9 @@
             map.add("q", query);
             map.add("count", String.valueOf(pageLength));
             map.add("lctxs",
-                    String.valueOf(meta.getSpanContext().getLeft_size()));
+                    String.valueOf(meta.getSpanContext().getLeftSize()));
             map.add("rctxs",
-                    String.valueOf(meta.getSpanContext().getRight_size()));
+                    String.valueOf(meta.getSpanContext().getRightSize()));
             try {
                 result = this.graphDBhandler.getResponse(map, "distKwic");
             }
@@ -584,9 +583,9 @@
                     map.add("q", query);
                     map.add("count", String.valueOf(pageLength));
                     map.add("lctxs", String.valueOf(meta.getSpanContext()
-                            .getLeft_size()));
+                            .getLeftSize()));
                     map.add("rctxs", String.valueOf(meta.getSpanContext()
-                            .getRight_size()));
+                            .getRightSize()));
                     result = this.graphDBhandler.getResponse(map, "distKwic");
                 }
                 else
diff --git a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
index 8bd7c88..fbe670f 100644
--- a/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
+++ b/src/main/java/de/ids_mannheim/korap/web/service/light/LightService.java
@@ -170,9 +170,9 @@
             map.add("q", query);
             map.add("count", String.valueOf(pageLength));
             map.add("lctxs",
-                    String.valueOf(meta.getSpanContext().getLeft_size()));
+                    String.valueOf(meta.getSpanContext().getLeftSize()));
             map.add("rctxs",
-                    String.valueOf(meta.getSpanContext().getRight_size()));
+                    String.valueOf(meta.getSpanContext().getRightSize()));
 
             try {
                 result = this.graphDBhandler.getResponse(map, "distKwic");
@@ -250,9 +250,9 @@
                 map.add("q", query);
                 map.add("count", String.valueOf(pageLength));
                 map.add("lctxs",
-                        String.valueOf(meta.getSpanContext().getLeft_size()));
+                        String.valueOf(meta.getSpanContext().getLeftSize()));
                 map.add("rctxs",
-                        String.valueOf(meta.getSpanContext().getRight_size()));
+                        String.valueOf(meta.getSpanContext().getRightSize()));
                 result = this.graphDBhandler.getResponse(map, "distKwic");
             }
             else
