diff --git a/.classpath b/.classpath
index 590bff16ced8c40eea7a0c1b219681773272f8d3..5634d6545ad8c6fefdea1b5531c9f438391cfa85 100644
--- a/.classpath
+++ b/.classpath
@@ -13,12 +13,12 @@
 		</attributes>
 	</classpathentry>
 	<classpathentry kind="src" path="src/performancetest/java"/>
-	<classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
diff --git a/.settings/edu.umd.cs.findbugs.core.prefs b/.settings/edu.umd.cs.findbugs.core.prefs
index e5f34a95b931b620596d99208ceb8bd6c0647e1c..9b2470c30687f478efc20f8c572cc798a4fb8a6a 100644
--- a/.settings/edu.umd.cs.findbugs.core.prefs
+++ b/.settings/edu.umd.cs.findbugs.core.prefs
@@ -1,5 +1,5 @@
 #FindBugs User Preferences
-#Tue Apr 14 12:04:32 CEST 2015
+#Thu Apr 16 10:55:19 CEST 2015
 detector_threshold=3
 effort=max
 excludefilter0=.fbExcludeFilterFile|true
diff --git a/pom.xml b/pom.xml
index 5b5ba50e6b9f5b5a6a5391d83e636900202a2563..088f1e75c0e76108700605f74d5d70c8f55e12e1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -73,6 +73,13 @@
 		<url>https://build.se.informatik.uni-kiel.de/jenkins/view/TeeTime/</url>
 	</ciManagement>
 
+	<repositories>
+		<repository>
+			<id>jitpack.io</id>
+			<url>https://jitpack.io</url>
+		</repository>
+	</repositories>
+
 	<dependencies>
 		<dependency>
 			<groupId>junit</groupId>
@@ -108,11 +115,16 @@
 			<artifactId>guava</artifactId>
 			<version>18.0</version>
 		</dependency>
+		<!-- <dependency> -->
+		<!-- <groupId>org.jctools</groupId> -->
+		<!-- <artifactId>jctools-core</artifactId> -->
+		<!-- <version>1.0</version> -->
+		<!-- <version>1.1-SNAPSHOT</version> -->
+		<!-- </dependency> -->
 		<dependency>
-			<groupId>org.jctools</groupId>
-			<artifactId>jctools-core</artifactId>
-			<version>1.0</version>
-			<!-- <version>1.1-SNAPSHOT</version> -->
+			<groupId>com.github.JCTools</groupId>
+			<artifactId>JCTools</artifactId>
+			<version>3e1afaa505</version>		<!-- SNAPSHOT master version -->
 		</dependency>
 
 		<dependency>
diff --git a/src/main/java/org/jctools/queues/ObservableSpScArrayQueue.java b/src/main/java/org/jctools/queues/ObservableSpScArrayQueue.java
index 922c6acfa6309b3d7fffcb15ae698b439eb5547c..c4c735635d5d0da4e2ff71c4c603b37b0ef2d54e 100644
--- a/src/main/java/org/jctools/queues/ObservableSpScArrayQueue.java
+++ b/src/main/java/org/jctools/queues/ObservableSpScArrayQueue.java
@@ -15,148 +15,34 @@
  */
 package org.jctools.queues;
 
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.Queue;
-
-public final class ObservableSpScArrayQueue<E> implements Queue<E> {
-
-	private final SpscArrayQueue<E> queue;
+public final class ObservableSpScArrayQueue<E> extends SpscArrayQueue<E> {
 
 	private transient long lastProducerIndex, lastConsumerIndex;
 
-	public ObservableSpScArrayQueue(final int requestedCapacity) {
-		this.queue = new SpscArrayQueue<E>(requestedCapacity);
+	public ObservableSpScArrayQueue(final int capacity) {
+		super(capacity);
 	}
 
 	public long getNumPushes() {
-		return queue.lvProducerIndex();
+		return currentProducerIndex();
 	}
 
 	public long getNumPulls() {
-		return queue.lvConsumerIndex();
+		return currentConsumerIndex();
 	}
 
 	public long getProducerFrequency() {
-		final long currentProducerIndex = queue.lvProducerIndex();
+		final long currentProducerIndex = getNumPushes();
 		long diff = currentProducerIndex - lastProducerIndex;
 		lastProducerIndex = currentProducerIndex;
 		return diff;
 	}
 
 	public long getConsumerFrequency() {
-		final long currentConsumerIndex = queue.lvConsumerIndex();
+		final long currentConsumerIndex = getNumPulls();
 		long diff = currentConsumerIndex - lastConsumerIndex;
 		lastConsumerIndex = currentConsumerIndex;
 		return diff;
 	}
 
-	@Override
-	public int hashCode() {
-		return queue.hashCode();
-	}
-
-	@Override
-	public boolean add(final E e) {
-		return queue.add(e);
-	}
-
-	@Override
-	public boolean isEmpty() {
-		return queue.isEmpty();
-	}
-
-	@Override
-	public boolean contains(final Object o) {
-		return queue.contains(o);
-	}
-
-	@Override
-	public E remove() {
-		return queue.remove();
-	}
-
-	@Override
-	public Object[] toArray() {
-		return queue.toArray();
-	}
-
-	@Override
-	public boolean equals(final Object obj) {
-		if (obj instanceof ObservableSpScArrayQueue) {
-			return queue.equals(((ObservableSpScArrayQueue<?>) obj).queue);
-		}
-		return false;
-	}
-
-	@Override
-	public E element() {
-		return queue.element();
-	}
-
-	@Override
-	public boolean offer(final E e) {
-		return queue.offer(e);
-	}
-
-	@Override
-	public <T> T[] toArray(final T[] a) {
-		return queue.toArray(a);
-	}
-
-	@Override
-	public boolean addAll(final Collection<? extends E> c) {
-		return queue.addAll(c);
-	}
-
-	@Override
-	public E poll() {
-		return queue.poll();
-	}
-
-	@Override
-	public E peek() {
-		return queue.peek();
-	}
-
-	@Override
-	public int size() {
-		return queue.size();
-	}
-
-	@Override
-	public Iterator<E> iterator() {
-		return queue.iterator();
-	}
-
-	@Override
-	public void clear() {
-		queue.clear();
-	}
-
-	@Override
-	public boolean remove(final Object o) {
-		return queue.remove(o);
-	}
-
-	@Override
-	public boolean containsAll(final Collection<?> c) {
-		return queue.containsAll(c);
-	}
-
-	@Override
-	public boolean removeAll(final Collection<?> c) {
-		return queue.removeAll(c);
-	}
-
-	@Override
-	public boolean retainAll(final Collection<?> c) {
-		return queue.retainAll(c);
-	}
-
-	@Override
-	public String toString() {
-		return queue.toString();
-	}
-
 }
diff --git a/src/test/java/teetime/framework/AnalysisTest.java b/src/test/java/teetime/framework/AnalysisTest.java
index cbd9218bfc2dc6ba9517d8749533f314c3ab104f..24c3341b7329025189deeb112337b624399f3ba1 100644
--- a/src/test/java/teetime/framework/AnalysisTest.java
+++ b/src/test/java/teetime/framework/AnalysisTest.java
@@ -19,7 +19,7 @@ import teetime.util.StopWatch;
 public class AnalysisTest {
 
 	private static final long DELAY_IN_MS = 500;
-	private static final long ABSOLUTE_MAX_ERROR_IN_MS = 1;
+	private static final long ABSOLUTE_MAX_ERROR_IN_MS = 2;
 
 	private Analysis<TestConfig> analysis;