diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
index 31a2ca5..ec93a84 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/AbstractSyntaxTree.java
@@ -153,34 +153,34 @@
 		group.put("operands", new ArrayList<Object>());
 		// DEPRECATED 'frame'
 		String frame = "";
-		if (allowedFrames.length==0 && sharedClasses[0]=="includes") {
-			frame = "contains";
-		} else if (allowedFrames.length==0 && sharedClasses[0]=="intersects") {
-			frame = "overlaps";
-		} else if (allowedFrames[0]=="startswith" && sharedClasses[0]=="includes") {
-			frame = "startswith";
-		} else if (allowedFrames[0]=="endswith" && sharedClasses[0]=="includes") {
-			frame = "endswith";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="includes" && sharedClasses.length==1) {
-			frame = "endswith";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="includes" && sharedClasses[1]=="unequals") {
-			frame = "matches";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="equals") {
-			frame = "matches";			
-		} else if (allowedFrames[0]=="contains" && sharedClasses[0]=="includes") {
-			frame = "contains";
-		} else if (allowedFrames[0]=="startswith" && sharedClasses[0]=="intersects") {
-			frame = "overlapsLeft";
-		} else if (allowedFrames[0]=="endswith" && sharedClasses[0]=="intersects") {
-			frame = "overlapsRight";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="intersects") {
-			frame = "matches";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="unequals") {
-			frame = "matches";
-		} else if (allowedFrames[0]=="matches" && sharedClasses[0]=="equals") {
-			frame = "matches";
-		} else if (allowedFrames[0]=="contains" && sharedClasses[0]=="intersects") {
-			frame = "contains";
+		if (allowedFrames.length==0 && sharedClasses[0]=="sharedClasses:includes") {
+			frame = "frame:contains";
+		} else if (allowedFrames.length==0 && sharedClasses[0]=="sharedClasses:intersects") {
+			frame = "frame:overlaps";
+		} else if (allowedFrames[0]=="frame:startswith" && sharedClasses[0]=="sharedClasses:includes") {
+			frame = "frame:startswith";
+		} else if (allowedFrames[0]=="frame:endswith" && sharedClasses[0]=="sharedClasses:includes") {
+			frame = "frame:endswith";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:includes" && sharedClasses.length==1) {
+			frame = "frame:endswith";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:includes" && sharedClasses[1]=="sharedClasses:unequals") {
+			frame = "frame:matches";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:equals") {
+			frame = "frame:matches";			
+		} else if (allowedFrames[0]=="frame:contains" && sharedClasses[0]=="sharedClasses:includes") {
+			frame = "frame:contains";
+		} else if (allowedFrames[0]=="frame:startswith" && sharedClasses[0]=="sharedClasses:intersects") {
+			frame = "frame:overlapsLeft";
+		} else if (allowedFrames[0]=="frame:endswith" && sharedClasses[0]=="sharedClasses:intersects") {
+			frame = "frame:overlapsRight";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:intersects") {
+			frame = "frame:matches";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:unequals") {
+			frame = "frame:matches";
+		} else if (allowedFrames[0]=="frame:matches" && sharedClasses[0]=="sharedClasses:equals") {
+			frame = "frame:matches";
+		} else if (allowedFrames[0]=="frame:contains" && sharedClasses[0]=="sharedClasses:intersects") {
+			frame = "frame:contains";
 		}
 		group.put("frame", frame);
 		announcements.add("Deprecated 2014-09-22: 'frame' only to be supported until 3 months from deprecation date. " +
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
index 0953e5c..e6c2a05 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CosmasTree.java
@@ -587,7 +587,7 @@
 
                 // create the group expressing the position constraint
                 String[] frames = new String[]{c.position};
-                String[] sharedClasses = new String[]{"includes"};  // OPBED only defines #IN-corresponding positions
+                String[] sharedClasses = new String[]{"sharedClasses:includes"};  // OPBED only defines #IN-corresponding positions
             	LinkedHashMap<String,Object> posgroup = makePosition(frames, sharedClasses);
 //                LinkedHashMap<String, Object> posgroup = makePosition(c.position);
                 ArrayList<Object> operands = (ArrayList<Object>) posgroup.get("operands");
@@ -625,7 +625,7 @@
                     // make position group
                     CosmasCondition c = new CosmasCondition(conditions.getChild(i));
                     String[] frames = new String[]{c.position};
-                    String[] sharedClasses = new String[]{"includes"};  // OPBED only defines #IN-corresponding positions
+                    String[] sharedClasses = new String[]{"sharedClasses:includes"};  // OPBED only defines #IN-corresponding positions
                 	LinkedHashMap<String,Object> posGroup = makePosition(frames, sharedClasses);
                     operands.add(posGroup);
                     if (c.negated) posGroup.put("exclude", "true");
@@ -747,41 +747,52 @@
 
         ArrayList<String> positions = new ArrayList<String>();
         ArrayList<String> sharedClasses = new ArrayList<String>();
+        String frame = "";
         String posOption = null; 
         if (posnode != null) {
             posOption = posnode.getChild(0).toStringTree();
             switch (posOption) {
             case "L":
-                positions.add("startswith");
-                sharedClasses.add("includes");
+                positions.add("frame:startswith");
+                sharedClasses.add("sharedClasses:includes");
+                frame = "startswith";
                 break;
             case "R":
-            	positions.add("endswith");
-                sharedClasses.add("includes");
+            	positions.add("frame:endswith");
+                sharedClasses.add("sharedClasses:includes");
+                frame = "endswith";
                 break;
             case "F":
-            	positions.add("matches");
-                sharedClasses.add("includes");
+            	positions.add("frame:matches");
+                sharedClasses.add("sharedClasses:includes");
+                frame = "matches";
                 break;
             case "FE":
-            	positions.add("matches");
-                sharedClasses.add("equals");
+            	positions.add("frame:matches");
+                sharedClasses.add("sharedClasses:equals");
+                frame = "matches";
                 break;
             case "FI":
-            	positions.add("matches");
-            	sharedClasses.add("unequals");
-                sharedClasses.add("includes");
+            	positions.add("frame:matches");
+            	sharedClasses.add("sharedClasses:unequals");
+                sharedClasses.add("sharedClasses:includes");
+                frame = "matches-noident";
                 break;
             case "N": 
-            	positions.add("contains");
-                sharedClasses.add("includes");
+            	positions.add("frame:contains");
+                sharedClasses.add("sharedClasses:includes");
+                frame = "contains";
                 break;
             }
         } else {
-        	sharedClasses.add("includes");
+        	sharedClasses.add("sharedClasses:includes");
+        	frame = "contains";
         }
         posgroup.put("frames", positions);
         posgroup.put("sharedClasses", sharedClasses);
+        posgroup.put("frame", "frame:"+frame);
+        announcements.add("Deprecated 2014-09-22: 'frame' only to be supported until 3 months from deprecation date. " +
+				"Position frames are now expressed through 'frames' and 'sharedClasses'");
         
         if (exclnode != null) {
             if (exclnode.getChild(0).toStringTree().equals("YES")) {
@@ -818,43 +829,54 @@
 
         ArrayList<String> positions = new ArrayList<String>();
         ArrayList<String> sharedClasses = new ArrayList<String>();
+        String frame = "";
         String posOption = null; 
         if (posnode != null) {
             posOption = posnode.getChild(0).toStringTree();
             switch (posOption) {
             case "L":
-                positions.add("startswith");
-                positions.add("overlapsLeft");
-                sharedClasses.add("intersects");
+                positions.add("frame:startswith");
+                positions.add("frame:overlapsLeft");
+                sharedClasses.add("sharedClasses:intersects");
+                frame = "overlapsLeft";
                 break;
             case "R":
-            	positions.add("endswith");
-            	positions.add("overlapsRight");
-                sharedClasses.add("intersects");
+            	positions.add("frame:endswith");
+            	positions.add("frame:overlapsRight");
+                sharedClasses.add("sharedClasses:intersects");
+                frame = "overlapsRight";
                 break;
             case "F":
-            	positions.add("matches");
-                sharedClasses.add("intersects");
+            	positions.add("frame:matches");
+                sharedClasses.add("sharedClasses:intersects");
+                frame = "matches";
                 break;
             case "FE":
-            	positions.add("matches");
-                sharedClasses.add("equals");
+            	positions.add("frame:matches");
+                sharedClasses.add("sharedClasses:equals");
+                frame = "matches";
                 break;
             case "FI":
-            	positions.add("matches");
-            	sharedClasses.add("unequals");
+            	positions.add("frame:matches");
+            	sharedClasses.add("sharedClasses:unequals");
+            	frame = "matches-noident";
                 break;
             case "X": 
-            	positions.add("contains");
-                sharedClasses.add("intersects");
+            	positions.add("frame:contains");
+                sharedClasses.add("sharedClasses:intersects");
+                frame = "overlaps";
                 break;
             }
         } else {
-        	sharedClasses.add("intersects");
+        	sharedClasses.add("sharedClasses:intersects");
+        	frame = "overlaps";
         }
         
         posgroup.put("frames", positions);
         posgroup.put("sharedClasses", sharedClasses);
+        posgroup.put("frame", "frame:"+frame);
+        announcements.add("Deprecated 2014-09-22: 'frame' only to be supported until 3 months from deprecation date. " +
+				"Position frames are now expressed through 'frames' and 'sharedClasses'");
 
         if (exclnode != null) {
             if (exclnode.getChild(0).toStringTree().equals("YES")) {
@@ -862,31 +884,6 @@
             }
         }
         
-//        if (posOption != null && (posOption.equals("F") || posOption.equals("FI")) && !negatePosition) {
-//        	LinkedHashMap<String, Object> endsWithPosition = makePosition("endswith");
-//        	((ArrayList<Object>) endsWithPosition.get("operands")).add(makeReference(classCounter+1));
-//        	LinkedHashMap<String,Object> innerFocus = makeReference(classCounter);
-//        	innerFocus.put("operands", new ArrayList<Object>());
-//        	LinkedHashMap<String,Object> outerFocus = makeReference(classCounter);
-//        	outerFocus.put("operands", new ArrayList<Object>());
-//        	LinkedHashMap[] toWrap = new LinkedHashMap[]{posgroup, innerFocus, endsWithPosition, outerFocus};
-//        	if (posOption.equals("FI")) {
-//        		LinkedHashMap<String, Object> noMatchPosition = makePosition("matches");
-//            	((ArrayList<Object>) noMatchPosition.get("operands")).add(makeReference(classCounter+1));
-//            	noMatchPosition.put("exclude", true);
-//        		LinkedHashMap<String,Object> outermostFocus = makeReference(classCounter);
-//        		outermostFocus.put("operands", new ArrayList<Object>());
-//        		toWrap = new LinkedHashMap[]{posgroup, innerFocus, endsWithPosition, outerFocus, noMatchPosition, outermostFocus};
-//        	}
-//        	
-//        	toWrapStack.push(toWrap);
-//        	stackedToWrap++;
-//        	wrapOperandInClass(node,1,classCounter+1);
-//        	wrapOperandInClass(node,2,classCounter);
-//        	wrapFirstOpInClass = classCounter+1;
-//        	wrapSecondOpInClass = classCounter;
-//        }
-        
         if (groupnode != null) {
             String grouping = groupnode.getChild(0).toStringTree().equals("@max") ? "true" : "false";
             posgroup.put("grouping", grouping);
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/util/CosmasCondition.java b/src/main/java/de/ids_mannheim/korap/query/serialize/util/CosmasCondition.java
index 24866d6..86428f8 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/util/CosmasCondition.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/util/CosmasCondition.java
@@ -20,6 +20,6 @@
 		elem = nodeString.substring(0, 1);
 		nodeString = nodeString.substring(1);
 		
-		position = nodeString.equals("a") ? "startswith" : "endswith";
+		position = nodeString.equals("a") ? "frame:startswith" : "frame:endswith";
 	}
 }
diff --git a/src/test/java/CosmasTreeTest.java b/src/test/java/CosmasTreeTest.java
index 0089727..e7eec87 100644
--- a/src/test/java/CosmasTreeTest.java
+++ b/src/test/java/CosmasTreeTest.java
@@ -293,14 +293,14 @@
 							"}" +
 						"]}";
 //					"{@type=korap:group, operation=operation:or, operands=[" +
-//						"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//						"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //								"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 //							"]}," +
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //								"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 //							"]}" +
-//						"], frame=overlaps}," +
+//						"], frame=frame:overlaps}," +
 //						"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //							"{@type=korap:group, operation=operation:sequence, " +
 //								"operands=[" +
@@ -341,14 +341,14 @@
 						"}" +
 					"]}";
 //				"{@type=korap:group, operation=operation:or, operands=[" +
-//					"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//					"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //						"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //							"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 //						"]}," +
 //						"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //							"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 //						"]}" +
-//					"], frame=overlaps}," +
+//					"], frame=frame:overlaps}," +
 //					"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //						"{@type=korap:group, operation=operation:sequence, " +
 //							"operands=[" +
@@ -387,14 +387,14 @@
 						"}" +
 					"]}";
 //				"{@type=korap:group, operation=operation:or, operands=[" +
-//					"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//					"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //						"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //							"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 //						"]}," +
 //						"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //							"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 //						"]}" +
-//					"], frame=overlaps}," +
+//					"], frame=frame:overlaps}," +
 //					"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //						"{@type=korap:group, operation=operation:sequence, " +
 //							"operands=[" +
@@ -482,13 +482,13 @@
 					"]}" +
 				"]}" ;
 //		String mondsterneOv =
-//					"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//					"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //						mondsterne +
 //					"]}";
 		String mondsterneClassesOv =
-				"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+				"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 					mondsterneClasses +
-				"], frame=overlaps}";
+				"], frame=frame:overlaps}";
 //		String mondsterneAll =
 //					"{@type=korap:group, operation=operation:or, operands=[" +
 //						mondsterneOv + "," + mondsterneClassesSeq +
@@ -503,7 +503,6 @@
 				"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 						"{@type=korap:group, operation=operation:sequence, " +
 							"operands=[" +
-								
 								"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 									"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 										"{@type=korap:group, operation=operation:sequence, " +
@@ -532,14 +531,14 @@
 					"]}" +
 					""	;
 //			"{@type=korap:group, operation=operation:or, operands=[" +
-//				"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//				"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //					"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //						mondsterneAllClasses  + 
 //					"]}," +
 //					"{@type=korap:group, operation=operation:class, class=0, operands=[" +	
 //						"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 //					"]}" +
-//				"], frame=overlaps}," +
+//				"], frame=frame:overlaps}," +
 //				"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //					"{@type=korap:group, operation=operation:sequence, " +
 //						"operands=[" +
@@ -571,7 +570,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[], sharedClasses=[includes]}" +
+						"], frames=[], sharedClasses=[sharedClasses:includes], frame=frame:contains}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -585,7 +584,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[startswith], sharedClasses=[includes]}" +
+						"], frames=[frame:startswith], sharedClasses=[sharedClasses:includes], frame=frame:startswith}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -600,7 +599,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[includes]}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:includes], frame=frame:matches}" +
 					"]}" +
 					"";
 		ct = new CosmasTree(query);
@@ -615,7 +614,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[unequals,includes]}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:unequals,sharedClasses:includes], frame=frame:matches-noident}" +
 					"]}" +
 					"";
 		ct = new CosmasTree(query);
