diff --git a/pom.xml b/pom.xml
index caeff94..e3d15d5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -86,14 +86,6 @@
       <version>1.3</version>
     </dependency>
 
-
-    <!-- getopt -->
-    <dependency>
-      <groupId>gnu.getopt</groupId>
-      <artifactId>java-getopt</artifactId>
-      <version>1.0.13</version>
-    </dependency>
-
     <!-- JCache -->
     <dependency>
       <groupId>net.sf.jsr107cache</groupId>
@@ -195,5 +187,40 @@
         </configuration>
       </plugin> 
     </plugins>
+
+    <resources>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>true</filtering>
+	<includes>
+	  <include>index.properties</include>
+	</includes>
+      </resource>
+      <resource>
+        <directory>src/main/resources</directory>
+        <filtering>false</filtering>
+	<excludes>
+	  <exclude>index.properties</exclude>
+	</excludes>
+      </resource>
+    </resources> 
+
+    <testResources>
+      <testResource>
+        <directory>src/test/resources</directory>
+        <filtering>true</filtering>
+	<includes>
+	  <include>index.properties</include>
+	</includes>
+      </testResource>
+      <testResource>
+        <directory>src/test/resources</directory>
+        <filtering>false</filtering>
+	<excludes>
+	  <exclude>index.properties</exclude>
+	</excludes>
+      </testResource>
+    </testResources> 
+
   </build>
 </project>
diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndex.java b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
index f9a758a..edeb8de 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
@@ -2,10 +2,9 @@
 
 import java.util.*;
 
-import java.io.File;
-import java.io.IOException;
+import java.io.*;
 
-// import java.net.URL;
+import java.net.URL;
 
 import java.nio.ByteBuffer;
 import java.util.zip.GZIPInputStream;
@@ -118,6 +117,7 @@
     private int autoCommit = 500; // Todo: Use configuration
     private HashMap termContexts;
     private ObjectMapper mapper = new ObjectMapper();
+    private String version;
 
 
     private static ByteBuffer bb       = ByteBuffer.allocate(4),
@@ -134,6 +134,16 @@
     // This advices the java compiler to ignore all loggings
     public static final boolean DEBUG = false;
 
+    {
+	Properties prop = new Properties();
+	URL file = getClass().getResource("/index.properties");
+
+	if (file != null) {
+	    InputStream fr = new FileInputStream(file.getFile());
+	    prop.load(fr);
+	    this.version = prop.getProperty("lucene.index.version");
+	};
+    };
 
     public KorapIndex () throws IOException {
         this((Directory) new RAMDirectory());
@@ -175,6 +185,9 @@
 	this.config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
     };
 
