diff --git a/Changes b/Changes
index 43009a8..3b27f54 100644
--- a/Changes
+++ b/Changes
@@ -5,6 +5,8 @@
 - Remove hidden group from test database
 - Implemented QueryContextRewrite (#755)
 - Replace operation:insertion with operation:injection (#778) 
+- Update VirtualCorpusRewrite Remove Owner (#779)
+- Add source to QueryReferenceRewrite (#783) and VirtualCorpusRewrite (#780).
 
 
 # version 0.75
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 52eb5dc..c7ca653 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/KoralNode.java
@@ -74,11 +74,8 @@
             set = true;
         }
 
-        if (ident != null)
-            identifier = ident.toString();
-
         if (set) {
-            this.rewrites.add("deletion", identifier);
+            this.rewrites.add("deletion", "", ident);
         }
     }
 
diff --git a/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java b/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
index 9521c72..c682e1b 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/QueryReferenceRewrite.java
@@ -93,9 +93,9 @@
             throws KustvaktException {
         JsonNode jsonNode = koralNode.rawNode();
         koralNode.remove("@type",
-                new RewriteIdentifier("@type", jsonNode.at("/@type").asText()));
+                new RewriteIdentifier("@type", "", jsonNode.at("/@type").asText()));
         koralNode.remove("ref",
-                new RewriteIdentifier("ref", jsonNode.at("/ref").asText()));
+                new RewriteIdentifier("ref", "", jsonNode.at("/ref").asText()));
         koralNode.setAll((ObjectNode) qref);
     }
 }
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 2fe7502..1cdbeef 100644
--- a/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
+++ b/src/main/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewrite.java
@@ -99,11 +99,8 @@
             KoralNode koralNode) throws KustvaktException {
         JsonNode jsonNode = koralNode.rawNode();
         String ref = jsonNode.at("/ref").asText();
-        koralNode.remove("ref", new RewriteIdentifier("ref", ref));
-
-        ref = ref.substring(vcOwner.length() + 1, ref.length());
-        koralNode.put("ref", ref);
-//        koralNode.set("ref", ref, new RewriteIdentifier("ref", ref));
+        String newRef = ref.substring(vcOwner.length() + 1, ref.length());
+        koralNode.replace("ref", newRef, new RewriteIdentifier("ref", "", ref));
     }
 
     private void rewriteVC (QueryDO vc, KoralNode koralNode)
@@ -112,10 +109,10 @@
         JsonNode kq = JsonUtils.readTree(koralQuery).at("/collection");
         JsonNode jsonNode = koralNode.rawNode();
         // rewrite
-        koralNode.remove("@type",
-                new RewriteIdentifier("@type", jsonNode.at("/@type").asText()));
+        koralNode.remove("@type", new RewriteIdentifier("@type", "",
+                jsonNode.at("/@type").asText()));
         koralNode.remove("ref",
-                new RewriteIdentifier("ref", jsonNode.at("/ref").asText()));
+                new RewriteIdentifier("ref", "", jsonNode.at("/ref").asText()));
         koralNode.setAll((ObjectNode) kq);
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java b/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
index 7f923d6..dad58bd 100644
--- a/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
+++ b/src/test/java/de/ids_mannheim/korap/misc/KoralNodeTest.java
@@ -29,7 +29,8 @@
         ObjectNode node = JsonUtils.createObjectNode();
         node.put("value_1", "setting_1");
         KoralNode knode = KoralNode.wrapNode(node);
-        knode.remove("value_1", null);
+        knode.remove("value_1",
+                new RewriteIdentifier("value_1", "", "settings_1"));
         assertEquals(knode.rawNode().toString(), "{}");
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/QueryRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/QueryRewriteTest.java
index 524dad5..5a3ee46 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/QueryRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/QueryRewriteTest.java
@@ -25,8 +25,8 @@
                 .request().get();
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
-        assertEquals(node.at("/errors/0/1").asText(),
-                "Query system/examplequery is not found.");
+        assertEquals("Query system/examplequery is not found.",
+                node.at("/errors/0/1").asText());
     }
 
     @Test