@@ -630,7 +629,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[equals]}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:equals], frame=frame:matches}" +
 					"]}" +
 					"";
 		ct = new CosmasTree(query);
@@ -645,7 +644,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[startswith], sharedClasses=[includes], exclude=true}" +
+						"], frames=[frame:startswith], sharedClasses=[sharedClasses:includes], frame=frame:startswith, exclude=true}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -661,7 +660,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[equals], exclude=true, grouping=false}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:equals], frame=frame:matches, exclude=true, grouping=false}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -678,7 +677,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[], sharedClasses=[intersects]}" +
+						"], frames=[], sharedClasses=[sharedClasses:intersects], frame=frame:overlaps}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -692,7 +691,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[startswith,overlapsLeft], sharedClasses=[intersects]}" +
+						"], frames=[frame:startswith,frame:overlapsLeft], sharedClasses=[sharedClasses:intersects], frame=frame:overlapsLeft}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -706,7 +705,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[intersects]}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:intersects], frame=frame:matches}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -720,7 +719,7 @@
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frames=[matches], sharedClasses=[unequals]}" +
+						"], frames=[frame:matches], sharedClasses=[sharedClasses:unequals], frame=frame:matches-noident}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -734,7 +733,7 @@
 									"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 										"{@type=korap:token, wrap={@type=korap:term, key=wegen, layer=orth, match=match:eq}}" +
 									"]}" +
