diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index bf7c206..7938a9e 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -16,6 +16,23 @@
 	     domReady,
 	     hintArray,
 	     alertifyClass) {
+
+  // Set hint array for hint helper
+  KorAP.hintArray = hintArray;
+
+  // Override KorAP.log
+  window.alertify = alertifyClass;
+  KorAP.log = function (type, msg) {
+
+    // Use alertify to log errors
+    alertifyClass.log(
+      (type === 0 ? '' : type + ': ') +
+	msg,
+      'error',
+      5000
+    );
+  };
+
   domReady(function (event) {
     var obj = {};
 
@@ -147,21 +164,6 @@
     // tutorial pages as well!
     obj.hint = hintClass.create();
 
-    // Set hint array for hint helper
-    KorAP.hintArray = hintArray;
-
-    // Override KorAP.log
-    KorAP.log = function (type, msg) {
-
-      // Use alertify to log errors
-      alertifyClass.log(
-	(type === 0 ? '' : type + ': ') +
-	  msg,
-	'error',
-	5000
-      );
-    };
-
     return obj;
   });
 });
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index 4204d48..10d2e53 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -18,6 +18,16 @@
   # Add additional plugin path
   push(@{$self->plugins->namespaces}, __PACKAGE__ . '::Plugin');
 
+  # korap.ids-mannheim.de specific
+  $self->hook(
+    before_dispatch => sub {
+      my $c = shift;
+      my $host = $c->req->headers->header('X-Forwarded-Host');
+      if ($host && $host eq 'korap.ids-mannheim.de') {
+	$c->req->url->base->path('/kalamar/');
+      };
+    }) if $self->mode eq 'production';
+
   # Set secrets for signed cookies
   if (-e (my $secret = $self->home . '/kalamar.secret')) {
     $self->secrets([
@@ -80,8 +90,14 @@
 
 =pod
 
-To get started, you'll need npm. Then you can install and run grunt:
+The static files are generated using Grunt.
+To get started with Grunt, you need NodeJS > 0.8 ..., you'll need npm. Then you can install and run grunt:
 
 sudo npm install -g grunt-cli
 npm install
 grunt
+
+
+Some perl modules are not on github yet, so you need to install them from github using cpanm:
+
+  cpanm git://github.com/Akron/Mojolicious-Plugin-Localize.git
diff --git a/templates/doc/data/corpus.html.ep b/templates/doc/data/corpus.html.ep
new file mode 100644
index 0000000..17dbda0
--- /dev/null
+++ b/templates/doc/data/corpus.html.ep
@@ -0,0 +1,5 @@
+% layout 'main', title => 'KorAP: Corpora';
+
+<h2>Corpora</h2>
+
+%= doc_uc
diff --git a/templates/exception.html.ep b/templates/exception.html.ep
deleted file mode 100644
index 8d3e656..0000000
--- a/templates/exception.html.ep
+++ /dev/null
@@ -1 +0,0 @@
-% notify('error' => '500: Server Error');
diff --git a/templates/exception.production.html.ep b/templates/exception.production.html.ep
new file mode 100644
index 0000000..7d8af3b
--- /dev/null
+++ b/templates/exception.production.html.ep
@@ -0,0 +1,6 @@
+% my $msg = $exception->message // '500: Internal Server Error';
+% layout 'main', title => 'KorAP: ' . $msg;
+
+<p id="no-results"><%= $msg  %></p>
+
+% notify('error' => $msg);
diff --git a/templates/layouts/main.html.ep b/templates/layouts/main.html.ep
index cb72f8a..6280855 100644
--- a/templates/layouts/main.html.ep
+++ b/templates/layouts/main.html.ep
@@ -6,7 +6,6 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=false, user-scalable=no" />
     <link href="/img/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 
     <link href="/css/kalamar-<%= $Kalamar::VERSION %>.css" type="text/css" rel="stylesheet" />
-    <script src="/js/<%== loc('jsFile', 'kalamar-' . $Kalamar::VERSION . '-en.js') %>" type="text/javascript" async="async"></script>
   </head>
 % my $embedded = 0;
 % $embedded = 1 if stash('embedded');
@@ -33,13 +32,15 @@
       <a href="http://korap.ids-mannheim.de/"><%= loc 'about' %></a>
       <%= doc_link_to 'V '. $Kalamar::VERSION, 'korap', 'kalamar' %>
     </footer>
-    %= notifications 'Alertify', -no_include
     % };
+
+%= javascript '/js/' . loc('jsFile', 'kalamar-' . $Kalamar::VERSION . '-en.js')
 %= javascript begin  
   window.KorAP = window.KorAP || {};
   % my $api = url_for('index')->to_abs;
   % $api =~ s!/$!!;
   KorAP.URL = '<%== $api %>';
 % end
+%= notifications 'Alertify', -no_include
   </body>
 </html>
diff --git a/templates/not_found.production.html.ep b/templates/not_found.production.html.ep
new file mode 100644
index 0000000..ee74676
--- /dev/null
+++ b/templates/not_found.production.html.ep
@@ -0,0 +1,6 @@
+% my $msg = '404: Page not found';
+% layout 'main', title => 'KorAP: ' . $msg;
+
+<p id="no-results"><%= $msg %></p>
+
+% notify('warn' => $msg);
