diff --git a/lib/Korap.pm b/lib/Korap.pm
index f79ef61..259383b 100644
--- a/lib/Korap.pm
+++ b/lib/Korap.pm
@@ -3,28 +3,27 @@
 
 our $VERSION = '0.03';
 
-# This method will run once at server start
+# Start the application and register all routes and plugins
 sub startup {
   my $self = shift;
 
+  # Set secret for signed cookies
   $self->secrets(['fmhsfjgfchgsdbfgshfxztsbt32477eb45veu4vubrghfgghbtv']);
 
-  $self->plugin('Config');
-  $self->plugin('CHI');
-  $self->plugin('TagHelpers::Pagination' => {
-    prev => '<span><i class="fa fa-caret-left"></i></span>',
-    next => '<span><i class="fa fa-caret-right"></i></span>',
-    ellipsis => '<span><i class="fa fa-ellipsis-h"></i></span>',
-    separator => '',
-    current => '<span>{current}</span>',
-    page => '<span>{page}</span>'
-  });
-  $self->plugin('Notifications');
-  $self->plugin('Number::Commify');
+  # Add additional plugin path
   push(@{$self->plugins->namespaces}, __PACKAGE__ . '::Plugin');
-  $self->plugin('KorapSearch');
-  $self->plugin('KorapInfo');
-  $self->plugin('KorapTagHelpers');
+
+  # Load plugins
+  foreach (qw/Config
+	      CHI
+	      TagHelpers::Pagination
+	      Notifications
+	      Number::Commify
+	      KorapSearch
+	      KorapInfo
+	      KorapTagHelpers/) {
+    $self->plugin($_);
+  };
 
   $self->helper(
     date_format => sub {
@@ -36,40 +35,29 @@
   # Routes
   my $r = $self->routes;
 
-  # Create search endpoint
-  $r->add_shortcut(
-    search => sub {
-      shift->route('/search')->to('search#remote')
-    }
-  );
-
+  # Base search route
   $r->get('/')->to('search#remote')->name('index');
-  $r->get('/util/query')->to('search#query');
 
-  # Tutorial
-  $r->get('/tutorial/(*tutorial)', { tutorial => 'start' })->to('tutorial#page')->name('tutorial');
+  # Tutorial data
+  $r->get('/tutorial/(*tutorial)', { tutorial => 'start' })
+    ->to('tutorial#page')->name('tutorial');
 
+  # Collection data
   my $collection = $r->route('/collection');
   $collection->to('search#info');
   $collection->search;
 
+  # Corpus data
   my $corpus = $r->route('/corpus');
   $corpus->search;
   $corpus->route('/:corpus_id')->search;
-  $corpus->route('/:corpus_id/:doc_id')->search;
-  $corpus->route('/:corpus_id/#doc_id/:match_id')->to('info#about_match');
+  $corpus->route('/:corpus_id/#doc_id')->search;
+  $corpus->route('/:corpus_id/#doc_id/:match_id')
+         ->to('info#about_match');
 
-
-
-#  $r->get(
-#    '/:resource/:corpus_id/#doc_id/#match_id',
-#    resource => [qw/collection corpus/])->to('search#match')->name('match');
- # /matchInfo?id=...&f=&l=&spans
+  # Utilities
+  $r->get('/util/query')->to('search#query');
 };
 
 
 1;
-
-__END__
-
-  # TODO: Write search snippet
diff --git a/lib/Korap/Plugin/KorapInfo.pm b/lib/Korap/Plugin/KorapInfo.pm
index a1f3af8..5ef48d3 100644
--- a/lib/Korap/Plugin/KorapInfo.pm
+++ b/lib/Korap/Plugin/KorapInfo.pm
@@ -3,6 +3,9 @@
 use Mojo::JSON qw/decode_json/;
 use Mojo::ByteStream 'b';
 
+# Todo: Make the requests non-blocking
+
+# Register plugin
 sub register {
   my ($plugin, $mojo, $param) = @_;
   $param ||= {};
@@ -12,37 +15,43 @@
     $param = { %$param, %$config_param };
   };
 
+  # Temporary info data
   state $json = decode_json(b(join('', <DATA>))->encode);
 
+  # Get the API endpoint
   my $api = $param->{api};
 
   # Todo: Make this recognize the user!
   $mojo->helper(
     resource_info => sub {
       my $c = shift;
-
       my $src = shift;
 
+      # Dispatch for test mode
       if ($c->app->mode eq 'test') {
 	if ($src eq 'collection') {
 	  return $json->{collections};
 	};
       };
 
+      # Rename info endpoints and build URL
       $src = 'VirtualCollection' if $src eq 'collection';
       $src = 'Corpus' if $src eq 'corpus';
-
       my $url = Mojo::URL->new($api)->path('resource/' . $src);
 
-      my $chi = $c->chi;
-      if (my $json = $chi->get($url->to_string)) {
+      # Check for cached information
+      if (my $json = $c->chi->get($url->to_string)) {
 	return $json;
       }
+
+      # Retrieve and set the cache
       elsif (my $response = $c->ua->get($url)->success) {
 	my $json = $response->json;
-	$c->chi->set($url->to_string => $json);
+	$c->chi->set($url->to_string => $json, '24 hours');
 	return $json;
       };
+
+      # Something went wrong
       $c->notify(error => 'Unable to retrieve resource');
       return [];
     }
@@ -55,8 +64,12 @@
 
       return $json->{matchInfo} if $c->app->mode eq 'test';
 
+      # Build url
       my $url = Mojo::URL->new($api)->path('resource/matchInfo');
+
+      # Build match id
       $match = 'match-' . $corpus . '!' . $corpus . '_' . $doc . '-' . $match;
+
       $url->query({
 	id => $match,
 	f => 'mate',
@@ -76,16 +89,51 @@
 1;
 
 __DATA__
-
 {
-"matchInfo":
-
-{"author":"Filzstift,Alexander Sommer,TheK","textClass":"freizeit-unterhaltung reisen","corpusID":"WPD","title":"Neuseeland","foundries":"xip xip/morpho xip/constituency xip/dependency corenlp corenlp/namedentities corenlp/namedentities/ne_dewac_175m_600 corenlp/namedentities corenlp/namedentities/ne_hgc_175m_600 mate mate/morpho mate/dependency connexor connexor/morpho connexor/syntax connexor/phrase treetagger treetagger/morpho base base/sentences base/paragraphs opennlp opennlp/morpho","tokenization":"opennlp#tokens","field":"tokens","startMore":false,"endMore":false,"docID":"WPD_NNN.02848","snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"mate/l:besonders\"><span title=\"mate/p:ADV\">Besonders</span></span> <span title=\"mate/l:auffällig\"><span title=\"mate/m:degree:pos\"><span title=\"mate/p:ADJD\">auffällig</span></span></span> <span title=\"mate/l:sein\"><span title=\"mate/m:mood:ind\"><span title=\"mate/m:number:pl\"><span title=\"mate/m:person:3\"><span title=\"mate/m:tense:pres\"><span title=\"mate/p:VAFIN\">sind</span></span></span></span></span></span> <span title=\"mate/l:schließlich\"><span title=\"mate/p:ADV\">schließlich</span></span> <span title=\"mate/l:noch\"><span title=\"mate/p:ADV\">noch</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:pohutukawa\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Pohutukawa</span></span></span></span></span> <span title=\"mate/l:und\"><span title=\"mate/p:KON\">und</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:cabbage\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Cabbage</span></span></span></span></span> <span title=\"mate/l:tree\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\"><span title=\"mate/m:case:nom\">Tree</span></span></span></span></span></span><span class=\"context-right\"></span>","ID":"match-WPD!WPD_NNN.02848-p1213-1224","pubDate":"2005-03-28","context":{"left":["token",0],"right":["token",0]}},
-
-
-"collections" :
-[{"shared":false,"id":1,"managed":true,"created":1401193381119,"stats":{"documents":196510,"tokens":51545081,"sentences":4116282,"paragraphs":2034752},"query":[{"@type":"korap:meta-filter","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"WPD"}}],"description":"Die freie Enzyklopädie","name":"Wikipedia","foundries":"base;corenlp;mate;mpt;opennlp;tt;xip"}]
-
-
-
+  "matchInfo": {
+    "author":"Filzstift,Alexander Sommer,TheK",
+    "textClass":"freizeit-unterhaltung reisen",
+    "corpusID":"WPD",
+    "title":"Neuseeland",
+    "foundries":"xip xip/morpho xip/constituency xip/dependency corenlp corenlp/namedentities corenlp/namedentities/ne_dewac_175m_600 corenlp/namedentities corenlp/namedentities/ne_hgc_175m_600 mate mate/morpho mate/dependency connexor connexor/morpho connexor/syntax connexor/phrase treetagger treetagger/morpho base base/sentences base/paragraphs opennlp opennlp/morpho",
+    "tokenization":"opennlp#tokens",
+    "field":"tokens",
+    "startMore":false,
+    "endMore":false,
+    "docID":"WPD_NNN.02848",
+    "snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"mate/l:besonders\"><span title=\"mate/p:ADV\">Besonders</span></span> <span title=\"mate/l:auffällig\"><span title=\"mate/m:degree:pos\"><span title=\"mate/p:ADJD\">auffällig</span></span></span> <span title=\"mate/l:sein\"><span title=\"mate/m:mood:ind\"><span title=\"mate/m:number:pl\"><span title=\"mate/m:person:3\"><span title=\"mate/m:tense:pres\"><span title=\"mate/p:VAFIN\">sind</span></span></span></span></span></span> <span title=\"mate/l:schließlich\"><span title=\"mate/p:ADV\">schließlich</span></span> <span title=\"mate/l:noch\"><span title=\"mate/p:ADV\">noch</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:pohutukawa\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Pohutukawa</span></span></span></span></span> <span title=\"mate/l:und\"><span title=\"mate/p:KON\">und</span></span> <span title=\"mate/l:der\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:ART\">der</span></span></span></span></span> <span title=\"mate/l:cabbage\"><span title=\"mate/m:case:nom\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\">Cabbage</span></span></span></span></span> <span title=\"mate/l:tree\"><span title=\"mate/m:gender:masc\"><span title=\"mate/m:number:sg\"><span title=\"mate/p:NE\"><span title=\"mate/m:case:nom\">Tree</span></span></span></span></span></span><span class=\"context-right\"></span>",
+    "ID":"match-WPD!WPD_NNN.02848-p1213-1224",
+    "pubDate":"2005-03-28",
+    "context":{
+      "left":["token",0],
+      "right":["token",0]
+    }
+  },
+  "collections" : [
+    {
+      "shared":false,
+      "id":1,
+      "managed":true,
+      "created":1401193381119,
+      "stats":{
+        "documents":196510,
+        "tokens":51545081,
+        "sentences":4116282,
+        "paragraphs":2034752
+      },
+      "query":[
+        {
+          "@type":"korap:meta-filter",
+          "@value":{
+            "@type":"korap:term",
+            "@field":"korap:field#corpusID",
+            "@value":"WPD"
+          }
+        }
+      ],
+      "description":"Die freie Enzyklopädie",
+      "name":"Wikipedia",
+      "foundries":"base;corenlp;mate;mpt;opennlp;tt;xip"
+    }
+  ]
 }
diff --git a/lib/Korap/Plugin/KorapSearch.pm b/lib/Korap/Plugin/KorapSearch.pm
index 39b5c15..015a1a8 100644
--- a/lib/Korap/Plugin/KorapSearch.pm
+++ b/lib/Korap/Plugin/KorapSearch.pm
@@ -5,6 +5,7 @@
 
 # TODO: This will probably be an engine for M::P::Search
 # cutoff has to be true or false
+# TODO: Write search snippet
 
 sub register {
   my ($plugin, $mojo, $param) = @_;
@@ -37,6 +38,13 @@
     }
   );
 
+  # Create search endpoint
+  $mojo->routes->add_shortcut(
+    search => sub {
+      shift->route('/search')->to('search#remote')
+    }
+  );
+
   $mojo->helper(
     search => sub {
       my $c = shift;
