diff --git a/dev/js/src/match.js b/dev/js/src/match.js
index d3aee67..f6fbd41 100644
--- a/dev/js/src/match.js
+++ b/dev/js/src/match.js
@@ -10,8 +10,9 @@
  */
 define([
   'match/info',
+  'match/reference',
   'util'
-], function (infoClass) {
+], function (infoClass, refClass) {
 
   // Localization values
   var loc   = KorAP.Locale;
diff --git a/dev/js/src/match/reference.js b/dev/js/src/match/reference.js
new file mode 100644
index 0000000..978930c
--- /dev/null
+++ b/dev/js/src/match/reference.js
@@ -0,0 +1,27 @@
+/*
+  author, editor title, subTitle textSigle
+  in corpusAuthor (corpusEditor), corpusTitle, corpusSubTitle, corpusSigle
+  in docAuthor    (docEditor),    docTitle,    docSubTitle,    docSigle
+  publisher
+  reference
+  creationDate
+  foundries
+  keywords
+  textClass
+  textColumn
+  textDomain
+  textType
+  textTypeArt
+  textTypeRef
+  language
+  license
+  pages
+  pubDate
+  layerInfo
+  tokenSource
+  biblEditionStatement
+  fileEditionStatement
+*/
+define(function () {
+  return;
+});
diff --git a/dev/js/src/vc/array.js b/dev/js/src/vc/array.js
index 6473a48..f640ed2 100644
--- a/dev/js/src/vc/array.js
+++ b/dev/js/src/vc/array.js
@@ -1,36 +1,39 @@
 define(function () {
   return [
-    ['author', 'string'],
-    ['biblEditionStatement', 'string'],
-    ['corpusAuthor', 'string'],
-    ['corpusEditor', 'string'],
-    ['corpusSigle', 'string'],
-    ['corpusSubTitle', 'string'],
-    ['corpusTitle', 'string'],
-    ['creationDate', 'date'],
-    ['docAuthor', 'string'],
-    ['docEditor', 'string'],
-    ['docSigle', 'string'],
-    ['docSubTitle', 'string'],
-    ['docTitle', 'string'],
-    ['editor', 'string'],
-    ['fileEditionStatement', 'string'],
-    ['keywords', 'string'],
-    ['language', 'string'],
-    ['license', 'string'],
-    ['pages', 'string'],
-    ['pubDate', 'date'],
-    ['publisher', 'string'],
-    ['pubPlace', 'date'],
-    ['reference', 'string'],
-    ['subTitle', 'string'],
-    ['textClass', 'string'],
-    ['textColumn', 'string'],
-    ['textDomain', 'string'],
-    ['textSigle', 'string'],
-    ['textType', 'string'],
-    ['textTypeArt', 'string'],
-    ['textTypeRef', 'string'],
-    ['title', 'string']
+    // layerInfo                   // stored
+    // tokenSource                 // stored
+    ['author', 'string'],          // text
+    // ['biblEditionStatement', 'string'], // stored
+    ['corpusAuthor', 'string'],    // text
+    // ['corpusEditor', 'string'], // stored
+    ['corpusSigle', 'string'],     // string 
+    ['corpusSubTitle', 'string'],  // text
+    ['corpusTitle', 'string'],     // text
+    ['creationDate', 'date'],      // int
+    ['docAuthor', 'string'],       // text
+    // ['docEditor', 'string'],    // stored
+    ['docSigle', 'string'],        // string
+    ['docSubTitle', 'string'],     // text
+    ['docTitle', 'string'],        // text
+    // ['editor', 'string'],       // stored
+    // ['fileEditionStatement', 'string'], // stored
+    ['foundries', 'string'],       // keywords
+    ['keywords', 'string'],        // keywords
+    ['language', 'string'],        // string
+    ['license', 'string'],         // string
+    // ['pages', 'string'],        // stored
+    ['pubDate', 'date'],           // int
+    // ['publisher', 'string'],    // stored
+    ['pubPlace', 'date'],          // string
+    // ['reference', 'string'],    // stored
+    ['subTitle', 'string'],        // text
+    ['textClass', 'string'],       // keyword
+    ['textColumn', 'string'],      // string
+    ['textDomain', 'string'],      // string
+    ['textSigle', 'string'],       // string
+    ['textType', 'string'],        // string
+    ['textTypeArt', 'string'],     // string
+    ['textTypeRef', 'string'],     // string
+    ['title', 'string']            // text
   ]
 });
diff --git a/lib/Kalamar/API.pm b/lib/Kalamar/API.pm
index 74dc1c4..4401b46 100644
--- a/lib/Kalamar/API.pm
+++ b/lib/Kalamar/API.pm
@@ -61,6 +61,7 @@
   my %param = @_;
 
   # Set context based on parameter
+  # base/s:p
   $url->query({ context => $param{'context'} // 'paragraph' });
 
   # Set path to search
@@ -515,13 +516,20 @@
 # Cleanup single match
 sub _map_match {
   my $x = shift or return;
-  $x->{ID} =~ s/^match\-[^!]+![^-]+-//;
-  $x->{docID} =~ s/^[^_]+_//;
+  $x->{matchID} =~ s/^match\-(?:[^!]+!|[^_]+_)[^-]+-//;
 
+  (
+    $x->{corpusID},
+    $x->{docID},
+    $x->{textID}
+  ) = ($x->{textSigle} =~ /^([^_]+?)_+([^\.]+?)\.(.+?)$/);
+
+  # $x->{docID} =~ s/^[^_]+_//;
   # Legacy: In old versions the text_id was part of the doc_id
-  unless ($x->{textID}) {
-    ($x->{docID}, $x->{textID}) = split '\.', $x->{docID};
-  };
+  #  unless ($x->{textID}) {
+  #    ($x->{docID}, $x->{textID}) = split '\.', $x->{docID};
+  #  };
+
   $x;
 };
 
diff --git a/templates/match.html.ep b/templates/match.html.ep
index f3b5474..c48da55 100644
--- a/templates/match.html.ep
+++ b/templates/match.html.ep
@@ -1,11 +1,15 @@
-% my $match = stash('match') || {}; 
-% my $id = $match->{corpusID} . '-' . $match->{docID} . '.' . $match->{textID} . '#' . $match->{ID};
+% use Mojo::JSON qw/encode_json/;
+% my $match = stash('match') || {};
+% my %match_data = %$match;
+% delete @match_data{qw/snippet startMore endMore field/};
+% my $id = $match->{textSigle} . '#' . $match->{matchID};
 <li data-corpus-id="<%= $match->{corpusID} %>"
     data-doc-id="<%= $match->{docID} %>"
     data-text-id="<%= $match->{textID} %>"
-    data-match-id="<%= $match->{ID} %>"
+    data-match-id="<%= $match->{matchID} %>"
     %# TODO: This needs to be retrieved per match 
-    data-available-info="cnx/c=spans corenlp/ne=tokens corenlp/p=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens tt/l=tokens tt/p=tokens xip/c=spans"
+    data-available-info="<%= $match->{layerInfos} // $match->{layerInfo} // 'cnx/c=spans corenlp/ne=tokens corenlp/p=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens tt/l=tokens tt/p=tokens xip/c=spans' %>"
+    data-info="<%== b(encode_json(\%match_data))->decode->xml_escape %>"
     id="<%= $id %>"\
 <% if (current_route eq 'match') { %> class="active"<% } =%>>
   <div>
@@ -17,9 +21,8 @@
   <p class="ref">\
 <% if ($match->{title}) { %><strong><%= $match->{title} %></strong><% }; %>\
 <%= $match->{author} ? ' ' . loc('by') . ' ' . $match->{author}  : '' %>\
-<% if ($match->{title} || $match->{author}) { %>;<% } %> \
-<%= loc('pubOn') %> <%= $match->{pubDate} %> \
-(<%= $id %>)\
-%# Add textClass
+% if ($match->{pubDate}) {
+ (<time datetime="<%= $match->{pubDate} %>"><%= $match->{pubDate} %></time>)\
+% };
 </p>
 </li>
