diff --git a/lib/Kalamar/API.pm b/lib/Kalamar/API.pm
index fcf1c5e..9f9c2b7 100644
--- a/lib/Kalamar/API.pm
+++ b/lib/Kalamar/API.pm
@@ -389,6 +389,8 @@
 
     if ($meta->{totalResults} && $meta->{totalResults} > -1) {
       my $c = $index->controller;
+
+      # TODO: Cache on auth_keys!
       my $user = $c->stash('user') // '?';
 
       $c->app->log->debug('Cache total result');
diff --git a/lib/Kalamar/Apps/test_backend.pl b/lib/Kalamar/Apps/test_backend.pl
index ee3d821..aeb0860 100644
--- a/lib/Kalamar/Apps/test_backend.pl
+++ b/lib/Kalamar/Apps/test_backend.pl
@@ -38,80 +38,89 @@
   $v->optional('count');
   $v->optional('context');
 
-  # Simple search fixture
-  return $c->render(
-    json => {
-      "\@context" => "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
-      "meta" => {
-        "count" => 25,
-        "startIndex" => 0,
-        "timeout" => 120000,
-        "context" => {
-          "left" => ["token",40],
-          "right" => ["token",40]
-        },
-        "fields" => ["pubDate","subTitle","author","pubPlace","title","textSigle","UID","ID","layerInfos","corpusSigle","docSigle","corpusID","textClass"],
-        "version" => "0.55.7",
-        "benchmark" => "0.120577834 s",
-        "totalResults" => 51,
-        "serialQuery" => "tokens:s:Baum",
-        "itemsPerPage" => 25
+  # Check for Baum
+  my $response = {
+    "\@context" => "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta" => {
+      "count" => 25,
+      "startIndex" => 0,
+      "timeout" => 120000,
+      "context" => {
+        "left" => ["token",40],
+        "right" => ["token",40]
       },
-      "query" => {
-        "\@type" => "koral:token",
-        "wrap" => {
-          "\@type" => "koral:term",
-          "layer" => "orth",
-          "key" => "Baum",
-          "match" => "match:eq",
-          "foundry" => "opennlp",
-          "rewrites" => [
-            {
+      "fields" => ["pubDate","subTitle","author","pubPlace","title","textSigle","UID","ID","layerInfos","corpusSigle","docSigle","corpusID","textClass"],
+      "version" => "0.55.7",
+      "benchmark" => "0.120577834 s",
+      "totalResults" => 51,
+      "serialQuery" => "tokens:s:Baum",
+      "itemsPerPage" => 25
+    },
+    "query" => {
+      "\@type" => "koral:token",
+      "wrap" => {
+        "\@type" => "koral:term",
+        "layer" => "orth",
+        "key" => "Baum",
+        "match" => "match:eq",
+        "foundry" => "opennlp",
+        "rewrites" => [
+          {
               "\@type" => "koral:rewrite",
               "src" => "Kustvakt",
               "operation" => "operation:injection",
               "scope" => "foundry"
             }
-          ]
-        }
+        ]
+      }
+    },
+    "matches" => [
+      {
+        "field" => "tokens",
+        "pubPlace" => "München",
+        "textSigle" => "GOE/AGI/00000",
+        "docSigle" => "GOE/AGI",
+        "corpusSigle" => "GOE",
+        "title" => "Italienische Reise",
+        "subTitle" => "Auch ich in Arkadien!",
+        "author" => "Goethe, Johann Wolfgang von",
+        "layerInfos" => "base/s=spans corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels mdp/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans",
+        "startMore" => true,
+        "endMore" => true,
+        "snippet" => "<span class=\"context-left\"><span class=\"more\"></span>sie etwas bedeuten zu wollen und machte mit der Oberlippe eine fatale Miene. ich sprach sehr viel mit ihr durch, sie war überall zu Hause und merkte gut auf die Gegenstände. so fragte sie mich einmal, was das für ein </span><span class=\"match\"><mark>Baum</mark></span><span class=\"context-right\"> sei. es war ein schöner großer Ahorn, der erste, der mir auf der ganzen Reise zu Gesichte kam. den hatte sie doch gleich bemerkt und freute sich, da mehrere nach und nach erschienen, daß sie auch diesen Baum unterscheiden könne<span class=\"more\"></span></span>",
+        "matchID" => "match-GOE/AGI/00000-p2030-2031",
+        "UID" => 0,
+        "pubDate" => "1982"
       },
-      "matches" => [
-        {
-          "field" => "tokens",
-          "pubPlace" => "München",
-          "textSigle" => "GOE/AGI/00000",
-          "docSigle" => "GOE/AGI",
-          "corpusSigle" => "GOE",
-          "title" => "Italienische Reise",
-          "subTitle" => "Auch ich in Arkadien!",
-          "author" => "Goethe, Johann Wolfgang von",
-          "layerInfos" => "base/s=spans corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels mdp/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans",
-          "startMore" => true,
-          "endMore" => true,
-          "snippet" => "<span class=\"context-left\"><span class=\"more\"></span>sie etwas bedeuten zu wollen und machte mit der Oberlippe eine fatale Miene. ich sprach sehr viel mit ihr durch, sie war überall zu Hause und merkte gut auf die Gegenstände. so fragte sie mich einmal, was das für ein </span><span class=\"match\"><mark>Baum</mark></span><span class=\"context-right\"> sei. es war ein schöner großer Ahorn, der erste, der mir auf der ganzen Reise zu Gesichte kam. den hatte sie doch gleich bemerkt und freute sich, da mehrere nach und nach erschienen, daß sie auch diesen Baum unterscheiden könne<span class=\"more\"></span></span>",
-          "matchID" => "match-GOE/AGI/00000-p2030-2031",
-          "UID" => 0,
-          "pubDate" => "1982"
-        },
-        {
-          "field" => "tokens",
-          "pubPlace" => "München",
-          "textSigle" => "GOE/AGI/00000",
-          "docSigle" => "GOE/AGI",
-          "corpusSigle" => "GOE",
-          "title" => "Italienische Reise",
-          "subTitle" => "Auch ich in Arkadien!",
-          "author" => "Goethe, Johann Wolfgang von",
-          "layerInfos" => "base/s=spans corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels mdp/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans",
-          "startMore" => true,
-          "endMore" => true,
-          "snippet" => "<span class=\"context-left\"><span class=\"more\"></span>für ein Baum sei. es war ein schöner großer Ahorn, der erste, der mir auf der ganzen Reise zu Gesichte kam. den hatte sie doch gleich bemerkt und freute sich, da mehrere nach und nach erschienen, daß sie auch diesen </span><span class=\"match\"><mark>Baum</mark></span><span class=\"context-right\"> unterscheiden könne. sie gehe, sagte sie, nach Bozen auf die Messe, wo ich doch wahrscheinlich auch hinzöge. wenn sie mich dort anträfe, müsse ich ihr einen Jahrmarkt kaufen, welches ich ihr denn auch versprach. dort wollte sie auch ihre neue<span class=\"more\"></span></span>",
-          "matchID" => "match-GOE/AGI/00000-p2068-2069",
-          "UID" => 0,
-          "pubDate" => "1982"
-        }
-      ]
-    }
+      {
+        "field" => "tokens",
+        "pubPlace" => "München",
+        "textSigle" => "GOE/AGI/00000",
+        "docSigle" => "GOE/AGI",
+        "corpusSigle" => "GOE",
+        "title" => "Italienische Reise",
+        "subTitle" => "Auch ich in Arkadien!",
+        "author" => "Goethe, Johann Wolfgang von",
+        "layerInfos" => "base/s=spans corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels mdp/d=rels opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans",
+        "startMore" => true,
+        "endMore" => true,
+        "snippet" => "<span class=\"context-left\"><span class=\"more\"></span>für ein Baum sei. es war ein schöner großer Ahorn, der erste, der mir auf der ganzen Reise zu Gesichte kam. den hatte sie doch gleich bemerkt und freute sich, da mehrere nach und nach erschienen, daß sie auch diesen </span><span class=\"match\"><mark>Baum</mark></span><span class=\"context-right\"> unterscheiden könne. sie gehe, sagte sie, nach Bozen auf die Messe, wo ich doch wahrscheinlich auch hinzöge. wenn sie mich dort anträfe, müsse ich ihr einen Jahrmarkt kaufen, welches ich ihr denn auch versprach. dort wollte sie auch ihre neue<span class=\"more\"></span></span>",
+        "matchID" => "match-GOE/AGI/00000-p2068-2069",
+        "UID" => 0,
+        "pubDate" => "1982"
+      }
+    ]
+  };
+
+
+  if ($v->param('page')) {
+    $response->{meta}->{startIndex} = $v->param("startIndex");
+  };
+
+
+  # Simple search fixture
+  return $c->render(
+    json => $response
   );
 };
 
diff --git a/lib/Kalamar/Controller/Search.pm b/lib/Kalamar/Controller/Search.pm
index a29d9d3..c246ba1 100644
--- a/lib/Kalamar/Controller/Search.pm
+++ b/lib/Kalamar/Controller/Search.pm
@@ -5,8 +5,18 @@
 # Query the KorAP backends and render a template
 sub query {
   my $c = shift;
+  my $v = $c->validation;
 
-  my $query = $c->param('q');
+  $v->optional('q');
+  $v->optional('ql');
+  $v->optional('collection');
+  $v->optional('action');
+  $v->optional('snippet');
+  $v->optional('cutoff');
+  $v->optional('count');
+  $v->optional('p');
+
+  my $query = $v->param('q');
 
   # No query
   unless ($query) {
@@ -15,26 +25,26 @@
 
   # Base parameters for remote access
   my %param = (
-    query_language => scalar $c->param('ql'),
+    query_language => scalar $v->param('ql'),
     query => $query,
-    collection => scalar $c->param('collection')
+    collection => scalar $v->param('collection')
   );
 
   # May be not relevant
-  my $inspect = (scalar $c->param('action') // '') eq 'inspect' ? 1 : 0;
+  my $inspect = (scalar $v->param('action') // '') eq 'inspect' ? 1 : 0;
 
   # Just check the serialization non-blocking
   if ($inspect) {
     $c->search->trace(
       %param => sub {
-	return $c->render(template => 'query_info');
+        return $c->render(template => 'query_info');
       }
     );
     return;
   };
 
   # Choose the snippet based on the parameter
-  my $template = scalar $c->param('snippet') ? 'snippet' : 'search';
+  my $template = scalar $v->param('snippet') ? 'snippet' : 'search';
 
   # Search non-blocking
   $c->delay(
@@ -43,11 +53,11 @@
 
       # Search with a callback (async)
       $c->search(
-	cutoff     => scalar $c->param('cutoff'),
-	count      => scalar $c->param('count'),
-	start_page => scalar $c->param('p'),
-	cb         => $delay->begin,
-	%param
+        cutoff     => scalar $v->param('cutoff'),
+        count      => scalar $v->param('count'),
+        start_page => scalar $v->param('p'),
+        cb         => $delay->begin,
+        %param
       ) if $query;
 
       # Search resource (async)
diff --git a/t/remote.t b/t/remote.t
index 53ab29e..6770c4f 100644
--- a/t/remote.t
+++ b/t/remote.t
@@ -21,12 +21,8 @@
   ->text_is('#pagination a[rel=self] span', 1)
   ;
 
-done_testing;
-__END__
-
 # Check paging
 $t->get_ok('/?q=test&p=2')
-  # ->text_is('pre.query.serial span', 'JSON-LD Serialization for "test"')
   ->text_like('#total-results', qr/\d+$/)
   ->text_is('#pagination a[rel=self] span', 2)
 ;
