diff --git a/lib/Kalamar/API.pm b/lib/Kalamar/API.pm
index fb06a7e..02e7d22 100644
--- a/lib/Kalamar/API.pm
+++ b/lib/Kalamar/API.pm
@@ -497,15 +497,118 @@
 
 =pod
 
-Additionally supported query parameters:
-- query_language
-- cutoff
-- no_cache
+=encoding utf8
 
-Additional index attributes:
-- api
-- time_exceeded
-- api_request
-- api_response
-- benchmark
-- query_jsonld
+=head1 NAME
+
+Kalamar::API
+
+=head1 DESCRIPTION
+
+L<Kalamar::API> is a search engine class for L<Mojolicious::Plugin::Search>
+that uses the KorAP Web API.
+
+B<The Web API as well as L<Mojolicious::Plugin::Search> are not stable yet,
+so this class is expected to change in the near future. Do not rely on its API!>
+
+
+=head1 METHODS
+
+L<Kalamar::API> inherits all methods from L<Mojolicious::Plugin> and
+implements the following new ones.
+
+
+=head2 register
+
+See L<Mojolicious::Plugin::Search> for registering search engines.
+In addition to the mentioned query parameters, the following parameters are supported:
+
+
+=over 2
+
+=item B<query_language>
+
+One of the supported query languages, like C<poliqarp> or C<annis>.
+
+
+=item B<cutoff>
+
+Cut off results following the current page (i.e. don't count the number of results).
+
+
+=item B<no_cache>
+
+Do not cache search results. Defaults to C<0>.
+
+
+=back
+
+In addition to the mentioned index attributes, the following attributes are supported:
+
+
+=item B<api>
+
+The API address.
+
+
+=item B<time_exceeded>
+
+Report on time outs, that may mean, not all results were retrieved.
+
+
+=item B<api_request>
+
+Report the whole API request.
+
+
+=item B<api_response>
+
+Report the whole API response (a KoralQuery object).
+
+
+=item B<benchmarks>
+
+Report on processing time for benchmarking.
+
+
+=item B<query_jsonld>
+
+The KoralQuery realization of the C<query> object.
+
+=back
+
+=head2 search
+
+Search the index.
+
+=head2 trace
+
+Trace query serializations.
+
+=head2 match
+
+Get match information.
+
+=head2 resource
+
+Get resource information.
+
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright (C) 2015, L<IDS Mannheim|http://www.ids-mannheim.de/>
+Author: L<Nils Diewald|http://nils-diewald.de/>
+
+Kalamar is developed as part of the L<KorAP|http://korap.ids-mannheim.de/>
+Corpus Analysis Platform at the
+L<Institute for the German Language (IDS)|http://ids-mannheim.de/>,
+member of the
+L<Leibniz-Gemeinschaft|http://www.leibniz-gemeinschaft.de/en/about-us/leibniz-competition/projekte-2011/2011-funding-line-2/>
+and supported by the L<KobRA|http://www.kobra.tu-dortmund.de> project,
+funded by the
+L<Federal Ministry of Education and Research (BMBF)|http://www.bmbf.de/en/>.
+
+Kalamar is free software published under the
+L<BSD-2 License|https://raw.githubusercontent.com/KorAP/Kalamar/master/LICENSE).
+
+=cut
diff --git a/lib/Kalamar/Controller/Documentation.pm b/lib/Kalamar/Controller/Documentation.pm
index 7a10537..ff6965d 100644
--- a/lib/Kalamar/Controller/Documentation.pm
+++ b/lib/Kalamar/Controller/Documentation.pm
@@ -68,15 +68,40 @@
 
 =head2 page
 
-Action for all documentation pages. The following stash parameters are supported:
+  /doc/*scope/:page
 
-=head3 doc_base
+Action for all documentation pages.
+The following query parameters are supported:
 
-=head3 scope
+=over 2
 
-=head3 page
+=item embedded
 
-=head3 embedded
+A boolean value, indicating if the documentation is embedded in the
+user interface or on a separated website.
+
+=back
+
+The following path parameters are supported:
+
+=over 2
+
+=item B<scope>
+
+A top level directory entry for documentation data (like C<KorAP> or C<Query Languages>).
+
+=item B<page>
+
+The requested page in the scope.
+
+=back
+
+
+=head2 contact
+
+Action for a contact page. Doesn't do anything more meaningful at the moment but
+will probably contain a form field for feedback in the future.
+
 
 =head1 COPYRIGHT AND LICENSE
 
diff --git a/lib/Kalamar/Controller/Search.pm b/lib/Kalamar/Controller/Search.pm
index 913abc2..ab6ac9a 100644
--- a/lib/Kalamar/Controller/Search.pm
+++ b/lib/Kalamar/Controller/Search.pm
@@ -156,16 +156,20 @@
 The following parameters are supported.
 
 
-=head3 q
+=over 2
+
+=item B<q>
 
 The query string. This may any query written in a supported query language.
 
-=head3 ql
+
+=item B<ql>
 
 The query language. This may be any query language supported by the system,
 written as the API expects the string.
 
-=head3 action
+
+=item B<action>
 
 May be C<inspect>. In that case, the serialized request is mirrored instead of
 processed.
@@ -173,21 +177,21 @@
 B<This switch is experimental and may change without warnings!>
 
 
-=head3 snippet
+=item B<snippet>
 
 If set, the query is returned in the snippet view template.
 
 B<This parameter is experimental and may change without warnings!>
 
 
-=head3 cutoff
+=item B<cutoff>
 
 If set, the query will be cut off after the matches.
 
 B<This parameter is directly forwarded to the API and may not be supported in the future.>
 
 
-=head3 count
+=item B<count>
 
 If set, the query will be only return the given number of matches,
 in case the API supports it. Will fallback to the default number of matches defined
@@ -196,13 +200,14 @@
 B<This parameter is directly forwarded to the API and may not be supported in the future.>
 
 
-=head3 p
+=item B<p>
 
 If set, the query will page to the given number of pages in the result set.
 Will default to 1.
 
 B<This parameter is directly forwarded to the API and may not be supported in the future.>
 
+=back
 
 
 =head2 match
@@ -217,7 +222,9 @@
 The following parameters are supported.
 
 
-=head3 foundry
+=over 2
+
+=item B<foundry>
 
 Expects a foundry definition for retrieved information.
 If not given, returns all annotations for the match.
@@ -226,22 +233,48 @@
 B<This parameter is experimental and may change without warnings!>
 
 
-=head3 layer
+=item B<layer>
 
-=head3 spans
+Expects a layer definition for retrieved information.
+If not given, returns all annotations for the foundry.
+If given, returns only given layer information for the defined foundry.
 
-true or false
-
-=head3 corpus_id
+B<This parameter is experimental and may change without warnings!>
 
 
-stash value
+=item B<spans>
 
-=head3 doc_id
+Boolean value - either C<true> or C<false> - indicating, whether span information
+(i.e. for tree structures) should be retrieved.
 
-=head3 text_id
+=back
 
-=head3 match_id
+In addition to the given parameters, the following path values are expected.
+
+=over 2
+
+=item B<corpus_id>
+
+The corpus sigle as defined by DeReKo.
+
+
+=item B<doc_id>
+
+The document sigle as defined by DeReKo.
+
+
+=item B<text_id>
+
+The text sigle as defined by DeReKo.
+
+
+=item B<match_id>
+
+The ID of the match, normally generated by the search backend.
+This contains the span of the match in the text and possibly further
+information (like highlights).
+
+=back
 
 
 =head1 COPYRIGHT AND LICENSE
diff --git a/lib/Mojolicious/Plugin/AssetPack/LibSass.pm b/lib/Mojolicious/Plugin/AssetPack/LibSass.pm
deleted file mode 100644
index ef1bffc..0000000
--- a/lib/Mojolicious/Plugin/AssetPack/LibSass.pm
+++ /dev/null
@@ -1,26 +0,0 @@
-package Mojolicious::Plugin::AssetPack::LibSass;
-use Mojo::Base 'Mojolicious::Plugin';
-use CSS::Sass;
-use CSS::Minifier::XS;
-
-sub register {
-  my ($plugin, $mojo) = @_;
-
-  my $sass = CSS::Sass->new;
-
-  # Todo: Check if AssetPack is loaded
-  # Todo: Only minify if necessary
-
-  my $proc = $mojo->asset->preprocessors;
-
-  $proc->remove('scss');
-  $proc->add(
-    scss => sub {
-      my ($as, $text, $file) = @_;
-      $$text = CSS::Minifier::XS::minify($sass->compile($$text));
-    });
-};
-
-1;
-
-__END__
