diff --git a/Changes b/Changes
index ce8ab1f..6009d6e 100755
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.21 2016-11-10
+0.21 2016-12-06
         - Use textSigle for API communication instead of
           {corpus,doc,text}ID.
         - Added alert to hint helper.
@@ -15,7 +15,8 @@
         - Added download of tree visualizations.
         - Do not show multiple identical annotations
           in table view.
-
+        - Added preliminary support for metadata columns.
+        
 0.20 2016-05-25
         - Improved menu using sliders.
         - Improved menu to make prefixes chooseable,
diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index 4adbfc0..294a3c9 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -47,6 +47,8 @@
   loc.VC_oneCollection = loc.VC_oneCollection || 'one Collection';
   loc.TOGGLE_ALIGN     = loc.TOGGLE_ALIGN     || 'toggle Alignment';
   loc.SHOW_KQ          = loc.SHOW_KQ          || 'show KoralQuery';
+  loc.SHOW_META        = loc.SHOW_META        || 'show Metadata';
+
 
   // Override KorAP.log
   window.alertify = alertifyClass;
@@ -149,9 +151,15 @@
 
     var result = document.getElementById('resultinfo');
     var resultButton = null;
+    var leftButton = null;
     if (result != null) {
+
+      // Add right buttons
       resultButton = result.appendChild(document.createElement('div'));
-      resultButton.classList.add('result', 'button'); 
+      resultButton.classList.add('result', 'button');
+
+      leftButton =  result.appendChild(document.createElement('div'));
+      leftButton.classList.add('result', 'button', 'left');
     };
 
     // There is a koralQuery
@@ -220,30 +228,48 @@
         showKQ.apply();
     };
 
+    // There is more than 0 matches and there is a resultButton
+    if (i > 0) {
 
-    /**
-     * Toggle the alignment (left <=> right)
-     */
-    // querySelector('div.button.right');
-    if (i > 0 && resultButton !== null) {
-      var toggle = document.createElement('a');
-      toggle.setAttribute('title', loc.TOGGLE_ALIGN);
-      // Todo: Reuse old alignment from query
-      var cl = toggle.classList;
-      cl.add('align', 'right', 'button');
-      toggle.addEventListener(
-        'click',
-        function (e) {
-          var ol = document.querySelector('#search > ol');
-          ol.toggleClass("align-left", "align-right");
-          this.toggleClass("left", "right");
-        });
-      toggle.appendChild(document.createElement('span'))
-        .appendChild(document.createTextNode(loc.TOGGLE_ALIGN));
-      resultButton.appendChild(toggle);
+      if (resultButton !== null) {
+
+        /**
+         * Toggle the alignment (left <=> right)
+         */
+        // querySelector('div.button.right');
+        
+        var toggle = document.createElement('a');
+        toggle.setAttribute('title', loc.TOGGLE_ALIGN);
+        // Todo: Reuse old alignment from query
+        var cl = toggle.classList;
+        cl.add('align', 'right', 'button');
+        toggle.addEventListener(
+          'click',
+          function (e) {
+            var ol = document.querySelector('#search > ol');
+            ol.toggleClass("align-left", "align-right");
+            this.toggleClass("left", "right");
+          });
+        toggle.appendChild(document.createElement('span'))
+          .appendChild(document.createTextNode(loc.TOGGLE_ALIGN));
+        resultButton.appendChild(toggle);
+      };
+
+      /*
+      // Not ready yet
+      if (leftButton !== null) {
+        var metaInfo = document.createElement('a');
+        metaInfo.setAttribute('title', loc.SHOW_META)
+
+        var cl = metaInfo.classList;
+        cl.add('show-meta', 'button');
+        metaInfo.appendChild(document.createElement('span'))
+          .appendChild(document.createTextNode(loc.SHOW_META));
+        leftButton.appendChild(metaInfo);
+      };
+      */
     };
 
-
     /**
      * Toggle the Virtual Collection builder
      */
diff --git a/dev/js/src/loc/de.js b/dev/js/src/loc/de.js
index ab443f4..0b57409 100644
--- a/dev/js/src/loc/de.js
+++ b/dev/js/src/loc/de.js
@@ -31,4 +31,5 @@
 
   loc.TOGGLE_ALIGN = 'tausche Textausrichtung';
   loc.SHOW_KQ      = 'zeige KoralQuery';
+  loc.SHOW_META    = 'zeige Metadaten';
 });
diff --git a/dev/scss/main/resultinfo.scss b/dev/scss/main/resultinfo.scss
index e36c6a3..206cd67 100644
--- a/dev/scss/main/resultinfo.scss
+++ b/dev/scss/main/resultinfo.scss
@@ -26,7 +26,7 @@
       cursor: pointer;
       position: relative;
       > span {
-	@include blind;
+	      @include blind;
       }
       box-shadow: $choose-box-shadow;
       @include standard-text-padding;
@@ -35,30 +35,30 @@
       
       @include choose-item;
       border: {
-	top-width: $border-size;
-	bottom-width:  $border-size;
-	top-style: solid;
-	bottom-style: solid;
+	      top-width: $border-size;
+	      bottom-width:  $border-size;
+	      top-style: solid;
+	      bottom-style: solid;
       }
       &:hover {
-	@include choose-hover;
+	      @include choose-hover;
       }
     }
     > a:last-child {
       border: {
-	top-right-radius: $standard-border-radius;
-	bottom-right-radius: $standard-border-radius;
-	right-width: $border-size;
-	right-style: solid;
-      }
+	    top-right-radius: $standard-border-radius;
+	    bottom-right-radius: $standard-border-radius;
+	    right-width: $border-size;
+	    right-style: solid;
+    }
     }
     > a:first-child {
       border: {
-	top-left-radius: $standard-border-radius;
-	bottom-left-radius: $standard-border-radius;
-	left-width: $border-size;
-	left-style: solid;
-      }
+	    top-left-radius: $standard-border-radius;
+	    bottom-left-radius: $standard-border-radius;
+	    left-width: $border-size;
+	    left-style: solid;
+    }
     }
     > a::after {
       font-family: 'FontAwesome';
@@ -72,6 +72,9 @@
     > a.show-kq::after {
       content: $fa-code;
     }
+    > a.show-meta::after {
+      content: $fa-metadata;
+    }
   }
 }
 
@@ -90,6 +93,11 @@
       border-bottom-right-radius: 0;
     }
   }
+  div.result.left {
+    position: absolute;
+    left: 0;
+    bottom: 0;
+  }
 }
 
 #total-results {
diff --git a/dev/scss/util.scss b/dev/scss/util.scss
index 834484b..20651cb 100644
--- a/dev/scss/util.scss
+++ b/dev/scss/util.scss
@@ -234,4 +234,5 @@
 $fa-checked:     "\f046";
 $fa-check:       "\f096";
 $fa-code:        "\f121";
-$fa-marked:      "\f005";
\ No newline at end of file
+$fa-marked:      "\f005";
+$fa-metadata:    "\f067";
\ No newline at end of file
diff --git a/package.json b/package.json
index 31b2843..dfefab8 100755
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
   "license" : "BSD-2-Clause",
-  "version": "0.21.1",
+  "version": "0.21.2",
   "repository" : {
     "type": "git",
     "url": "https://github.com/KorAP/Kalamar.git"