+    public String getVersion () {
+	return this.version;
+    };
 
     public void close () throws IOException {
 	this.closeReader();
@@ -357,7 +370,9 @@
      * @param field The field containing the textual data and the annotations.
      * @param type The type of meta information, e.g. "documents" or "sentences".
      */
-    public long numberOf (KorapCollection collection, String field, String type) throws IOException {
+    public long numberOf (KorapCollection collection,
+			  String field,
+			  String type) throws IOException {
 	// Short cut for documents
 	if (type.equals("documents")) {
 	    if (collection.getCount() <= 0) {
@@ -516,6 +531,9 @@
 
 	KorapMatch match = new KorapMatch(idString, includeHighlights);
 
+	if (this.getVersion() != null)
+	    match.setVersion(this.getVersion());
+
 	// Create a filter based on the corpusID and the docID
 	BooleanQuery bool = new BooleanQuery();
 	bool.add(new TermQuery(new Term("ID",       match.getDocID())),    BooleanClause.Occur.MUST);
@@ -836,6 +854,9 @@
 	    ks.rightContext.getLength()
 	);
 
+	if (this.getVersion() != null)
+	    kr.setVersion(this.getVersion());
+
 	HashSet<String> fieldsToLoadLocal = new HashSet<>(fieldsToLoad);
 	fieldsToLoadLocal.add(field);
 
@@ -1000,8 +1021,7 @@
 		};
 
 		// Benchmark till now
-		if (i >= kr.itemsPerPage() &&
-		    kr.getBenchmarkSearchResults().length() == 0) {
+		if (kr.getBenchmarkSearchResults() == null) {
 		    t2 = System.nanoTime();
 		    kr.setBenchmarkSearchResults(t1, t2);
 		};
@@ -1017,7 +1037,7 @@
 
 	    t1 = System.nanoTime();
 	    kr.setBenchmarkHitCounter(t2, t1);
-	    if (kr.getBenchmarkSearchResults().length() == 0) {
+	    if (kr.getBenchmarkSearchResults() == null) {
 		kr.setBenchmarkSearchResults(t2, t1);
 	    };
 
diff --git a/src/main/java/de/ids_mannheim/korap/KorapMatch.java b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
index a99813b..dca773a 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapMatch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
@@ -55,6 +55,7 @@
 	       potentialEndPosChar   = -1;
 
     private String error = null;
+    private String version;
 
     // TEMPRARILY
     @JsonIgnore
@@ -273,6 +274,18 @@
     };
 
     @JsonIgnore
+    public void setVersion (String version) {
+	this.version = version;
+    };
+
+    @JsonIgnore
+    public String getVersion () {
+	if (this.version == null)
+	    return null;
+	return "lucene-backend-" + this.version;
+    };
+
+    @JsonIgnore
     public int getStartPos() {
 	return this.startPos;
     };
@@ -1097,6 +1110,9 @@
 	context.put("right", rightContext);
 	json.put("context", context);
 
+	if (this.version != null)
+	    json.put("version", this.getVersion());
+
 	try {
 	    return mapper.writeValueAsString(json);
 	}
diff --git a/src/main/java/de/ids_mannheim/korap/KorapResult.java b/src/main/java/de/ids_mannheim/korap/KorapResult.java
index 7f4cf54..68ddac6 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapResult.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapResult.java
@@ -34,9 +34,10 @@
     private boolean leftTokenContext,
 	            rightTokenContext;
 
-    private String benchmarkSearchResults = "",
-	           benchmarkHitCounter = "0";
+    private String benchmarkSearchResults,
+	           benchmarkHitCounter;
     private String error = null;
+    private String version;
 
     private JsonNode request;
 
@@ -109,11 +110,24 @@
 	return this.totalResults;
     };
 
+
     @Deprecated
     public int totalResults () {
 	return this.totalResults;
     };
 
+    @JsonIgnore
+    public void setVersion (String version) {
+	this.version = version;
+    };
+
+    @JsonIgnore
+    public String getVersion () {
+	if (this.version == null)
+	    return null;
+	return "lucene-backend-" + this.version;
+    };
+    
     public short getItemsPerPage () {
 	return this.itemsPerPage;
     };
@@ -140,7 +154,9 @@
     };
 
     public void setBenchmarkSearchResults (long t1, long t2) {
-	this.benchmarkSearchResults = ((double)(t2 - t1) / 1000000000.0) + " s";
+	this.benchmarkSearchResults =
+	    (t2 - t1) < 100_000_000 ? (((double)(t2 - t1) * 1e-6) + " ms") :
+	    (((double)(t2 - t1) / 1000000000.0) + " s");
     };
 
     public String getBenchmarkSearchResults () {
@@ -148,7 +164,9 @@
     };
 
     public void setBenchmarkHitCounter (long t1, long t2) {
-	this.benchmarkHitCounter = ((double)(t2 - t1) / 1000000000.0) + " s";
+	this.benchmarkHitCounter =
+	    (t2 - t1) < 100_000_000 ? (((double)(t2 - t1) * 1e-6) + " ms") :
+	    (((double)(t2 - t1) / 1000000000.0) + " s");
     };
 
     public String getBenchmarkHitCounter () {
@@ -193,6 +211,9 @@
 	context.put("right", rightContext);
 	json.put("context", context);
 
+	if (this.version != null)
+	    json.put("version", this.version);
+
 	try {
 	    return mapper.writeValueAsString(json);
 	}
diff --git a/src/main/resources/index.properties b/src/main/resources/index.properties
new file mode 100644
index 0000000..fa1fd47
--- /dev/null
+++ b/src/main/resources/index.properties
@@ -0,0 +1 @@
+lucene.index.version = ${project.version}
diff --git a/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java b/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
index c1855da..48d6815 100644
--- a/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
+++ b/src/test/java/de/ids_mannheim/korap/index/TestMatchIndex.java
@@ -290,5 +290,7 @@
 
 	assertEquals("totalResults", 1, kr.totalResults());
 	assertEquals("SnippetBrackets (0)", "... ca[{1:ba{2:c}}]", kr.match(0).snippetBrackets());
+
+	//	System.err.println(kr.toJSON());
     };
 };
diff --git a/src/test/resources/index.properties b/src/test/resources/index.properties
new file mode 100644
index 0000000..fa1fd47
--- /dev/null
+++ b/src/test/resources/index.properties
@@ -0,0 +1 @@
+lucene.index.version = ${project.version}
diff --git a/todo.txt b/todo.txt
index 40f0a61..15a91a4 100644
--- a/todo.txt
+++ b/todo.txt
@@ -1 +1,2 @@
 - Fix ALL @ignored tests!
+- optimize matchmodifyclassspans