-								"], frames=[matches], sharedClasses=[equals]}" +
+								"], frames=[frame:matches], sharedClasses=[sharedClasses:equals], frame=frame:matches}" +
 							"]}" +
 					"";
 		ct = new CosmasTree(query);
@@ -805,14 +804,14 @@
 		query="#BEG(der /w3:5 Mann) /+w10 kommt"; // nesting #BEG() in a distance group
 		String beg2 = 
 //					"{@type=korap:group, operation=operation:or, operands=[" +
-//						"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//						"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +
 //								beg1 +
 //							"]}" + "," +
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +
 //								kommt +
 //							"]}" +
-//						"], frame=overlaps}," +
+//						"], frame=frame:overlaps}," +
 //						"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //							"{@type=korap:group, operation=operation:sequence, operands=[" +
 //								"{@type=korap:group, operation=operation:class, class=0, operands=[" +
@@ -846,7 +845,7 @@
 		query="kommt /+w10 #BEG(der /w3:5 Mann)";
 		String beg3 = 
 //				"{@type=korap:group, operation=operation:or, operands=[" +
-//						"{@type=korap:group, operation=operation:position, frames=[], sharedClasses=[intersects], operands=[" +
+//						"{@type=korap:group, operation=operation:position, frames=[frame:], sharedClasses=[sharedClasses:intersects], operands=[" +
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +
 //								kommt + 
 ////							"," +