@@ -36,8 +36,19 @@
                 .resolveTemplate("q", "[orth=der]{#system-q} Baum").request()
                 .get();
         String ent = response.readEntity(String.class);
-        // System.out.println(ent);
         JsonNode node = JsonUtils.readTree(ent);
+        
+        node = node.at("/query/operands/1/rewrites");
+        assertEquals(3,node.size());
+        assertEquals("Kustvakt", node.at("/0/origin").asText());
+        assertEquals("operation:deletion", node.at("/0/operation").asText());
+        assertEquals("@type", node.at("/0/scope").asText());
+        assertEquals("koral:queryRef", node.at("/0/source").asText());
+
+        assertEquals("ref", node.at("/1/scope").asText());
+        assertEquals("system-q", node.at("/1/source").asText());
+        
+        assertEquals("operation:injection", node.at("/2/operation").asText());
     }
 
     @Test
@@ -53,7 +64,16 @@
         JsonNode node = JsonUtils.readTree(ent);
         assertEquals(node.at("/query/operands/1/@type").asText(),
                 "koral:token");
-        assertEquals(node.at("/query/operands/1/rewrites/0/scope").asText(),
-                "@type(koral:queryRef)");
+        
+        node = node.at("/query/operands/1/rewrites");
+        assertEquals("Kustvakt", node.at("/0/origin").asText());
+        assertEquals("operation:deletion", node.at("/0/operation").asText());
+        assertEquals("@type", node.at("/0/scope").asText());
+        assertEquals("koral:queryRef", node.at("/0/source").asText());
+
+        assertEquals("ref", node.at("/1/scope").asText());
+        assertEquals("dory/dory-q", node.at("/1/source").asText());
+        
+        assertEquals("operation:injection", node.at("/2/operation").asText());
     }
 }
diff --git a/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewriteTest.java b/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewriteTest.java
index b3a308f..1f9c049 100644
--- a/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/rewrite/VirtualCorpusRewriteTest.java
@@ -46,8 +46,9 @@
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
         node = node.at("/collection");
-        assertEquals(node.at("/@type").asText(), "koral:docGroup");
+        assertEquals("koral:docGroup", node.at("/@type").asText());
         assertTrue(node.at("/operands/1/rewrites").isMissingNode());
+        
         testRefCachedVCWithUsername();
         QueryDO vc = dao.retrieveQueryByName("named-vc1", "system");
         dao.deleteQuery(vc);
@@ -68,9 +69,13 @@
         node = node.at("/collection");
         assertEquals(node.at("/@type").asText(), "koral:docGroup");
         node = node.at("/operands/1/rewrites");
-        assertEquals(2, node.size());
-        assertEquals(node.at("/0/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/1/operation").asText(), "operation:injection");
+        
+        assertEquals(1, node.size());
+        assertEquals("koral:rewrite", node.at("/0/@type").asText());
+        assertEquals("Kustvakt", node.at("/0/origin").asText());
+        assertEquals("operation:override", node.at("/0/operation").asText());
+        assertEquals("ref", node.at("/0/scope").asText());
+        assertEquals("system/named-vc1", node.at("/0/source").asText());
     }
 
     @Test
@@ -82,16 +87,23 @@
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
         node = node.at("/collection");
-        assertEquals(node.at("/@type").asText(), "koral:docGroup");
-        assertEquals(node.at("/operands/0/@type").asText(), "koral:doc");
-        assertEquals(node.at("/operands/1/@type").asText(), "koral:doc");
-        assertEquals(node.at("/operands/1/value").asText(), "GOE");
-        assertEquals(node.at("/operands/1/key").asText(), "corpusSigle");
+        assertEquals("koral:docGroup", node.at("/@type").asText());
+        assertEquals("koral:doc", node.at("/operands/0/@type").asText());
+        assertEquals("koral:doc", node.at("/operands/1/@type").asText());
+        assertEquals("GOE", node.at("/operands/1/value").asText());
+        assertEquals("corpusSigle", node.at("/operands/1/key").asText());
         node = node.at("/operands/1/rewrites");
+
         assertEquals(3, node.size());
