diff --git a/dev/js/spec/vcSpec.js b/dev/js/spec/vcSpec.js
index 6f2c391..3159101 100644
--- a/dev/js/spec/vcSpec.js
+++ b/dev/js/spec/vcSpec.js
@@ -1857,7 +1857,54 @@
     });
   });
 
+  // Check class method
+  describe('KorAP.VC.checkRewrite', function () {
+    
+    it('should check for simple rewrites', function () {
+      expect(vcClass.checkRewrite(
+        {
+          "@type" : "koral:doc",
+          "rewrites" : [{
+	          "@type" : "koral:rewrite",
+	          "operation" : "operation:modification",
+	          "src" : "querySerializer",
+	          "scope" : "tree"
+          }]
+        }
+      )).toBeTruthy();
 
+      var nested = {
+        "@type" : "koral:docGroup",
+        "operands" : [
+          {
+            "@type" : "koral:doc"
+          },
+          {
+            "@type" : "koral:docGroup",
+            "operands" : [
+              {
+                "@type": "koral:doc"
+              },
+              {
+                "@type": "koral:doc"
+              }
+            ]
+          }
+        ]
+      };
+
+      expect(vcClass.checkRewrite(nested)).toBe(false);
+
+      nested["operands"][1]["operands"][1]["rewrites"] = [{
+	      "@type" : "koral:rewrite",
+	      "operation" : "operation:modification",
+	      "src" : "querySerializer",
+	      "scope" : "tree"
+      }];
+
+      expect(vcClass.checkRewrite(nested)).toBeTruthy();
+    });
+  });
 
   describe('KorAP.Rewrite', function () {
     it('should be initializable', function () {
diff --git a/dev/js/src/init.js b/dev/js/src/init.js
index 81ed093..c77b7b4 100644
--- a/dev/js/src/init.js
+++ b/dev/js/src/init.js
@@ -84,7 +84,7 @@
     /**
      * Replace Virtual Collection field
      */
-    var vcname;
+    var vcname, vcchoose;
     var input = document.getElementById('collection');
     if (input) {
       input.style.display = 'none';
@@ -97,7 +97,9 @@
         currentVC = loc.VC_oneCollection;
       };
 
-      vcname.appendChild(
+      vcchoose = vcname.appendChild(document.createElement('span'));
+
+      vcchoose.appendChild(
         document.createTextNode(
           document.getElementById('collection-name').value || currentVC
         )
@@ -332,13 +334,15 @@
       };
 
       vcname.onclick = vcclick;
+
+      // Click, if the VC should be shown
       if (show['collection']) {
         vcclick.apply();
-      };
+      }
 
-      // Check
-      if (_checkVCrewrite(vcClass)) {
-        console.log("Rewrite!");
+      // else
+      else if (_checkVCrewrite(vcClass)) {
+        vcchoose.classList.add('rewritten');
       };
     };
 