@@ -854,7 +853,7 @@
 //							"{@type=korap:group, operation=operation:class, class=0, operands=[" +
 //								beg1+
 //							"]}" +
-//						"], frame=overlaps}," +
+//						"], frame=frame:overlaps}," +
 //						"{@type=korap:reference, operation=operation:focus, classRef=[0], operands=[" +
 //							"{@type=korap:group, operation=operation:sequence, operands=[" +
 //								"{@type=korap:group, operation=operation:class, class=0, operands=[" +
@@ -908,9 +907,9 @@
 	public void testSentenceDistance() throws QueryException {
 		query="Sonne /s0 Mond";   // contains(focus(1:contains({1:<s>},Sonne)),Mond)
 		expected = 
-					"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+					"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 						"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 									"{@type=korap:span, key=s}" +
 								"]}," +
@@ -925,9 +924,9 @@
 		
 		query="Sonne /s0,w5 Mond";   
 		expected = 
-					"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+					"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 						"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 									"{@type=korap:span, key=s}" +
 								"]}," +
@@ -943,12 +942,12 @@
 		query="Sonne /s2:2 Mond";   // contains(<s>,Sonne)<s>contains(<s>,Mond)
 		expected = 
 						"{@type=korap:group, operation=operation:sequence, operands=[" +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 							"]}," +
 							"{@type=korap:span, key=s}," +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 							"]}" +
@@ -960,14 +959,14 @@
 		query="Sonne /s2:3 Mond";   // contains(<s>,Sonne)<s>contains(<s>,Mond)
 		expected = 
 						"{@type=korap:group, operation=operation:sequence, operands=[" +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 							"]}," +
 							"{@type=korap:group, operation=operation:repetition, operands=[" +
 								"{@type=korap:span, key=s}" +
 							"], boundary={@type=korap:boundary, min=1, max=2}, min=1, max=2}," +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 							"]}" +
@@ -979,9 +978,9 @@
 		query="Sonne /s2 Mond";   // contains(focus(1:contains({1:<s>},Sonne)),Mond) | contains(<s>,Sonne)<s>?contains(<s>,Mond)
 		expected = 
 					"{@type=korap:group, operation=operation:or, operands=[" +
-						"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+						"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 							"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
-								"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+								"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 									"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 										"{@type=korap:span, key=s}" +
 									"]}," +
@@ -991,14 +990,14 @@
 							"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 						"]}," +
 						"{@type=korap:group, operation=operation:sequence, operands=[" +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Sonne, layer=orth, match=match:eq}}" +
 							"]}," +
 							"{@type=korap:group, operation=operation:repetition, operands=[" +
 								"{@type=korap:span, key=s}" +
 							"], boundary={@type=korap:boundary, min=0, max=1}, min=0, max=1}," +
