diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java
index 56b0092..970efdd 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/CollectionRewrite.java
@@ -24,8 +24,7 @@
 
 /**
  * CollectionRewrite determines which availability field values are
- * possible for a user with respect to his mean and location of
- * access.
+ * possible for a user with respect to login and location of access.
  * 
  * <br/><br/>
  * KorAP differentiates 3 kinds of access:
@@ -36,14 +35,12 @@
  * </ul>
  * 
  * Each of these accesses corresponds to a regular expression of
- * license
- * formats defined in kustvakt.conf. For a given access, only those
+ * license formats defined in kustvakt.conf. For a given access, only those
  * resources whose availability field matches its regular expression
  * are allowed to be retrieved.
  * 
  * 
  * @author margaretha
- * @last-update 21 Nov 2017
  * @see CorpusAccess
  */
 public class CollectionRewrite implements RewriteTask.RewriteQuery {
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java b/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java
index 0893820..52eb5dc 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java
@@ -114,6 +114,10 @@
         }
     }
 
+    // EM: we agree to use injection instead because it has been introduced to
+    // public in several occasions.
+    // This method is similar to put
+    @Deprecated
     public void set (String name, Object value, RewriteIdentifier ident) {
         if (this.node.isObject()) {
             ObjectNode n = (ObjectNode) this.node;
@@ -127,7 +131,7 @@
             if (ident != null)
                 name = ident.toString();
 
-            this.rewrites.add("insertion", name);
+            this.rewrites.add("injection", name);
         }
     }
 
@@ -136,7 +140,7 @@
             ObjectNode n = (ObjectNode) this.node;
             n.setAll(other);
         }
-        this.rewrites.add("insertion", null);
+        this.rewrites.add("injection", null);
     }
 
     public String get (String name) {
@@ -173,6 +177,11 @@
         private String scope, value;
         private Object source;
 
+        public RewriteIdentifier (String scope) {
+            this.scope = scope;
+        }
+        
+        @Deprecated
         public RewriteIdentifier (String scope, String value) {
             this.scope = scope;
             this.value = value;
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
index 3a64df9..2fe7502 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
@@ -102,7 +102,8 @@
         koralNode.remove("ref", new RewriteIdentifier("ref", ref));
 
         ref = ref.substring(vcOwner.length() + 1, ref.length());
-        koralNode.set("ref", ref, new RewriteIdentifier("ref", ref));
+        koralNode.put("ref", ref);
+//        koralNode.set("ref", ref, new RewriteIdentifier("ref", ref));
     }
 
     private void rewriteVC (QueryDO vc, KoralNode koralNode)
