Cleanup and initial position frames
diff --git a/src/test/resources/queries/benchmark1.jsonld b/src/test/resources/queries/benchmark1.jsonld
index 79403b4..dccdeef 100644
--- a/src/test/resources/queries/benchmark1.jsonld
+++ b/src/test/resources/queries/benchmark1.jsonld
@@ -3,7 +3,7 @@
     "query": {
 	"@type": "korap:group", 
 	"operation": "operation:position", 
-	"frame": "frame:contains",
+	"frames": ["frames:isAround"],
 	"operands": [
 	    {
 		"@type": "korap:span",
diff --git a/src/test/resources/queries/benchmark1b.jsonld b/src/test/resources/queries/benchmark1b.jsonld
index aa1e729..5ee9791 100644
--- a/src/test/resources/queries/benchmark1b.jsonld
+++ b/src/test/resources/queries/benchmark1b.jsonld
@@ -3,7 +3,7 @@
     "query": {
 	"@type": "korap:group", 
 	"operation": "operation:position", 
-	"frame": "frame:contains",
+	"frames": ["frames:isAround"],
 	"operands": [
 	    {
 		"@type": "korap:span",
@@ -14,7 +14,7 @@
 	    {
 		"@type" : "korap:group",
 		"operation" : "operation:class",
-		"class" : 1,
+		"classOut" : 1,
 		"operands" : [
 		    {
 			"@type": "korap:token",
diff --git a/src/test/resources/queries/benchmark5-submatch.jsonld b/src/test/resources/queries/benchmark5-submatch.jsonld
index a9cad71..885b458 100644
--- a/src/test/resources/queries/benchmark5-submatch.jsonld
+++ b/src/test/resources/queries/benchmark5-submatch.jsonld
@@ -13,14 +13,13 @@
 		}
 	    },
 	    {
-		"@type" : "korap:group",
-		"operation" : "operation:submatch",
+		"@type" : "korap:reference",
 		"classRef" : [2],
 		"operands" : [
 		    {
 			"@type" : "korap:group",
 			"operation" : "operation:class",
-			"class" : 1,
+			"classOut" : 1,
 			"operands" : [
 			    {
 				"@type": "korap:group", 
@@ -37,7 +36,7 @@
 				    {
 					"@type" : "korap:group",
 					"operation" : "operation:class",
-					"class" : 2,
+					"classOut" : 2,
 					"operands" : [
 					    {
 						"@type": "korap:token",
diff --git a/src/test/resources/queries/benchmark5.jsonld b/src/test/resources/queries/benchmark5.jsonld
index 332d23f..1f64527 100644
--- a/src/test/resources/queries/benchmark5.jsonld
+++ b/src/test/resources/queries/benchmark5.jsonld
@@ -15,7 +15,7 @@
 	    {
 		"@type" : "korap:group",
 		"operation" : "operation:class",
-		"class" : 1,
+		"classOut" : 1,
 		"operands" : [
 		    {
 			"@type": "korap:group", 
@@ -32,7 +32,7 @@
 			    {
 				"@type" : "korap:group",
 				"operation" : "operation:class",
-				"class" : 2,
+				"classOut" : 2,
 				"operands" : [
 				    {
 					"@type": "korap:token",
diff --git a/src/test/resources/queries/bsp-bug.jsonld b/src/test/resources/queries/bsp-bug.jsonld
index 33bb904..e46374e 100644
--- a/src/test/resources/queries/bsp-bug.jsonld
+++ b/src/test/resources/queries/bsp-bug.jsonld
@@ -1,8 +1,7 @@
 {
   "@context": "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
-    "@type": "korap:group",
-    "operation" : "operation:submatch",
+    "@type": "korap:reference",
     "classRef" : [0],
     "operands" : []
   },
diff --git a/src/test/resources/queries/bsp-class-2.jsonld b/src/test/resources/queries/bsp-class-2.jsonld
index 162070f..4cccfa5 100644
--- a/src/test/resources/queries/bsp-class-2.jsonld
+++ b/src/test/resources/queries/bsp-class-2.jsonld
@@ -3,7 +3,7 @@
     "query" : {
       "@type" : "korap:group",
       "operation" : "operation:class",
-      "class" : 0,
+      "classOut" : 0,
       "operands" : [ {
         "@type" : "korap:token",
         "wrap" : {
diff --git a/src/test/resources/queries/bsp-class.jsonld b/src/test/resources/queries/bsp-class.jsonld
index b4fd65e..f095a47 100644
--- a/src/test/resources/queries/bsp-class.jsonld
+++ b/src/test/resources/queries/bsp-class.jsonld
@@ -3,7 +3,7 @@
   "query":{
     "@type":"korap:group",
     "operation" : "operation:class",
-   "class":1,
+   "classOut":1,
     "operands":[
       {
 	"@type":"korap:group",
diff --git a/src/test/resources/queries/bsp-fail1.jsonld b/src/test/resources/queries/bsp-fail1.jsonld
index 7425bc1..fc6fb51 100644
--- a/src/test/resources/queries/bsp-fail1.jsonld
+++ b/src/test/resources/queries/bsp-fail1.jsonld
@@ -2,7 +2,7 @@
   "@context": "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
     "query": {
         "@type": "korap:group", 
-        "frame": "frame:contains", 
+        "frames": ["frame:isAround"], 
         "operation": "operation:position"
         "operands": [
             {
diff --git a/src/test/resources/queries/bsp-fail2.jsonld b/src/test/resources/queries/bsp-fail2.jsonld
index dc4ace2..96a3bb5 100644
--- a/src/test/resources/queries/bsp-fail2.jsonld
+++ b/src/test/resources/queries/bsp-fail2.jsonld
@@ -3,7 +3,7 @@
   "query": {
     "@type": "korap:group", 
     "operation": "operation:position",
-    "frame": "frame:contains", 
+    "frames": ["frames:isAround"], 
     "operands": [
       {
         "@type": "korap:span", 
diff --git a/src/test/resources/queries/bsp-startswith.json b/src/test/resources/queries/bsp-startswith.json
index c986a5a..95df8b9 100644
--- a/src/test/resources/queries/bsp-startswith.json
+++ b/src/test/resources/queries/bsp-startswith.json
@@ -1 +1,13 @@
-{"@context":{"korap":"http://korap.ids-mannheim.de/ns/query","@language":"de","operands":{"@id":"korap:operands","@container":"@list"},"relation":{"@id":"korap:relation","@type":"korap:relation#types"},"class":{"@id":"korap:class","@type":"xsd:integer"},"query":"korap:query","filter":"korap:filter","meta":"korap:meta"},"query":{"@type":"korap:group","relation":"position","position":"startswith","operands":[{"@type":"korap:element","@value":"s"},{"@type":"korap:sequence","operands":[{"@type":"korap:group","class":"0","operands":[{"@type":"korap:token","@value":{"@type":"korap:term","@value":"tt_p:ADJA","relation":"="}}]},{"@type":"korap:token","@value":{"@type":"korap:term","@value":"mate_p:NN","relation":"="}}]}]},"meta":[{"@type":"korap:meta-filter","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"A00"}},{"@type":"korap:meta-extend","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"A01"}}],"startPage":1,"count":50,"context":{"left":["token",6],"right":["token",6]}}
+{
+  "@context":"http://korap.ids-mannheim.de/ns/query/context.json.ld",
+  "query":{
+    "@type":"korap:group",
+    "relation":"position",
+    "frames":[
+      "frames:startsWith"
+    ],
+    "operands":[
+      {
+	"@type":"korap:element",
+	"@value":"s"
+      },{"@type":"korap:sequence","operands":[{"@type":"korap:group","class":"0","operands":[{"@type":"korap:token","@value":{"@type":"korap:term","@value":"tt_p:ADJA","relation":"="}}]},{"@type":"korap:token","@value":{"@type":"korap:term","@value":"mate_p:NN","relation":"="}}]}]},"meta":[{"@type":"korap:meta-filter","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"A00"}},{"@type":"korap:meta-extend","@value":{"@type":"korap:term","@field":"korap:field#corpusID","@value":"A01"}}],"startPage":1,"count":50,"context":{"left":["token",6],"right":["token",6]}}
diff --git a/src/test/resources/queries/bsp10.jsonld b/src/test/resources/queries/bsp10.jsonld
index 643edc3..384175d 100644
--- a/src/test/resources/queries/bsp10.jsonld
+++ b/src/test/resources/queries/bsp10.jsonld
@@ -1,105 +1,5 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
     "@type": "korap:group", 
     "operation" : "operation:sequence",
diff --git a/src/test/resources/queries/bsp12.jsonld b/src/test/resources/queries/bsp12.jsonld
index 4db4b95..6b7a7b5 100644
--- a/src/test/resources/queries/bsp12.jsonld
+++ b/src/test/resources/queries/bsp12.jsonld
@@ -1,109 +1,9 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
     "@type": "korap:group", 
     "operation": "operation:position", 
-    "frame": "frame:contains",
+    "frames": ["frames:isAround"],
     "operands": [
       {
         "@type": "korap:span", 
diff --git a/src/test/resources/queries/bsp13.jsonld b/src/test/resources/queries/bsp13.jsonld
index bb177ee..879fbf5 100644
--- a/src/test/resources/queries/bsp13.jsonld
+++ b/src/test/resources/queries/bsp13.jsonld
@@ -1,108 +1,8 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
     "@type": "korap:group", 
-    "frame": "frame:startswith", 
+    "frames": ["frames:startsWith", "frames:alignsLeft", "frames:matches"], 
     "operation": "operation:position",
     "operands": [
       {
diff --git a/src/test/resources/queries/bsp13b.jsonld b/src/test/resources/queries/bsp13b.jsonld
index 6a4b19e..077aeff 100644
--- a/src/test/resources/queries/bsp13b.jsonld
+++ b/src/test/resources/queries/bsp13b.jsonld
@@ -1,108 +1,8 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
     "@type": "korap:group", 
-    "frame": "frame:startswith", 
+    "frames": ["frames:startsWith", "frames:alignsLeft", "frames:matches"],
     "operation": "operation:position",
     "operands": [
       {
diff --git a/src/test/resources/queries/bsp17.jsonld b/src/test/resources/queries/bsp17.jsonld
index 2df7268..8d9eca8 100644
--- a/src/test/resources/queries/bsp17.jsonld
+++ b/src/test/resources/queries/bsp17.jsonld
@@ -1,109 +1,9 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
     "@type": "korap:group", 
     "operation": "operation:position",
-    "frame": "frame:within", 
+    "frames": ["frames:isWithin"], 
     "operands": [
       {
         "@type": "korap:span", 
diff --git a/src/test/resources/queries/bsp18.jsonld b/src/test/resources/queries/bsp18.jsonld
index 99afb29..f0c2fc2 100644
--- a/src/test/resources/queries/bsp18.jsonld
+++ b/src/test/resources/queries/bsp18.jsonld
@@ -13,7 +13,7 @@
     "operands" : [ {
       "@type" : "korap:group",
       "operation" : "operation:class",
-      "class" : 1,
+      "classOut" : 1,
       "operands" : [ {
         "@type" : "korap:token",
         "wrap" : {
diff --git a/src/test/resources/queries/bsp3.jsonld b/src/test/resources/queries/bsp3.jsonld
index 0e76838..b662b72 100644
--- a/src/test/resources/queries/bsp3.jsonld
+++ b/src/test/resources/queries/bsp3.jsonld
@@ -1,114 +1,13 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
-    "@type": "korap:group", 
-    "operation": "operation:submatch", 
+    "@type": "korap:reference", 
     "classRef": [1],
     "operands": [
       {
         "@type": "korap:group", 
         "operation" : "operation:class",
-        "class": 1, 
+        "classOut": 1, 
         "operands": [
           {
             "@type": "korap:token", 
diff --git a/src/test/resources/queries/bsp4.jsonld b/src/test/resources/queries/bsp4.jsonld
index 3a0c3c4..6cea948 100644
--- a/src/test/resources/queries/bsp4.jsonld
+++ b/src/test/resources/queries/bsp4.jsonld
@@ -1,108 +1,7 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
-    "@type": "korap:group", 
-    "operation": "operation:submatch", 
+    "@type": "korap:reference", 
     "classRef": [1],
     "operands": [
       {
@@ -112,7 +11,7 @@
           {
             "@type": "korap:group", 
 	    "operation":"operation:class",
-            "class": 1, 
+            "classOut": 1, 
             "operands": [
               {
                 "@type": "korap:token", 
diff --git a/src/test/resources/queries/bsp5.jsonld b/src/test/resources/queries/bsp5.jsonld
index bebc438..b1dc6d8 100644
--- a/src/test/resources/queries/bsp5.jsonld
+++ b/src/test/resources/queries/bsp5.jsonld
@@ -1,108 +1,7 @@
 {
-  "@context" : {
-    "korap" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/",
-    "query" : "korap:query",
-    "meta" : "korap:meta",
-    "collections" : {
-      "@id" : "korap:collections",
-      "@container" : "@list"
-    },
-    "token" : "korap:token/",
-    "distance" : "korap:distance/",
-    "boundary" : "korap:boundary/",
-    "group" : "korap:group/",
-    "span" : "korap:span/",
-    "term" : "korap:term/",
-    "termGroup" : "korap:termGroup/",
-    "wrap" : "token:wrap",
-    "operation" : {
-      "@id" : "group:operation/",
-      "@type" : "@id"
-    },
-    "class" : {
-      "@id" : "group:class",
-      "@type" : "xsd:integer"
-    },
-    "operands" : {
-      "@id" : "group:operands",
-      "@container" : "@list"
-    },
-    "frame" : {
-      "@id" : "group:frame/",
-      "@type" : "@id"
-    },
-    "classRef" : {
-      "@id" : "group:classRef",
-      "@type" : "xsd:integer"
-    },
-    "spanRef" : {
-      "@id" : "group:spanRef",
-      "@type" : "xsd:integer"
-    },
-    "classRefOp" : {
-      "@id" : "group:classRefOp",
-      "@type" : "@id"
-    },
-    "min" : {
-      "@id" : "boundary:min",
-      "@type" : "xsd:integer"
-    },
-    "max" : {
-      "@id" : "boundary:max",
-      "@type" : "xsd:integer"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "distances" : {
-      "@id" : "group:distances",
-      "@container" : "@list"
-    },
-    "inOrder" : {
-      "@id" : "group:inOrder",
-      "@type" : "xsd:boolean"
-    },
-    "exclude" : {
-      "@id" : "group:exclude",
-      "@type" : "xsd:boolean"
-    },
-    "key" : {
-      "@id" : "korap:key",
-      "@type" : "xsd:string"
-    },
-    "foundry" : {
-      "@id" : "korap:foundry",
-      "@type" : "xsd:string"
-    },
-    "layer" : {
-      "@id" : "korap:layer",
-      "@type" : "xsd:string"
-    },
-    "value" : {
-      "@id" : "korap:value",
-      "@type" : "xsd:string"
-    },
-    "caseInsensitive" : {
-      "@id" : "term:caseInsensitive",
-      "@type" : "xsd:boolean"
-    },
-    "type" : {
-      "@id" : "term:type/",
-      "@type" : "@id"
-    },
-    "match" : {
-      "@id" : "term:match/",
-      "@type" : "@id"
-    },
-    "relation" : {
-      "@id" : "korap:relation/",
-      "@type" : "@id"
-    }
-  },
+  "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query": {
-    "@type": "korap:group", 
-    "operation": "operation:submatch",
+    "@type": "korap:reference",
     "classRef": [1],
     "operands": [
       {
@@ -121,7 +20,7 @@
           {
             "@type": "korap:group", 
 	    "operation" : "operation:class",
-            "class": 1, 
+            "classOut": 1, 
             "operands": [
               {
                 "@type": "korap:token", 
diff --git a/src/test/resources/queries/cosmas16.json b/src/test/resources/queries/cosmas16.json
index b392098..852a964 100644
--- a/src/test/resources/queries/cosmas16.json
+++ b/src/test/resources/queries/cosmas16.json
@@ -1,20 +1,19 @@
 {
   "@context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query" : {
-    "@type" : "korap:group",
-    "operation" : "operation:submatch",
+    "@type" : "korap:reference",
     "classRef" : [ 1 ],
     "operands" : [ {
       "@type" : "korap:group",
       "operation" : "operation:position",
-      "frame" : "frame:startswith",
+      "frames" : ["frames:startsWith"],
       "operands" : [ {
         "@type" : "korap:span",
         "key" : "s"
       }, {
         "@type" : "korap:group",
         "operation" : "operation:class",
-        "class" : 1,
+        "classOut" : 1,
         "operands" : [ {
           "@type" : "korap:token",
           "wrap" : {
diff --git a/src/test/resources/queries/cosmas17.json b/src/test/resources/queries/cosmas17.json
index 1eec888..c0d1f5c 100644
--- a/src/test/resources/queries/cosmas17.json
+++ b/src/test/resources/queries/cosmas17.json
@@ -3,7 +3,7 @@
   "query" : {
     "@type" : "korap:group",
     "operation" : "operation:position",
-    "frame" : "frame:startswith",
+    "frames" : ["frames:startsWith", "frames:matches", "frames:alignsLeft"],
     "operands" : [ {
       "@type" : "korap:span",
       "key" : "s"
diff --git a/src/test/resources/queries/cosmas20.json b/src/test/resources/queries/cosmas20.json
index 86a7df6..5a4b745 100644
--- a/src/test/resources/queries/cosmas20.json
+++ b/src/test/resources/queries/cosmas20.json
@@ -1,20 +1,19 @@
 {
   "context" : "http://ids-mannheim.de/ns/KorAP/json-ld/v0.1/context.jsonld",
   "query" : {
-    "@type" : "korap:group",
-    "operation" : "operation:submatch",
+    "@type" : "korap:reference",
     "classRef" : [ 1 ],
       "operands" : [ {
       "@type" : "korap:group",
       "operation" : "operation:position",
-      "frame" : "frame:endswith",
+      "frames" : ["frames:endsWith", "frames:matches", "frames:alignsRight"],
       "operands" : [ {
         "@type" : "korap:span",
         "key" : "s"
       }, {
         "@type" : "korap:group",
         "operation" : "operation:class",
-        "class" : 1,
+        "classOut" : 1,
         "operands" : [ {
           "@type" : "korap:token",
           "wrap" : {
diff --git a/src/test/resources/queries/poly1.json b/src/test/resources/queries/poly1.json
index bc1b138..77bc6b5 100644
--- a/src/test/resources/queries/poly1.json
+++ b/src/test/resources/queries/poly1.json
@@ -22,7 +22,6 @@
       "operands" : [
          {
             "@type" : "korap:group",
-            "class" : 1,
             "classOut" : 1,
             "operands" : [
                {
@@ -40,7 +39,6 @@
          },
          {
             "@type" : "korap:group",
-            "class" : 2,
             "classOut" : 2,
             "operands" : [
                {
diff --git a/src/test/resources/queries/poly2.json b/src/test/resources/queries/poly2.json
index 68bcadc..543da5e 100644
--- a/src/test/resources/queries/poly2.json
+++ b/src/test/resources/queries/poly2.json
@@ -18,9 +18,8 @@
    "meta" : {},
    "query" : {
       "@type" : "korap:group",
-      "frame" : "frame:contains",
       "frames" : [
-         "frames:contains"
+         "frames:isAround"
       ],
       "operands" : [
          {
@@ -88,4 +87,4 @@
    },
    "warnings" : []
 }
-  
\ No newline at end of file
+  
diff --git a/src/test/resources/queries/poly4.json b/src/test/resources/queries/poly4.json
index eb863e1..4d38ad4 100644
--- a/src/test/resources/queries/poly4.json
+++ b/src/test/resources/queries/poly4.json
@@ -42,7 +42,6 @@
             "operands" : [
                {
                   "@type" : "korap:group",
-                  "class" : 1,
                   "classOut" : 1,
                   "operands" : [
                      {
diff --git a/src/test/resources/queries/sequence/empty-first-class.jsonld b/src/test/resources/queries/sequence/empty-first-class.jsonld
index 89f44e3..f55d382 100644
--- a/src/test/resources/queries/sequence/empty-first-class.jsonld
+++ b/src/test/resources/queries/sequence/empty-first-class.jsonld
@@ -16,7 +16,7 @@
       "operands" : [
 	 {
 	     "@type" : "korap:group",
-	     "class" : 2,
+	     "classOut" : 2,
 	     "operation" : "operation:class",
 	     "operands" : [
              {
diff --git a/src/test/resources/queries/sequence/empty-last-class.jsonld b/src/test/resources/queries/sequence/empty-last-class.jsonld
index e2591e7..9a5ad5e 100644
--- a/src/test/resources/queries/sequence/empty-last-class.jsonld
+++ b/src/test/resources/queries/sequence/empty-last-class.jsonld
@@ -25,7 +25,7 @@
          },
 	 {
 	     "@type" : "korap:group",
-	     "class" : 3,
+	     "classOut" : 3,
 	     "operation" : "operation:class",
 	     "operands" : [
              {
diff --git a/src/test/resources/queries/sequence/empty-middle-class.jsonld b/src/test/resources/queries/sequence/empty-middle-class.jsonld
index 865bfa1..9203e5e 100644
--- a/src/test/resources/queries/sequence/empty-middle-class.jsonld
+++ b/src/test/resources/queries/sequence/empty-middle-class.jsonld
@@ -25,7 +25,7 @@
          },
 	 {
 	     "@type" : "korap:group",
-	     "class" : 1,
+	     "classOut" : 1,
 	     "operation" : "operation:class",
 	     "operands" : [
 	 	 {
diff --git a/src/test/resources/queries/sequence/empty-surround-class-2.jsonld b/src/test/resources/queries/sequence/empty-surround-class-2.jsonld
index 5f15478..f927e59 100644
--- a/src/test/resources/queries/sequence/empty-surround-class-2.jsonld
+++ b/src/test/resources/queries/sequence/empty-surround-class-2.jsonld
@@ -5,7 +5,7 @@
       "operands" : [
 	 {
 	     "@type" : "korap:group",
-	     "class" : 3,
+	     "classOut" : 3,
 	     "operation" : "operation:class",
 	     "operands" : [
 	     	 {
@@ -24,7 +24,7 @@
          },
 	 {
 	     "@type" : "korap:group",
-	     "class" : 2,
+	     "classOut" : 2,
 	     "operation" : "operation:class",
 	     "operands" : [
 	     	 {
diff --git a/src/test/resources/queries/sequence/empty-surround-class.jsonld b/src/test/resources/queries/sequence/empty-surround-class.jsonld
index 2c5846f..b9a44d0 100644
--- a/src/test/resources/queries/sequence/empty-surround-class.jsonld
+++ b/src/test/resources/queries/sequence/empty-surround-class.jsonld
@@ -18,7 +18,7 @@
          },
 	 {
 	     "@type" : "korap:group",
-	     "class" : 2,
+	     "classOut" : 2,
 	     "operation" : "operation:class",
 	     "operands" : [
 	     	 {
diff --git a/src/test/resources/queries/sequence/empty-surround-repetition-class.jsonld b/src/test/resources/queries/sequence/empty-surround-repetition-class.jsonld
index 8a584dc..ec34606 100644
--- a/src/test/resources/queries/sequence/empty-surround-repetition-class.jsonld
+++ b/src/test/resources/queries/sequence/empty-surround-repetition-class.jsonld
@@ -14,7 +14,7 @@
 	"operands" : [
 	  {
 	    "@type" : "korap:group",
-	    "class" : 1,
+	    "classOut" : 1,
 	    "operation" : "operation:class",
 	    "operands" : [
 	      {
@@ -36,7 +36,7 @@
       },
       {
 	"@type" : "korap:group",
-	"class" : 2,
+	"classOut" : 2,
 	"operation" : "operation:class",
 	"operands" : [
 	  {
diff --git a/src/test/resources/queries/sequence/negative-last-class-repetition-2.jsonld b/src/test/resources/queries/sequence/negative-last-class-repetition-2.jsonld
index 4d93449..0d7207a 100644
--- a/src/test/resources/queries/sequence/negative-last-class-repetition-2.jsonld
+++ b/src/test/resources/queries/sequence/negative-last-class-repetition-2.jsonld
@@ -24,7 +24,7 @@
 	"operands" : [
 	  {
 	    "@type" : "korap:group",
-	    "class" : 2,
+	    "classOut" : 2,
 	    "operation" : "operation:class",
 	    "operands" : [
 	      {
diff --git a/src/test/resources/queries/sequence/negative-last-class-repetition.jsonld b/src/test/resources/queries/sequence/negative-last-class-repetition.jsonld
index 372e390..71cc4f3 100644
--- a/src/test/resources/queries/sequence/negative-last-class-repetition.jsonld
+++ b/src/test/resources/queries/sequence/negative-last-class-repetition.jsonld
@@ -15,7 +15,7 @@
       },
       {
 	"@type" : "korap:group",
-	"class" : 2,
+	"classOut" : 2,
 	"operation" : "operation:class",
 	"operands" : [
 	  {
diff --git a/src/test/resources/queries/sequence/negative-last-class.jsonld b/src/test/resources/queries/sequence/negative-last-class.jsonld
index 41e0d45..b668db6 100644
--- a/src/test/resources/queries/sequence/negative-last-class.jsonld
+++ b/src/test/resources/queries/sequence/negative-last-class.jsonld
@@ -15,7 +15,7 @@
          },
         {
 	  "@type" : "korap:group",
-	  "class" : 2,
+	  "classOut" : 2,
 	  "operation" : "operation:class",
 	  "operands" : [
 	    {
diff --git a/src/test/resources/queries/submatch/1.jsonld b/src/test/resources/queries/submatch/1.jsonld
index 4baa073..cc4a529 100644
--- a/src/test/resources/queries/submatch/1.jsonld
+++ b/src/test/resources/queries/submatch/1.jsonld
@@ -15,9 +15,8 @@
       "operands" : [
          {
             "@type" : "korap:group",
-            "frame" : "frame:contains",
             "frames" : [
-               "frames:contains"
+               "frames:isAround"
             ],
             "operands" : [
                {