-							"{@type=korap:group, operation=operation:position, frame=frame:contains, operands=[" +
+							"{@type=korap:group, operation=operation:position, frame=frame:frame:contains, operands=[" +
 								"{@type=korap:span, key=s}," +
 								"{@type=korap:token, wrap={@type=korap:term, key=Mond, layer=orth, match=match:eq}}" +
 							"]}" +
@@ -1125,12 +1124,12 @@
 		query = "#BED(der , sa)";
 		String bed1 = 
 				"{@type=korap:reference, operation=operation:focus, classRef=[1], operands= [" +
-					"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+					"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 						"{@type=korap:span, key=s}," +
 						"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 							"{@type=korap:token, wrap={@type=korap:term, key=der, layer=orth, match=match:eq}}" +
 						"]}" +
-					"], frame=startswith}" +
+					"], frame=frame:startswith}" +
 				"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -1139,7 +1138,7 @@
 		query = "#BED(der Mann , +pe)";
 		String bed2 = 
 				"{@type=korap:reference, operation=operation:focus, classRef=[1], operands= [" +
-						"{@type=korap:group, operation=operation:position, frames=[endswith], sharedClasses=[includes], operands=[" +
+						"{@type=korap:group, operation=operation:position, frames=[frame:endswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=p}," +
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1147,7 +1146,7 @@
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 								"]}" +
 							"]}" +
