diff --git a/templates/api-communication.html.ep b/templates/api-communication.html.ep
index 332f3bd..9a6ccb0 100644
--- a/templates/api-communication.html.ep
+++ b/templates/api-communication.html.ep
@@ -1,6 +1,6 @@
 % use JSON::XS;
 
-% if (korap_test_port() && search->api_request) {
+% if (kalamar_test_port() && search->api_request) {
 <pre class="query api" onclick="this.classList.toggle('active')">
   <span>API Response for </span>
   <span style="font-size: 70%"><%= search->api_request %></span>
diff --git a/templates/collections.html.ep b/templates/collections.html.ep
index 7399ea4..3beeba3 100644
--- a/templates/collections.html.ep
+++ b/templates/collections.html.ep
@@ -12,6 +12,6 @@
   </li>
 % };
 </ul>
-% if (korap_test_port()) {
-<p style="font-size: 9pt; padding-left: 1em">Index port: <%= $c->url_for($c->config('KorAP')->{'api-0.1'})->port %></p>
+% if (kalamar_test_port()) {
+<p style="font-size: 9pt; padding-left: 1em">Index port: <%= $c->url_for($c->config('Kalamar')->{'api-0.1'})->port %></p>
 % };
diff --git a/templates/layouts/default.html.ep b/templates/layouts/default.html.ep
index e83d470..f8fbb41 100644
--- a/templates/layouts/default.html.ep
+++ b/templates/layouts/default.html.ep
@@ -50,7 +50,7 @@
   <div id="searchbar">
 %= search_field 'q', id => 'q-field', autofocus => 'autofocus', placeholder => 'Find ...'
     <button type="submit"><i class="fa fa-search"></i></button>
-%   if (korap_test_port()) {
+%   if (kalamar_test_port()) {
     <button type="submit" name="action" value="inspect"><i class="fa fa-code"></i></button>
 %   };
     <i onclick="hint.popUp()" class="fa fa-arrow-circle-down show-hint"></i>
diff --git a/templates/partial/header.html.ep b/templates/partial/header.html.ep
index a386f69..10a8487 100644
--- a/templates/partial/header.html.ep
+++ b/templates/partial/header.html.ep
@@ -1,7 +1,7 @@
 <head>
   <title><%= title %></title>
-%= asset 'korap.css'
-%= asset 'korap.js'
+%= asset 'kalamar.css'
+%= asset 'kalamar.js'
 
   <meta charset="utf-8" />
   <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" />
diff --git a/templates/query.html.ep b/templates/query.html.ep
index 2ffee21..f6e73be 100644
--- a/templates/query.html.ep
+++ b/templates/query.html.ep
@@ -1,7 +1,7 @@
 % use JSON::XS;
 % use Mojo::JSON;
 
-% if (search->query_jsonld && korap_test_port()) {
+% if (search->query_jsonld && kalamar_test_port()) {
 %   my $action;
 %   if (param('action') && param('action') eq 'inspect') {
 %     $action = ' active" style="cursor: default';
diff --git a/templates/tutorial/foundries.html.ep b/templates/tutorial/foundries.html.ep
index f3e9c6e..04f25cc 100644
--- a/templates/tutorial/foundries.html.ep
+++ b/templates/tutorial/foundries.html.ep
@@ -2,7 +2,7 @@
 
 <h2>KorAP-Tutorial: Foundries and Layers</h2>
 
-<p><%= korap_tut_link_to 'Back to Index', '/tutorial' %></p>
+<p><%= kalamar_tut_link_to 'Back to Index', '/tutorial' %></p>
 
 <p>KorAP provides access to multiple levels of annotations originating from multiple resources, so called <i>foundries</i>.</p>
 
diff --git a/templates/tutorial/index.html.ep b/templates/tutorial/index.html.ep
index 19fcb4e..a7739ac 100644
--- a/templates/tutorial/index.html.ep
+++ b/templates/tutorial/index.html.ep
@@ -9,10 +9,10 @@
 <h2>KorAP-Tutorial</h2>
 
 <p>
- <%= korap_tut_link_to 'Poliqarp+-Tutorial', '/tutorial/poliqarp-plus' %>
- <%= korap_tut_link_to 'Foundry Overview', '/tutorial/foundries' %>
- <%= korap_tut_link_to 'Regular Expressions', '/tutorial/regular-expressions' %>
- <%= korap_tut_link_to 'Wildcards', '/tutorial/wildcards' %>
+ <%= kalamar_tut_link_to 'Poliqarp+-Tutorial', '/tutorial/poliqarp-plus' %>
+ <%= kalamar_tut_link_to 'Foundry Overview', '/tutorial/foundries' %>
+ <%= kalamar_tut_link_to 'Regular Expressions', '/tutorial/regular-expressions' %>
+ <%= kalamar_tut_link_to 'Wildcards', '/tutorial/wildcards' %>
 </p>
 
 <!--
@@ -29,7 +29,7 @@
 
 <section id="tut-intro">
   <h3>Frontend Features</h3>
-  <p>This frontend differs to the <%= link_to 'official frontend', 'http://korap.ids-mannheim.de/app/', target => '_blank' %> by providing a serialization view, an integrated tutorial, a comparison view for morphological annotations, and an autocompletion for closed annotations (type in <%= korap_tut_link_to 'foundry prefixes', '/tutorial/foundries' %> like <code>cnx/</code>).</p>
+  <p>This frontend differs to the <%= link_to 'official frontend', 'http://korap.ids-mannheim.de/app/', target => '_blank' %> by providing a serialization view, an integrated tutorial, a comparison view for morphological annotations, and an autocompletion for closed annotations (type in <%= kalamar_tut_link_to 'foundry prefixes', '/tutorial/foundries' %> like <code>cnx/</code>).</p>
 </section>
 
 
@@ -43,33 +43,33 @@
 %# [isnt => 'json_pointer', 'result']
 %# [not_ok => 'json_pointer']
 
-<p><strong>Poliqarp</strong>: Find all occurrences of the lemma &quot;baum&quot; as annotated by the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
-%= korap_tut_query poliqarp => '[base=Baum]', 'tests' => [[is => '/query', 'tokens:tt/l:Baum'],[is => '/request/query/wrap/layer', 'lemma'],[is => '/request/query/wrap/foundry', 'tt'], [ok => '/matches/10']]
+<p><strong>Poliqarp</strong>: Find all occurrences of the lemma &quot;baum&quot; as annotated by the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
+%= kalamar_tut_query poliqarp => '[base=Baum]', 'tests' => [[is => '/query', 'tokens:tt/l:Baum'],[is => '/request/query/wrap/layer', 'lemma'],[is => '/request/query/wrap/foundry', 'tt'], [ok => '/matches/10']]
 
 <p><strong>Poliqarp</strong>: Find all sequences of adjectives as annotated by Treetagger, that are repeated 3 to 5 times in a row.</p>
-%= korap_tut_query poliqarp => '[tt/p=ADJA]{3,5}', 'tests' => [[is => '/query', 'spanRepetition(tokens:tt/p:ADJA{3,5})'], [is => '/request/query/operation', 'operation:repetition'],[is => '/request/query/operands/0/wrap/foundry', 'tt'], [ok => '/matches/5']]
+%= kalamar_tut_query poliqarp => '[tt/p=ADJA]{3,5}', 'tests' => [[is => '/query', 'spanRepetition(tokens:tt/p:ADJA{3,5})'], [is => '/request/query/operation', 'operation:repetition'],[is => '/request/query/operands/0/wrap/foundry', 'tt'], [ok => '/matches/5']]
 
 <p><strong>Cosmas-II</strong>: Find all occurrences of the words &quot;der&quot; and &quot;Baum&quot;, in case they are in a maximum distance of 5 tokens. The order is not relevant.</p>
-%= korap_tut_query cosmas2 => 'der /w5 Baum', 'tests' => [[is => '/query', 'shrink(129: spanDistance({129: tokens:s:der}, {129: tokens:s:Baum}, [(w[0:5], notOrdered, notExcluded)]))'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/@type', 'korap:reference'],[is => '/request/query/operands/0/operands/1/operation', 'operation:class'], [is => '/itemsPerPage', 25], [ok => '/matches/20'], [is => '/matches/4/corpusID', 'WPD'], [is => '/matches/12/corpusID', 'WPD']]
+%= kalamar_tut_query cosmas2 => 'der /w5 Baum', 'tests' => [[is => '/query', 'shrink(129: spanDistance({129: tokens:s:der}, {129: tokens:s:Baum}, [(w[0:5], notOrdered, notExcluded)]))'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/@type', 'korap:reference'],[is => '/request/query/operands/0/operands/1/operation', 'operation:class'], [is => '/itemsPerPage', 25], [ok => '/matches/20'], [is => '/matches/4/corpusID', 'WPD'], [is => '/matches/12/corpusID', 'WPD']]
 
-<p><strong>Cosmas-II</strong>: Find all sequences of a word starting with a &quot;d&quot; (using a wildcard) followed by an adjective as annotated in the mate foundry, followed by the word &quot;Baum&quot; (ignore the case), that is in a sentence element annotated by the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
+<p><strong>Cosmas-II</strong>: Find all sequences of a word starting with a &quot;d&quot; (using a wildcard) followed by an adjective as annotated in the mate foundry, followed by the word &quot;Baum&quot; (ignore the case), that is in a sentence element annotated by the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
 <p><em>Be aware</em>: Minor incompatibilities with implemented languages may be announced with warnings.</p>
-%= korap_tut_query cosmas2 => 'd* MORPH(mate/p=ADJA) $Baum #IN #ELEM(s)', 'tests' => [[ok => '/matches/3'], [is => '/query', 'shrink(130: {131: spanContain({129: <tokens:s />}, {130: spanNext(spanNext(SpanMultiTermQueryWrapper(tokens:s:d*), tokens:mate/p:ADJA), tokens:i:baum)})})'], [is => '/request/query/@type', 'korap:reference'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/operands/0/operands/0/operation', 'operation:position'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operation', 'operation:sequence'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/0/wrap/type', 'type:wildcard'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/key', 'ADJA'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/foundry', 'mate'], [ok => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/2/wrap/caseInsensitive'], [ok => '/matches/5']]
+%= kalamar_tut_query cosmas2 => 'd* MORPH(mate/p=ADJA) $Baum #IN #ELEM(s)', 'tests' => [[ok => '/matches/3'], [is => '/query', 'shrink(130: {131: spanContain({129: <tokens:s />}, {130: spanNext(spanNext(SpanMultiTermQueryWrapper(tokens:s:d*), tokens:mate/p:ADJA), tokens:i:baum)})})'], [is => '/request/query/@type', 'korap:reference'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/operands/0/operands/0/operation', 'operation:position'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operation', 'operation:sequence'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/0/wrap/type', 'type:wildcard'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/key', 'ADJA'], [is => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/1/wrap/foundry', 'mate'], [ok => '/request/query/operands/0/operands/0/operands/1/operands/0/operands/2/wrap/caseInsensitive'], [ok => '/matches/5']]
 
 <p><strong>Poliqarp+</strong>: Find all nominal phrases as annotated using Connexor, that contain an adverb as annotated by OpenNLP, that is annotated as something starting with an &quot;A&quot; using regular expressions in Treetagger.</p>
-%= korap_tut_query poliqarp => 'contains(<cnx/c=np>,{[opennlp/p=ADV & tt/p="A.*"]})', cutoff => 1, 'tests' => [[is => '/query', 'spanContain(<tokens:cnx/c:np />, {1: spanSegment(tokens:opennlp/p:ADV, SpanMultiTermQueryWrapper(tokens:/tt/p:A.*/))})'], [is => '/request/query/operation', 'operation:position'], [is => '/request/query/frames/0', 'frames:contains'], [is => '/request/query/operands/0/foundry', 'cnx'], [is => '/request/query/operands/0/layer', 'c'], [is => '/request/query/operands/0/foundry', 'cnx'], [is => '/request/query/operands/0/key', 'np'], [is => '/request/query/operands/1/operands/0/wrap/operands/0/foundry', 'opennlp'], [is => '/request/query/operands/1/operands/0/wrap/operands/0/layer', 'p'],  [is => '/request/query/operands/1/operands/0/wrap/operands/1/foundry', 'tt'],  [is => '/request/query/operands/1/operands/0/wrap/operands/1/type', 'type:regex'], [is => '/request/query/operands/1/operands/0/wrap/operands/1/key', 'A.*'], [ok => '/matches/5']]
+%= kalamar_tut_query poliqarp => 'contains(<cnx/c=np>,{[opennlp/p=ADV & tt/p="A.*"]})', cutoff => 1, 'tests' => [[is => '/query', 'spanContain(<tokens:cnx/c:np />, {1: spanSegment(tokens:opennlp/p:ADV, SpanMultiTermQueryWrapper(tokens:/tt/p:A.*/))})'], [is => '/request/query/operation', 'operation:position'], [is => '/request/query/frames/0', 'frames:contains'], [is => '/request/query/operands/0/foundry', 'cnx'], [is => '/request/query/operands/0/layer', 'c'], [is => '/request/query/operands/0/foundry', 'cnx'], [is => '/request/query/operands/0/key', 'np'], [is => '/request/query/operands/1/operands/0/wrap/operands/0/foundry', 'opennlp'], [is => '/request/query/operands/1/operands/0/wrap/operands/0/layer', 'p'],  [is => '/request/query/operands/1/operands/0/wrap/operands/1/foundry', 'tt'],  [is => '/request/query/operands/1/operands/0/wrap/operands/1/type', 'type:regex'], [is => '/request/query/operands/1/operands/0/wrap/operands/1/key', 'A.*'], [ok => '/matches/5']]
 
-<p><strong>Poliqarp+</strong>: Find all sentences as annotated by the base foundry that start with a sequence of one token in present tense as annotated by Connexor and the lemma &quot;die&quot; annotated by the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>. Highlight both terms of the sequence.</p>
-%= korap_tut_query poliqarp => 'startswith(<s>, {1:[cnx/m=PRES]}{2:[base=die]})', cutoff => 1, tests => [[is => '/query', 'spanStartsWith(<tokens:s />, spanNext({1: tokens:cnx/m:PRES}, {2: tokens:tt/l:die}))'], [is => '/request/meta/startPage', 1], [is => '/request/query/operation', 'operation:position'], [is => '/request/query/operands/0/@type','korap:span'], [is => '/request/query/operands/1/operands/0/operation', 'operation:class'], [is => '/request/query/operands/1/operands/1/operation', 'operation:class'], [is => '/request/query/operands/1/operands/1/operands/0/wrap/foundry', 'tt'], [ok => '/matches/4']]
+<p><strong>Poliqarp+</strong>: Find all sentences as annotated by the base foundry that start with a sequence of one token in present tense as annotated by Connexor and the lemma &quot;die&quot; annotated by the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>. Highlight both terms of the sequence.</p>
+%= kalamar_tut_query poliqarp => 'startswith(<s>, {1:[cnx/m=PRES]}{2:[base=die]})', cutoff => 1, tests => [[is => '/query', 'spanStartsWith(<tokens:s />, spanNext({1: tokens:cnx/m:PRES}, {2: tokens:tt/l:die}))'], [is => '/request/meta/startPage', 1], [is => '/request/query/operation', 'operation:position'], [is => '/request/query/operands/0/@type','korap:span'], [is => '/request/query/operands/1/operands/0/operation', 'operation:class'], [is => '/request/query/operands/1/operands/1/operation', 'operation:class'], [is => '/request/query/operands/1/operands/1/operands/0/wrap/foundry', 'tt'], [ok => '/matches/4']]
 
 <p><strong>Poliqarp+</strong>: Find all sequences of an article, followed by three to four adjectives and a noun as annotated by the Treetagger foundry, that finish a sentence. Highlight all parts of the sequence.</p>
-%= korap_tut_query poliqarp => 'focus(3:endswith(<s>,{3:[tt/p=ART]{1:{2:[tt/p=ADJA]{3,4}}[tt/p=NN]}}))', cutoff => 1, 'tests' => [[is => '/query', 'shrink(3: spanEndsWith(<tokens:s />, {3: spanNext(tokens:tt/p:ART, {1: spanNext({2: spanRepetition(tokens:tt/p:ADJA{3,4})}, tokens:tt/p:NN)})}))'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/operands/0/frames/0', 'frames:endswith'], [ok => '/matches/3'], [is => '/matches/4/corpusID', 'WPD']]
+%= kalamar_tut_query poliqarp => 'focus(3:endswith(<s>,{3:[tt/p=ART]{1:{2:[tt/p=ADJA]{3,4}}[tt/p=NN]}}))', cutoff => 1, 'tests' => [[is => '/query', 'shrink(3: spanEndsWith(<tokens:s />, {3: spanNext(tokens:tt/p:ART, {1: spanNext({2: spanRepetition(tokens:tt/p:ADJA{3,4})}, tokens:tt/p:NN)})}))'], [is => '/request/query/operation', 'operation:focus'], [is => '/request/query/operands/0/frames/0', 'frames:endswith'], [ok => '/matches/3'], [is => '/matches/4/corpusID', 'WPD']]
 
-<p><strong>Annis</strong>: Find all occurrences of the sequence of two tokens annotated as adverbs by the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
-%= korap_tut_query annis => 'pos="ADV" & pos="ADV" & #1 . #2', 'tests' => [[is => '/query', 'spanNext(tokens:tt/p:ADV, tokens:tt/p:ADV)'], [is => '/request/query/operands/0/wrap/foundry', 'tt'], [is => '/request/query/operands/1/wrap/foundry', 'tt'], [ok => '/matches/5'], [ok => '/matches/15'], [is => '/matches/15/corpusID', 'WPD']]
+<p><strong>Annis</strong>: Find all occurrences of the sequence of two tokens annotated as adverbs by the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>.</p>
+%= kalamar_tut_query annis => 'pos="ADV" & pos="ADV" & #1 . #2', 'tests' => [[is => '/query', 'spanNext(tokens:tt/p:ADV, tokens:tt/p:ADV)'], [is => '/request/query/operands/0/wrap/foundry', 'tt'], [is => '/request/query/operands/1/wrap/foundry', 'tt'], [ok => '/matches/5'], [ok => '/matches/15'], [is => '/matches/15/corpusID', 'WPD']]
 
 <p><strong>CQL</strong>: Find all occurrences of the sequence &quot;der alte Mann&quot;.</p>
-%= korap_tut_query cql => '"der alte Mann"', 'tests' => [[is => '/query', 'spanNext(spanNext(tokens:s:der, tokens:s:alte), tokens:s:Mann)'], [is => '/request/query/operation', 'operation:sequence'],[is => '/request/query/operands/0/wrap/key', 'der'],[is => '/request/query/operands/1/wrap/key', 'alte'],[is => '/request/query/operands/2/wrap/key', 'Mann'], [ok => '/matches/5'], [ok => '/matches/5']]
+%= kalamar_tut_query cql => '"der alte Mann"', 'tests' => [[is => '/query', 'spanNext(spanNext(tokens:s:der, tokens:s:alte), tokens:s:Mann)'], [is => '/request/query/operation', 'operation:sequence'],[is => '/request/query/operands/0/wrap/key', 'der'],[is => '/request/query/operands/1/wrap/key', 'alte'],[is => '/request/query/operands/2/wrap/key', 'Mann'], [ok => '/matches/5'], [ok => '/matches/5']]
 
 </section>
 
diff --git a/templates/tutorial/poliqarp-plus.html.ep b/templates/tutorial/poliqarp-plus.html.ep
index 22478dc..e26f707 100644
--- a/templates/tutorial/poliqarp-plus.html.ep
+++ b/templates/tutorial/poliqarp-plus.html.ep
@@ -2,7 +2,7 @@
 
 <h2>KorAP-Tutorial: Poliqarp+</h2>
 
-<p><%= korap_tut_link_to 'Back to Index', '/tutorial' %></p>
+<p><%= kalamar_tut_link_to 'Back to Index', '/tutorial' %></p>
 
 <p>The following tutorial introduces all features provided by our version of the Poliqarp Query Language and some KorAP specific extensions.</p>
 
@@ -12,15 +12,15 @@
 <p>The atomic elements of Poliqarp queries are segments. Most of the time segments represent words and can be simply queried:</p>
 %# footnote: In the polish national corpus, Poliqarp can join multiple segments when identifying a single word.
 
-%= korap_tut_query poliqarp => 'Baum'
+%= kalamar_tut_query poliqarp => 'Baum'
 
 <p>Sequences of simple segments are expressed using a space delimiter:</p>
 
-%= korap_tut_query poliqarp => 'der Baum'
+%= kalamar_tut_query poliqarp => 'der Baum'
 
 <p>Simple segments always refer to the surface form of a word. To search for surface forms without case sensitivity, you can use the <code>/i</code> flag.</p>
 
-%= korap_tut_query poliqarp => 'laufen/i'
+%= kalamar_tut_query poliqarp => 'laufen/i'
 
 <p>The query above will find all occurrences of <code>laufen</code> irrespective of the capitalization of letters, so <code>wir laufen</code> will be find as well as <code>das Laufen</code> and even <code>&quot;GEH LAUFEN!&quot;</code>.
 </section>
@@ -28,21 +28,21 @@
 <section id="tut-regexp">
   <h3>Regular Expressions</h3>
 
-<p>Segments can also be queried using <%= korap_tut_link_to 'regular expressions', '/tutorial/regular-expressions' %> - by surrounding the segment with double quotes.</p>
+<p>Segments can also be queried using <%= kalamar_tut_link_to 'regular expressions', '/tutorial/regular-expressions' %> - by surrounding the segment with double quotes.</p>
 
-%= korap_tut_query poliqarp => '"l(au|ie)fen"'
+%= kalamar_tut_query poliqarp => '"l(au|ie)fen"'
 
 <p>Regular expression segments will always match the whole segment, meaning the above query will find words starting with <code>l</code> and ending with <code>n</code>. To support subqueries, you can use the <code>/x</code> flag.
 
-%= korap_tut_query poliqarp => '"l(au|ie)fen"/x', cutoff => 1
+%= kalamar_tut_query poliqarp => '"l(au|ie)fen"/x', cutoff => 1
 
 <p>The <code>/x</code> will search for all segments that contain a sequence of characters the regular expression matches. That means the above query is equivalent to:</p>
 
-%= korap_tut_query poliqarp => '".*?l(au|ie)fen.*?"', cutoff => 1
+%= kalamar_tut_query poliqarp => '".*?l(au|ie)fen.*?"', cutoff => 1
 
 <p>The <code>/x</code> flag can also be used in conjuntion with strict expressions to search for substrings:</p>
 
-%= korap_tut_query poliqarp => 'trenn/xi', cutoff => 1
+%= kalamar_tut_query poliqarp => 'trenn/xi', cutoff => 1
 
 <p>The above query will find all occurrences of segments including the string <code>trenn</code> case insensitive, like &quot;Trennung&quot;, &quot;unzertrennlich&quot;, or &quot;Wettrennen&quot;.</p>
 
@@ -52,7 +52,7 @@
 
 <p>You can again apply the <code>/i</code> flag to search case insensitive.</p>
 
-%= korap_tut_query poliqarp => '"l(au|ie)fen"/xi', cutoff => 1
+%= kalamar_tut_query poliqarp => '"l(au|ie)fen"/xi', cutoff => 1
 
 </section>
 
@@ -65,36 +65,36 @@
 
 %# There are more special keys in Poliqarp, but KorAP doesn't provide them.
 
-%= korap_tut_query poliqarp => '[orth=Baum]'
+%= kalamar_tut_query poliqarp => '[orth=Baum]'
 
 <p>The query is thus equivalent to:</p>
 
-%= korap_tut_query poliqarp => 'Baum'
+%= kalamar_tut_query poliqarp => 'Baum'
 
 <p>Complex segments expect simple expressions as values, meaning that the following expression is valid as well:</p>
 
-%= korap_tut_query poliqarp => '[orth="l(au|ie)fen"/xi]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[orth="l(au|ie)fen"/xi]', cutoff => 1
 
-<p>Another special key is <code>base</code>, refering to the lemma annotation of the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>.
+<p>Another special key is <code>base</code>, refering to the lemma annotation of the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>.
 The following query finds all occurrences of segments annotated as the lemma <code>Baum</code> by the default foundry.</p>
 
-%= korap_tut_query poliqarp => '[base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=Baum]'
 
-<p>The third special key is <code>pos</code>, refering to the part-of-speech annotation of the <%= korap_tut_link_to 'default foundry', '/tutorial/foundries' %>.
+<p>The third special key is <code>pos</code>, refering to the part-of-speech annotation of the <%= kalamar_tut_link_to 'default foundry', '/tutorial/foundries' %>.
 The following query finds all attributive adjectives:</p>
 
-%= korap_tut_query poliqarp => '[pos=ADJA]'
+%= kalamar_tut_query poliqarp => '[pos=ADJA]'
 
 <p>Complex segments requesting further token annotations can have keys following the <code>foundry/layer</code> notation.
 For example to find all occurrences of plural words in the mate foundry, you can search using the following query:</p>
 
-%= korap_tut_query poliqarp => '[mate/m=number:pl]'
+%= kalamar_tut_query poliqarp => '[mate/m=number:pl]'
 
 <h4>Negation</h4>
 <p>Negation of terms in complex expressions can be expressed by prepending the equal sign with an exclamation mark or by prepending the expression with one.</p>
 
-%= korap_tut_query poliqarp => '[pos!=ADJA]'
-%= korap_tut_query poliqarp => '[!pos=ADJA]'
+%= kalamar_tut_query poliqarp => '[pos!=ADJA]'
+%= kalamar_tut_query poliqarp => '[!pos=ADJA]'
 
 <blockquote class="warning">
   <p>Beware: Negated complex segments can't be searched solely in the Lucene index.
@@ -105,7 +105,7 @@
 
 <p>A special segment is the empty segment, that matches every word in the index.</p>
 
-%= korap_tut_query poliqarp => '[]'
+%= kalamar_tut_query poliqarp => '[]'
 
 <p>Empty segments are useful to express distances of words by using <a href="tut-syntagmatic-operators-repetitions">repetitions</a>.</p>
 
@@ -122,7 +122,7 @@
 <p>Not all segments are bound to words - some are bound to concepts spanning multiple words, for example noun phrases, sentences, or paragraphs.
 Span segments can be searched for using angular brackets instead of square brackets.</p>
 
-%= korap_tut_query poliqarp => '<xip/c=INFC>'
+%= kalamar_tut_query poliqarp => '<xip/c=INFC>'
 
 <p>Otherwise they can be treated in exactly the same way as simple or complex segments.</p>
 
@@ -135,25 +135,25 @@
 <p>A complex segment can have multiple properties a token has to fulfill.
 For example to search for all words with the surface form <code>laufe</code> (no matter if capitalized or not) that have the lemma <code>lauf</code> (and not, for example, <code>laufen</code>, which would indicate a verb or a gerund), you can search for:</p>
 
-%= korap_tut_query poliqarp => '[orth=laufe/i & base=Lauf]'
+%= kalamar_tut_query poliqarp => '[orth=laufe/i & base=Lauf]'
 
 <p>The ampersand combines multiple properties with a logical AND.
 Terms of the complex segment can be negated as introduced before.</p>
 
-%= korap_tut_query poliqarp => '[orth=laufe/i & base!=Lauf]'
+%= kalamar_tut_query poliqarp => '[orth=laufe/i & base!=Lauf]'
 
 <p>The following query is therefore equivalent:</p>
 
-%= korap_tut_query poliqarp => '[orth=laufe & !base=Lauf]'
+%= kalamar_tut_query poliqarp => '[orth=laufe & !base=Lauf]'
 
 <p>Alternatives can be expressed by using the pipe symbol:</p>
 
-%= korap_tut_query poliqarp => '[base=laufen | base=gehen]'
+%= kalamar_tut_query poliqarp => '[base=laufen | base=gehen]'
 
 <p>All these sub expressions can be grouped using round brackets to form
 complex boolean expressions:</p>
 
-%= korap_tut_query poliqarp => '[(base=laufen | base=gehen) & tt/pos=VVFIN]'
+%= kalamar_tut_query poliqarp => '[(base=laufen | base=gehen) & tt/pos=VVFIN]'
 </section>
 
 
@@ -165,19 +165,19 @@
 <p>Sequences can be used to search for segments in order.
 For example to search for the word &quot;alte&quot; preceded by &quot;der&quot; and followed by &quot;Mann&quot;, you can simple search for the sequence of simple expressions separated by whitespaces.</p>
 
-%= korap_tut_query poliqarp => 'der alte Mann'
+%= kalamar_tut_query poliqarp => 'der alte Mann'
 
 <p>However, you can obviously search using complex segments as well:</p>
 
-%= korap_tut_query poliqarp => '[orth=der][orth=alte][orth=Mann]'
+%= kalamar_tut_query poliqarp => '[orth=der][orth=alte][orth=Mann]'
 
 <p>Now you may see the benefit of the empty segment to search for words you don't know:</p>
 
-%= korap_tut_query poliqarp => '[orth=der][][orth=Mann]'
+%= kalamar_tut_query poliqarp => '[orth=der][][orth=Mann]'
 
 <p>You are also able to mix segments and spans in sequences, for example to search for the word &quot;Der&quot; at the beginning of a sentence (which can be interpreted as the first word after the end of a sentence).</p>
 
-%= korap_tut_query poliqarp => '<s>[orth=Der]'
+%= kalamar_tut_query poliqarp => '<s>[orth=Der]'
 
 <h4>Groups</h4>
 
@@ -188,52 +188,52 @@
 You already have seen that you can search for both sequences of
 <code>der alte Mann</code> and <code>der junge Mann</code> by typing in:</p>
 
-%= korap_tut_query poliqarp => 'der [orth=alte | orth=junge] Mann'
+%= kalamar_tut_query poliqarp => 'der [orth=alte | orth=junge] Mann'
 
 <p>However, this formulation has problems in case you want to search for alternations of sequences rather than terms. If you want to search for both sequences of <code>dem jungen Mann</code> and <code>der alte Mann</code> you can use syntagmatic alternations and groups:</p>
 
-%= korap_tut_query poliqarp => '(dem jungen | der alte) Mann'
+%= kalamar_tut_query poliqarp => '(dem jungen | der alte) Mann'
 
 <p>The pipe symbol works the same way as with the paradigmatic alternation, but supports sequences of different length as operands. The above query for <code>der alte Mann</code> and <code>der junge Mann</code> can therefor be reformulated as:</p>
 
-%= korap_tut_query poliqarp => 'der (junge | alte) Mann'
+%= kalamar_tut_query poliqarp => 'der (junge | alte) Mann'
 
 <h4 id="tut-syntagmatic-operators-repetitions">Repetition</h4>
 
-<p>Repetitions in Poliqarp are realized as in <%= korap_tut_link_to 'regular expressions', '/tutorial/regular-expressions' %>, by giving quantifieres in curly brackets.</p>
+<p>Repetitions in Poliqarp are realized as in <%= kalamar_tut_link_to 'regular expressions', '/tutorial/regular-expressions' %>, by giving quantifieres in curly brackets.</p>
 <p>To search for a sequence of three occurrences of <code>der</code>, you can formulate your query in any of the following ways - they will have the same results:</p>
 
-%= korap_tut_query poliqarp => 'der der der'
-%= korap_tut_query poliqarp => 'der{3}'
-%= korap_tut_query poliqarp => '[orth=der]{3}'
+%= kalamar_tut_query poliqarp => 'der der der'
+%= kalamar_tut_query poliqarp => 'der{3}'
+%= kalamar_tut_query poliqarp => '[orth=der]{3}'
 
 <p>In difference to regular expressions, the repetition operation won't refer to the match but to the pattern given. So the following query will give you a sequence of three words having the term <code>der</code> as a substring - but the words don't have to be identical. The following query for example will match a sequence of three words all starting with <code>la</code>.</p>
 
-%= korap_tut_query poliqarp => '"la.*?"/i{3}'
+%= kalamar_tut_query poliqarp => '"la.*?"/i{3}'
 
 <p>The same is true for annotations. The following query will find a sequence of 3 to 4 adjectives as annotated by the TreeTagger foundry, that is preceded by the lemma <code>ein</code> as annotated by the default foundry and followed by a noun as annotated by the XIP foundry. The adjectives do not have to be identical though.</p>
 
-%= korap_tut_query poliqarp => '[base=ein][tt/p=ADJA]{3,4}[xip/p=NOUN]'
+%= kalamar_tut_query poliqarp => '[base=ein][tt/p=ADJA]{3,4}[xip/p=NOUN]'
 
 <p>In addition to numbered quantities, it is also possible to pass repetition information as Kleene operators <code>?</code>, <code>+</code>, and <code>+</code>.</p>
 
 <p>To search for a sequence of the lemma <code>der</code> followed by the lemma <code>baum</code> as annotated by the base foundry, but allowing an optional adjective as annotated by the TreeTagger foundry in between, you can search for:</p>
 
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA]?[base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA]?[base=Baum]'
 
 <p>This query is identical to the numbered quantification of:</p>
 
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA]{,1}[base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA]{,1}[base=Baum]'
 
 <p>To search for the same sequences but with unlimited adjectives as annotated by the TreeTagger foundry in between, you can use the Kleene Star:</p>
 
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA]*[base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA]*[base=Baum]'
 
 <p>And to search for this sequence but with at least one adjective in between, you can use the Kleene Plus (all queries are identical):</p>
 
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA]+[base=Baum]', cutoff => 1
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA]{1,}[base=Baum]', cutoff => 1
-%= korap_tut_query poliqarp => '[base=die][tt/pos=ADJA][tt/pos=ADJA]*[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA]+[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA]{1,}[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][tt/pos=ADJA][tt/pos=ADJA]*[base=Baum]', cutoff => 1
 
 <blockquote class="warning">
   <p>Repetition operators like <code>{,4}</code>, <code>?</code>, and <code>*</code> make segments or groups of segments optional. In case these queries are used separated and not in a sequence (and there are no mandatory segments in the query), you will be warned by the system that your query won't be treated as optional.</p>
@@ -242,16 +242,16 @@
 
 <p>Repetition can also be used to express distances between segments by using <a href="#empty-segments">empty segments</a>.</p>
 
-%= korap_tut_query poliqarp => '[base=die][][base=Baum]'
-%= korap_tut_query poliqarp => '[base=die][]{2}[base=Baum]', cutoff => 1
-%= korap_tut_query poliqarp => '[base=die][]{2,}[base=Baum]', cutoff => 1
-%= korap_tut_query poliqarp => '[base=die][]{,3}[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][][base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=die][]{2}[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][]{2,}[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][]{,3}[base=Baum]', cutoff => 1
 
 <p>Of course, Kleene operators can be used with empty segments as well.</p>
 
-%= korap_tut_query poliqarp => '[base=die][]?[base=Baum]'
-%= korap_tut_query poliqarp => '[base=die][]*[base=Baum]', cutoff => 1
-%= korap_tut_query poliqarp => '[base=die][]+[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][]?[base=Baum]'
+%= kalamar_tut_query poliqarp => '[base=die][]*[base=Baum]', cutoff => 1
+%= kalamar_tut_query poliqarp => '[base=die][]+[base=Baum]', cutoff => 1
 
 <h4>Position</h4>
 
@@ -259,23 +259,23 @@
 <p>Positional operators compare two matches of subqueries and will match, in case a certain condition regarding the position of both is true.</p>
 <p>The <code>contains()</code> operation will match, when a second subquery matches inside the span of a first subquery.</p>
 
-%= korap_tut_query poliqarp => 'contains(<s>, [tt/p=KOUS])', cutoff => 1
+%= kalamar_tut_query poliqarp => 'contains(<s>, [tt/p=KOUS])', cutoff => 1
 
 <p>The <code>startsWith()</code> operation will match, when a second subquery matches at the beginning of the span of a first subquery.</p>
 
-%= korap_tut_query poliqarp => 'startsWith(<s>, [tt/p=KOUS])', cutoff => 1
+%= kalamar_tut_query poliqarp => 'startsWith(<s>, [tt/p=KOUS])', cutoff => 1
 
 <p>The <code>endsWith()</code> operation will match, when a second subquery matches at the end of the span of a first subquery.</p>
 
-%= korap_tut_query poliqarp => 'endsWith(<s>, [opennlp/p=NN])', cutoff => 1
+%= kalamar_tut_query poliqarp => 'endsWith(<s>, [opennlp/p=NN])', cutoff => 1
 
 <p>The <code>matches()</code> operation will match, when a second subquery has the exact same span of a first subquery.</p>
 
-%= korap_tut_query poliqarp => 'matches(<s>,[tt/p=CARD][tt/p="N.*"])', cutoff => 1
+%= kalamar_tut_query poliqarp => 'matches(<s>,[tt/p=CARD][tt/p="N.*"])', cutoff => 1
 
 <p>The <code>overlaps()</code> operation will match, when a second subquery has an overlapping span with the first subquery.</p>
 
-%= korap_tut_query poliqarp => 'overlaps([][tt/p=ADJA],{1:[tt/p=ADJA]}[])', cutoff => 1
+%= kalamar_tut_query poliqarp => 'overlaps([][tt/p=ADJA],{1:[tt/p=ADJA]}[])', cutoff => 1
 
 <blockquote class="warning">
   <p>Positional operators are still experimental and may change in certain aspects in the future (although the behaviour defined is intended to be stable). There is also known incorrect behaviour which will be corrected in future versions.</p>
@@ -298,9 +298,9 @@
 Classes can be used to refer to sub matches in a query, similar to captures in regular expressions.
 In Poliqarp+ classes have multiple purposes, with highlighting being the most intuitive one:</p>
 
-%= korap_tut_query poliqarp => 'der {1:{2:[]} Mann}'
+%= kalamar_tut_query poliqarp => 'der {1:{2:[]} Mann}'
 
-%#= korap_tut_query poliqarp => 'der {1:{2:[]{1,4}} {3:Baum}} {4:[]}'
+%#= kalamar_tut_query poliqarp => 'der {1:{2:[]{1,4}} {3:Baum}} {4:[]}'
 
 <p>In KorAP classes can be defined from 1 to 128. In case a class number is dismissed, the class defaults to the class number 1: <code>{...}</code> is equal to <code>{1:...}</code>.</p>
 
@@ -308,24 +308,24 @@
 
 <p>Based on classes, matches may be modified. The <code>focus()</code> operator restricts the span of a match to the boundary of a certain class.</p>
 
-%= korap_tut_query poliqarp => 'focus(der {Baum})'
+%= kalamar_tut_query poliqarp => 'focus(der {Baum})'
 
 <p>The query above will search for the sequence <code>der Baum</code> but the match will be limited to <code>Baum</code>.
 You can think of <code>der</code> in this query as a positive look-behind zero-length assertion in regular expressions.</p>
 
 <p>But focus is way more useful if you are searching for matches without knowing the surface form. For example, to find all terms between the words &quot;der&quot; and &quot;Mann&quot; you can search:</p>
 
-%= korap_tut_query poliqarp => 'focus(der {[]} Mann)'
+%= kalamar_tut_query poliqarp => 'focus(der {[]} Mann)'
 
 <p>This will limit the match to all interesting terms in between &quot;der&quot; and &quot;Mann&quot;. Or you may want to search for all words following the sequence &quot;der alte und&quot; immediately:</p>
 
-%= korap_tut_query poliqarp => 'focus(der alte und {[]})'
+%= kalamar_tut_query poliqarp => 'focus(der alte und {[]})'
 
 <!--
 <p><code>focus()</code> is especially useful if you are searching for matches in certain areas, for example in quotes using positional operators.
 While not being interested in the whole quote as a match, you can focus on what's really relevant to you.</p>
 
-%= korap_tut_query poliqarp => 'focus(1:contains(er []{,10} sagte, 1{Baum}))'
+%= kalamar_tut_query poliqarp => 'focus(1:contains(er []{,10} sagte, 1{Baum}))'
 -->
 
 <p>In case a class number is dismissed, the focus operator defaults to the class number 1: <code>focus(...)</code> is equal to <code>focus(1: ...)</code>.</p>
diff --git a/templates/tutorial/regular-expressions.html.ep b/templates/tutorial/regular-expressions.html.ep
index 3f15598..4012089 100644
--- a/templates/tutorial/regular-expressions.html.ep
+++ b/templates/tutorial/regular-expressions.html.ep
@@ -2,7 +2,7 @@
 
 <h2>KorAP-Tutorial: Regular Expressions</h2>
 
-<p><%= korap_tut_link_to 'Back to Index', '/tutorial' %></p>
+<p><%= kalamar_tut_link_to 'Back to Index', '/tutorial' %></p>
 
 <p>The support for regular expressions in KorAP may be backend dependend. Below you can find the description for the respective backends.</p>
 
diff --git a/templates/tutorial/wildcards.html.ep b/templates/tutorial/wildcards.html.ep
index 39f6fa1..5086f78 100644
--- a/templates/tutorial/wildcards.html.ep
+++ b/templates/tutorial/wildcards.html.ep
@@ -2,7 +2,7 @@
 
 <h2>KorAP-Tutorial: Wildcards</h2>
 
-<p><%= korap_tut_link_to 'Back to Index', '/tutorial' %></p>
+<p><%= kalamar_tut_link_to 'Back to Index', '/tutorial' %></p>
 
 <p>The support for wildcard terms in KorAP may be backend dependend. Below you can find the description for the respective backends.</p>
 
