diff --git a/Changes b/Changes
index ed003ad..222ff09 100755
--- a/Changes
+++ b/Changes
@@ -1,3 +1,7 @@
+0.21 2016-07-04
+	- Use textSigle for API communication instead of
+	  {corpus,doc,text}ID.
+
 0.20 2016-05-25
 	- Improved menu using sliders.
 	- Improved menu to make prefixes chooseable,
diff --git a/dev/js/spec/matchSpec.js b/dev/js/spec/matchSpec.js
index 1af080f..80690e5 100644
--- a/dev/js/spec/matchSpec.js
+++ b/dev/js/spec/matchSpec.js
@@ -23,6 +23,7 @@
   'docID' : 'UUU',
   'textID' : '01912',
   'matchID' : 'p121-122',
+  'textSigle' : 'WPD/UUU/01912',
   'available' : available
 };
 
@@ -137,6 +138,7 @@
   me.setAttribute('data-corpus-id', 'WPD');
   me.setAttribute('data-doc-id', 'FFF');
   me.setAttribute('data-text-id', '01460');
+  me.setAttribute('data-text-sigle', 'WPD/FFF/01460');
   me.setAttribute('data-match-id', 'p119-120');
   me.innerHTML = '<div><div class="snippet">check</div></div><p class="ref">me</p>';
   return me;
@@ -187,6 +189,7 @@
       'docID'     : 'UUU',
       'textID'    : '01912',
       'matchID'   : 'p121-122',
+      'textSigle' : 'WPD/UUU/01912',
       'available' : available
     };
 
@@ -200,9 +203,7 @@
       expect(matchClass.create(match)).toBeTruthy();
 
       var m = matchClass.create(match);
-      expect(m.corpusID).toEqual("WPD");
-      expect(m.docID).toEqual("UUU");
-      expect(m.textID).toEqual("01912");
+      expect(m.textSigle).toEqual("WPD/UUU/01912");
       expect(m.matchID).toEqual("p121-122");
 
       // /corpus/WPD/UUU.01912/p121-122/matchInfo?spans=false&foundry=*
@@ -237,9 +238,7 @@
 
     it('should be initializable by Node', function () {
       var m = matchClass.create(matchElementFactory());
-      expect(m.corpusID).toEqual("WPD");
-      expect(m.docID).toEqual("FFF");
-      expect(m.textID).toEqual("01460");
+      expect(m.textSigle).toEqual("WPD/FFF/01460");
       expect(m.matchID).toEqual("p119-120");
 
       // Spans:
diff --git a/dev/js/src/api.js b/dev/js/src/api.js
index eeddc58..8da1934 100644
--- a/dev/js/src/api.js
+++ b/dev/js/src/api.js
@@ -18,9 +18,12 @@
     // match is a KorAP.Match object
     var url = KorAP.URL;
     url += '/corpus';
+/*
     url += '/' + match.corpusID;
     url += '/' + match.docID;
     url += '/' + match.textID;
+*/
+    url += '/' + match.textSigle;
     url += '/' + match.matchID;
 
     // { spans: true, layer:x, foundry : y}
diff --git a/dev/js/src/match.js b/dev/js/src/match.js
index 88c87fb..07a46ec 100644
--- a/dev/js/src/match.js
+++ b/dev/js/src/match.js
@@ -20,7 +20,8 @@
   loc.SHOWINFO = loc.SHOWINFO || 'Show information';
   loc.CLOSE    = loc.CLOSE    || 'Close';
   
-  var _matchTerms  = ['corpusID', 'docID', 'textID', 'matchID', 'available'];
+  // 'corpusID', 'docID', 'textID'
+  var _matchTerms  = ['textSigle', 'matchID', 'available'];
 
   /**
    * Match object
@@ -57,10 +58,23 @@
 	// Circular reference !!
 	match["_match"] = this;
 
+/*
 	this.corpusID  = match.getAttribute('data-corpus-id'),
 	this.docID     = match.getAttribute('data-doc-id'),
 	this.textID    = match.getAttribute('data-text-id'),
-	this.matchID   = match.getAttribute('data-match-id')
+*/
+	if (match.hasAttribute('data-text-sigle')) {
+	  this.textSigle = match.getAttribute('data-text-sigle')
+	}
+	else {
+	  this.textSigle = match.getAttribute('data-corpus-id') +
+	    '/' +
+	    match.getAttribute('data-doc-id') +
+	    '/' +
+	    match.getAttribute('data-text-id');
+	};
+
+	this.matchID   = match.getAttribute('data-match-id');
 
 	// List of available annotations
 	this.available = match.getAttribute('data-available-info').split(' ');
diff --git a/dev/js/src/vc.js b/dev/js/src/vc.js
index 0bc7284..e551d63 100644
--- a/dev/js/src/vc.js
+++ b/dev/js/src/vc.js
@@ -14,6 +14,8 @@
 /*
   TODO: Disable "and" or "or" in case it's followed
         by an unspecified document
+  TODO: Add "and"-method to root to add further constraints based on match-
+        input (like clicking on a pubDate timestamp in a match)
   TODO: Implement "persistence"-Option,
         injecting the current creation date stamp
   TODO: Implement vec-Type for document-id vectors
diff --git a/lib/Kalamar.pm b/lib/Kalamar.pm
index ee19cd7..5591cc4 100644
--- a/lib/Kalamar.pm
+++ b/lib/Kalamar.pm
@@ -4,7 +4,7 @@
 use Mojo::JSON 'decode_json';
 
 # Minor version - may be patched from package.json
-our $VERSION = '0.20';
+our $VERSION = '0.21';
 
 # TODO: The FAQ-Page has a contact form for new questions
 # TODO: Embed query serialization
diff --git a/package.json b/package.json
index d50b1de..507370d 100755
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
-  "version": "0.20.0",
+  "version": "0.21.0",
   "repository" : {
     "type": "git",
     "url": "https://github.com/KorAP/Kalamar.git"
diff --git a/templates/match.html.ep b/templates/match.html.ep
index 4f3e312..6e24489 100644
--- a/templates/match.html.ep
+++ b/templates/match.html.ep
@@ -2,11 +2,11 @@
 % 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->{matchID} %>"
+% my $text_sigle = $match->{textSigle} // join('/', $match->{corpusID}, $match->{docID}, $match->{textID});
+% my $id = $text_sigle . '#' . $match->{matchID};
+<li data-match-id="<%= $match->{matchID} %>"
+    data-text-sigle="<%= $text_sigle %>"
+
     %# TODO: This needs to be retrieved per match 
     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 %>"
@@ -24,6 +24,6 @@
 % if ($match->{pubDate}) {
  (<time datetime="<%= $match->{pubDate} %>"><%= $match->{pubDate} %></time>)\
 % };
-  <span class="sigle">[<%= $match->{corpusID} %>/<%= $match->{docID} %>/<%= $match->{textID} %>]</span> \
+  <span class="sigle">[<%= $text_sigle %>]</span> \
 </p>
 </li>
