diff --git a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
index 0ae5be3..2a56dec 100644
--- a/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/SpanDistanceQuery.java
@@ -10,9 +10,11 @@
 import org.apache.lucene.search.spans.Spans;
 import org.apache.lucene.util.Bits;
 
-import de.ids_mannheim.korap.query.spans.ElementDistanceSpan;
-import de.ids_mannheim.korap.query.spans.TokenDistanceSpan;
+import de.ids_mannheim.korap.query.spans.ElementDistanceSpans;
+import de.ids_mannheim.korap.query.spans.TokenDistanceSpans;
 import de.ids_mannheim.korap.query.spans.UnorderedDistanceSpans;
+import de.ids_mannheim.korap.query.spans.UnorderedElementDistanceSpans;
+import de.ids_mannheim.korap.query.spans.UnorderedTokenDistanceSpans;
 
 /** Match two ordered Spans with minimum and maximum distance constraints.
  * 	The distance unit can be word (token), sentence or paragraph. 
@@ -71,14 +73,14 @@
 		
 		if (isOrdered){
 			if (this.elementQuery != null) {
-				return new ElementDistanceSpan(this, context, acceptDocs, termContexts);		
+				return new ElementDistanceSpans(this, context, acceptDocs, termContexts);		
 			}
-			return new TokenDistanceSpan(this, context, acceptDocs, termContexts);
+			return new TokenDistanceSpans(this, context, acceptDocs, termContexts);
 		}
 		else if (this.elementQuery != null) {
-			//return new ElementDistanceSpan(this, context, acceptDocs, termContexts);		
+			return new UnorderedElementDistanceSpans(this, context, acceptDocs, termContexts);		
 		}
-		return new UnorderedDistanceSpans(this, context, acceptDocs, termContexts);
+		return new UnorderedTokenDistanceSpans(this, context, acceptDocs, termContexts);
 	}
 
 	public int getMinDistance() {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpan.java b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
similarity index 95%
rename from src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpan.java
rename to src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
index 206702b..d87ead2 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpan.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/DistanceSpans.java
@@ -21,7 +21,7 @@
  * 
  * @author margaretha
  * */
-public abstract class DistanceSpan extends SimpleSpans{	
+public abstract class DistanceSpans extends SimpleSpans{	
 
 	protected boolean hasMoreFirstSpans;	
 	protected boolean collectPayloads;	
@@ -31,9 +31,9 @@
 	protected int candidateListIndex;
 	protected int candidateListDocNum;
 	
-    private Logger log = LoggerFactory.getLogger(DistanceSpan.class);
+    private Logger log = LoggerFactory.getLogger(DistanceSpans.class);
     
-	public DistanceSpan(SpanDistanceQuery query,
+	public DistanceSpans(SpanDistanceQuery query,
 			AtomicReaderContext context, Bits acceptDocs,
 			Map<Term, TermContext> termContexts)
 			throws IOException {		
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpan.java b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
similarity index 97%
rename from src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpan.java
rename to src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
index f79df35..e5ec3f6 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpan.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/ElementDistanceSpans.java
@@ -22,14 +22,14 @@
  * 
  * @author margaretha
  * */
-public class ElementDistanceSpan extends DistanceSpan {
+public class ElementDistanceSpans extends DistanceSpans {
 
 	private Spans elements;	
 	private boolean hasMoreElements;
 	private int elementPosition;	
 	private int secondSpanPostion;	
 		
-	public ElementDistanceSpan(SpanDistanceQuery query,
+	public ElementDistanceSpans(SpanDistanceQuery query,
 			AtomicReaderContext context, Bits acceptDocs,
 			Map<Term, TermContext> termContexts)
 			throws IOException {
diff --git a/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpan.java b/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
similarity index 96%
rename from src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpan.java
rename to src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
index ab9a69f..586f0e1 100644
--- a/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpan.java
+++ b/src/main/java/de/ids_mannheim/korap/query/spans/TokenDistanceSpans.java
@@ -18,9 +18,9 @@
  * 
  *	@author margaretha 
  * */
-public class TokenDistanceSpan extends DistanceSpan{
+public class TokenDistanceSpans extends DistanceSpans{
 
-	public TokenDistanceSpan(SpanDistanceQuery query,
+	public TokenDistanceSpans(SpanDistanceQuery query,
 			AtomicReaderContext context, Bits acceptDocs,
 			Map<Term, TermContext> termContexts) throws IOException {
 		super(query, context, acceptDocs, termContexts);		
