diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
index 0e43b97..187037b 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/CollectionRewriteTest.java
@@ -223,7 +223,7 @@
                 .asText());
         assertEquals("koral:rewrite", node.at("/collection/rewrites/0/@type")
                 .asText());
-        System.out.println("NODE " + node);
+        //todo:
     }
 
 
diff --git a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteBenchmarkTest.java b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteBenchmarkTest.java
index 29ddb89..68077d6 100644
--- a/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteBenchmarkTest.java
+++ b/src/test/java/de/ids_mannheim/korap/resource/rewrite/RewriteBenchmarkTest.java
@@ -19,6 +19,9 @@
 public class RewriteBenchmarkTest extends BeanConfigTest {
 
 
+    private static int THRESHOLD = 1000;
+
+
     @Test
     public void testDocMatchRewriteByTextSigle () throws KustvaktException {
         DocumentDao dao = new DocumentDao(helper().getContext()
@@ -38,7 +41,7 @@
         DateTime now = TimeUtils.getNow();
         String v = ha.processResult(TestVariables.RESULT, null);
         long diff = TimeUtils.calcDiff(now, new DateTime());
-        assertTrue(diff < 600);
+        assertTrue(diff < THRESHOLD);
         JsonNode node = JsonUtils.readTree(v);
 
         JsonNode check = JsonUtils.readTree(TestVariables.RESULT);
@@ -70,7 +73,7 @@
         DateTime now = TimeUtils.getNow();
         String v = ha.processResult(TestVariables.RESULT, null);
         long diff = TimeUtils.calcDiff(now, new DateTime());
-        assertTrue(diff < 600);
+        assertTrue(diff < THRESHOLD);
         JsonNode node = JsonUtils.readTree(v);
 
         JsonNode check = JsonUtils.readTree(TestVariables.RESULT);
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
index d24cad1..fbd2d9c 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/OAuth2HandlerTest.java
@@ -9,7 +9,6 @@
 import de.ids_mannheim.korap.interfaces.EncryptionIface;
 import de.ids_mannheim.korap.interfaces.db.PersistenceClient;
 import de.ids_mannheim.korap.user.TokenContext;
-import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -131,7 +130,7 @@
         helper().setupAccount();
 
         EncryptionIface crypto = helper().getContext().getEncryption();
-        info = new ClientInfo(crypto.createID(), crypto.createToken());
+        info = new ClientInfo(crypto.createRandomNumber(), crypto.createToken());
         info.setConfidential(true);
         //todo: support for subdomains?!
         info.setUrl("http://localhost:8080/api/v0.1");
diff --git a/src/test/java/de/ids_mannheim/korap/web/service/SearchKrillTest.java b/src/test/java/de/ids_mannheim/korap/web/service/SearchKrillTest.java
index 0deb98b..5e0c730 100644
--- a/src/test/java/de/ids_mannheim/korap/web/service/SearchKrillTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/service/SearchKrillTest.java
@@ -27,6 +27,7 @@
 
     }
 
+
     @Test
     public void testInit () {
         KustvaktConfiguration config = helper().getContext().getConfiguration();