-						"], frame=endswith}" +
+						"], frame=frame:endswith}" +
 					"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -1157,7 +1156,7 @@
 		String bed3 = 
 				"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
 					"{@type=korap:group, operation=operation:sequence, operands=[" +
-						"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+						"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=s}," +
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 								"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1165,8 +1164,8 @@
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 								"]}" +
 							"]}" +
-						"], frame=startswith}," +
-						"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+						"], frame=frame:startswith}," +
+						"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=p}," +
 							"{@type=korap:group, operation=operation:class, class=2, operands=[" +
 								"{@type=korap:group, operation=operation:sequence, operands=[" +
@@ -1174,7 +1173,7 @@
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 								"]}" +
 							"]}" +
-						"], frame=startswith, exclude=true}" +
+						"], frame=frame:startswith, exclude=true}" +
 					"], distances=[" +
 						"{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0, max=0}, min=0, max=0}" +
 					"]}" +
@@ -1190,12 +1189,12 @@
 		query = "Der:sa";
 		String col1 = 
 				"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
-					"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+					"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 						"{@type=korap:span, key=s}," +
 						"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 							"{@type=korap:token, wrap={@type=korap:term, key=Der, layer=orth, match=match:eq}}" +
 						"]}" +
-					"], frame=startswith}" +
+					"], frame=frame:startswith}" +
 				"]}";
 		ct = new CosmasTree(query);
 		map = ct.getRequestMap().get("query").toString();
@@ -1205,24 +1204,24 @@
 		String col2 = 
 				"{@type=korap:reference, operation=operation:focus, classRef=[1], operands=[" +
 					"{@type=korap:group, operation=operation:sequence, operands=[" +
-						"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+						"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=s}," +
 							"{@type=korap:group, operation=operation:class, class=1, operands=[" +
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frame=startswith}," +
-						"{@type=korap:group, operation=operation:position, frames=[startswith], sharedClasses=[includes], operands=[" +
+						"], frame=frame:startswith}," +
+						"{@type=korap:group, operation=operation:position, frames=[frame:startswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=p}," +
 							"{@type=korap:group, operation=operation:class, class=2, operands=[" +
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frame=startswith, exclude=true}," +
-						"{@type=korap:group, operation=operation:position, frames=[endswith], sharedClasses=[includes], operands=[" +
+						"], frame=frame:startswith, exclude=true}," +
+						"{@type=korap:group, operation=operation:position, frames=[frame:endswith], sharedClasses=[sharedClasses:includes], operands=[" +
 							"{@type=korap:span, key=t}," +
 							"{@type=korap:group, operation=operation:class, class=3, operands=[" +
 									"{@type=korap:token, wrap={@type=korap:term, key=Mann, layer=orth, match=match:eq}}" +
 							"]}" +
-						"], frame=endswith}" +
+						"], frame=frame:endswith}" +
 					"], distances=[" +
 						"{@type=korap:distance, key=w, boundary={@type=korap:boundary, min=0, max=0}, min=0, max=0}" +
 					"]}" +