-        assertEquals(node.at("/0/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/1/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/2/operation").asText(), "operation:injection");
+        assertEquals("operation:deletion", node.at("/0/operation").asText());
+        assertEquals("@type", node.at("/0/scope").asText());
+        assertEquals("koral:docGroupRef", node.at("/0/source").asText());
+
+        assertEquals("operation:deletion", node.at("/1/operation").asText());
+        assertEquals("ref", node.at("/1/scope").asText());
+        assertEquals("system-vc", node.at("/1/source").asText());
+    
+        assertEquals("operation:injection", node.at("/2/operation").asText());
     }
 
     @Test
@@ -105,13 +117,20 @@
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
         node = node.at("/collection");
-        assertEquals(node.at("/@type").asText(), "koral:docGroup");
-        assertEquals(node.at("/operands/0/@type").asText(), "koral:docGroup");
+        assertEquals("koral:docGroup", node.at("/@type").asText());
+        assertEquals("koral:docGroup", node.at("/operands/0/@type").asText());
         node = node.at("/operands/1/rewrites");
+
         assertEquals(3, node.size());
-        assertEquals(node.at("/0/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/1/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/2/operation").asText(), "operation:injection");
+        assertEquals("operation:deletion", node.at("/0/operation").asText());
+        assertEquals("@type", node.at("/0/scope").asText());
+        assertEquals("koral:docGroupRef", node.at("/0/source").asText());
+
+        assertEquals("operation:deletion", node.at("/1/operation").asText());
+        assertEquals("ref", node.at("/1/scope").asText());
+        assertEquals("system/system-vc", node.at("/1/source").asText());
+
+        assertEquals("operation:injection", node.at("/2/operation").asText());
     }
 
     @Test
@@ -126,7 +145,7 @@
         String ent = response.readEntity(String.class);
         JsonNode node = JsonUtils.readTree(ent);
         node = node.at("/collection");
-        assertEquals(node.at("/@type").asText(), "koral:docGroup");
+        assertEquals("koral:docGroup",node.at("/@type").asText());
         node = node.at("/operands/1/rewrites");
         assertEquals(3, node.size());
     }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
index cd5e617..92b0ced 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/SearchPublicMetadataTest.java
@@ -125,11 +125,16 @@
         assertEquals(node.at("/key").asText(), "corpusSigle");
         assertEquals(node.at("/rewrites/0/operation").asText(),
                 "operation:deletion");
-        assertEquals(node.at("/rewrites/0/scope").asText(),
-                "@type(koral:docGroupRef)");
+        assertEquals(node.at("/rewrites/0/scope").asText(), "@type");
+        assertEquals(node.at("/rewrites/0/source").asText(),
+                "koral:docGroupRef");
+        
         assertEquals(node.at("/rewrites/1/operation").asText(),
                 "operation:deletion");
-        assertEquals(node.at("/rewrites/1/scope").asText(), "ref(system-vc)");
+        assertEquals(node.at("/rewrites/1/scope").asText(), "ref");
+        assertEquals(node.at("/rewrites/1/source").asText(), "system-vc");
+        
+        
         assertEquals(node.at("/rewrites/2/operation").asText(),
                 "operation:injection");
     }
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
index 76377a2..1394d30 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/vc/VirtualCorpusReferenceTest.java
@@ -190,9 +190,13 @@
         node = node.at("/collection/operands/1/rewrites");
         assertEquals(3, node.size());
         assertEquals(node.at("/0/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/0/scope").asText(), "@type(koral:docGroupRef)");
+        assertEquals(node.at("/0/scope").asText(), "@type");
+        assertEquals(node.at("/0/source").asText(), "koral:docGroupRef");
+        
         assertEquals(node.at("/1/operation").asText(), "operation:deletion");
-        assertEquals(node.at("/1/scope").asText(), "ref(marlin/published-vc)");
+        assertEquals(node.at("/1/scope").asText(), "ref");
+        assertEquals(node.at("/1/source").asText(), "marlin/published-vc");
+        
         assertEquals(node.at("/2/operation").asText(), "operation:injection");
     }
 
