diff --git a/src/main/java/de/ids_mannheim/korap/KorapIndex.java b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
index 6b4ca02..095d2d5 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapIndex.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapIndex.java
@@ -98,10 +98,10 @@
 */
 
 /**
- * @author Nils Diewald
- * 
  * KorapIndex implements a simple API for searching in and writing to a
  * Lucene index and equesting several information but the index's nature.
+ *
+ * @author ndiewald
  */
 public class KorapIndex {
     private Directory directory;
@@ -118,9 +118,9 @@
     private ObjectMapper mapper = new ObjectMapper();
 
 
-    private static ByteBuffer bb       = ByteBuffer.allocate(4);
-    private static ByteBuffer bbOffset = ByteBuffer.allocate(8);
-    private static ByteBuffer bbTerm   = ByteBuffer.allocate(16);
+    private static ByteBuffer bb       = ByteBuffer.allocate(4),
+	                      bbOffset = ByteBuffer.allocate(8),
+	                      bbTerm   = ByteBuffer.allocate(16);
 
     private byte[] pl = new byte[4];
 
@@ -130,7 +130,7 @@
     private final static Logger log = LoggerFactory.getLogger(KorapIndex.class);
 
     public KorapIndex () throws IOException {
-	this((Directory) new RAMDirectory());
+        this((Directory) new RAMDirectory());
     };
 
 
@@ -516,9 +516,10 @@
 	    };
 	    regex.append("(.){1,}|_[0-9]+");
 
-	    log.trace("The final regex is {}", regex.toString());
+	    log.trace("The final regexString is {}", regex.toString());
 	    RegExp regexObj = new RegExp(regex.toString());
 	    fst = new CompiledAutomaton(regexObj.toAutomaton());
+	    log.trace("The final regexObj is {}", regexObj.toString());
 	};
 
 
diff --git a/src/main/java/de/ids_mannheim/korap/KorapMatch.java b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
index ad1a017..15627de 100644
--- a/src/main/java/de/ids_mannheim/korap/KorapMatch.java
+++ b/src/main/java/de/ids_mannheim/korap/KorapMatch.java
@@ -14,7 +14,6 @@
 
 import static de.ids_mannheim.korap.util.KorapHTML.*;
 import de.ids_mannheim.korap.index.MatchIdentifier;
-// import org.apache.commons.codec.binary.Base64;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties
index e1af705..54e64d8 100644
--- a/src/main/resources/log4j.properties
+++ b/src/main/resources/log4j.properties
@@ -10,7 +10,7 @@
 #log4j.logger.de.ids_mannheim.korap.query.spans.KorapTermSpan = TRACE, stdout
 #log4j.logger.de.ids_mannheim.korap.query.spans.ClassSpans = TRACE, stdout
 #log4j.logger.de.ids_mannheim.korap.query.spans.MatchSpans = TRACE, stdout
-#log4j.logger.de.ids_mannheim.korap.KorapIndex = TRACE, stdout
+# log4j.logger.de.ids_mannheim.korap.KorapIndex = TRACE, stdout
 #log4j.logger.de.ids_mannheim.korap.KorapMatch = TRACE, stdout
 #log4j.logger.de.ids_mannheim.korap.KorapFilter = TRACE, stdout
 #log4j.logger.de.ids_mannheim.korap.KorapCollection = TRACE, stdout
