diff --git a/src/main/java/teetime/util/CyclicListIterator.java b/src/main/java/teetime/util/CyclicListIterator.java
index 9611fcb2186771d752c57fc7bb7fa5a3a5e928bd..d4e06d27453bc453c631419f61fd05c113e32a63 100644
--- a/src/main/java/teetime/util/CyclicListIterator.java
+++ b/src/main/java/teetime/util/CyclicListIterator.java
@@ -20,12 +20,12 @@ import java.util.List;
 
 /**
  * This iterator infinitely iterates over a list and allows the list to be modified without throwing a <code>ConcurrentMOdificationException</code>.
- * 
+ *
  * @author Christian Wulf
- * 
+ *
  * @param <T>
  */
-public class CyclicListIterator<T> implements Iterator<T> {
+public final class CyclicListIterator<T> implements Iterator<T> {
 
 	private final List<T> list;
 	// private Iterator<T> iterator;
@@ -37,10 +37,12 @@ public class CyclicListIterator<T> implements Iterator<T> {
 		// this.iterator = this.list.iterator();
 	}
 
+	@Override
 	public boolean hasNext() {
 		return true;
 	}
 
+	@Override
 	public T next() {
 		// if (!this.iterator.hasNext()) {
 		// this.iterator = this.list.iterator();
@@ -56,6 +58,7 @@ public class CyclicListIterator<T> implements Iterator<T> {
 		return element;
 	}
 
+	@Override
 	public void remove() {
 		// this.iterator.remove();
 		this.currentIndex = this.getCurrentIndex();
diff --git a/src/main/java/teetime/util/HashMapWithDefault.java b/src/main/java/teetime/util/HashMapWithDefault.java
index f5797cf0f9dde6292a674ed6f78db860fd7d2106..7ebf6eb5c975ca044d283f47197bbb6aa961f19e 100644
--- a/src/main/java/teetime/util/HashMapWithDefault.java
+++ b/src/main/java/teetime/util/HashMapWithDefault.java
@@ -21,10 +21,10 @@ import teetime.util.concurrent.hashmap.ValueFactory;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
-public class HashMapWithDefault<K, V> extends HashMap<K, V> {
+public final class HashMapWithDefault<K, V> extends HashMap<K, V> {
 
 	private static final long serialVersionUID = -7958038532219740472L;
 
diff --git a/src/main/java/teetime/util/Pair.java b/src/main/java/teetime/util/Pair.java
index 1d671fbf6b7a34a4ad84f63f3d535a40800f9d7f..1cffdbf11c23a6c49b3fffad5fcca024543e8137 100644
--- a/src/main/java/teetime/util/Pair.java
+++ b/src/main/java/teetime/util/Pair.java
@@ -15,7 +15,7 @@
  */
 package teetime.util;
 
-public class Pair<F, S> {
+public final class Pair<F, S> {
 
 	private final F first;
 	private final S second;
diff --git a/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java b/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java
index 13eeaa12aba27af3779c1791fb676fb2e2ffccc7..6e1ec99f49d35703aff8aed6289da3c1fb7a55fc 100644
--- a/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java
+++ b/src/main/java/teetime/util/classpath/CachedClassForNameResolver.java
@@ -25,7 +25,7 @@ import java.util.concurrent.ConcurrentMap;
  * @author Christian Wulf
  * @since 1.11
  */
-public class CachedClassForNameResolver<T> {
+public final class CachedClassForNameResolver<T> {
 
 	private final ConcurrentMap<String, Class<? extends T>> cachedClasses = new ConcurrentHashMap<String, Class<? extends T>>(); // NOCS
 	private final ClassForNameResolver<T> classForNameResolver;
diff --git a/src/main/java/teetime/util/classpath/ClassForNameResolver.java b/src/main/java/teetime/util/classpath/ClassForNameResolver.java
index 680ea6af094f4975e0cd4f1844754214768ac66e..d084779936f2f75a954606f39a87dd44b0f253d4 100644
--- a/src/main/java/teetime/util/classpath/ClassForNameResolver.java
+++ b/src/main/java/teetime/util/classpath/ClassForNameResolver.java
@@ -22,7 +22,7 @@ package teetime.util.classpath;
  * @author Christian Wulf
  * @since 1.11
  */
-public class ClassForNameResolver<T> {
+public final class ClassForNameResolver<T> {
 
 	private final Class<T> classToCast;
 
diff --git a/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java b/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java
index 5c2039598a958dc519bb3c80ece0d3cf66a23806..6c2a283fd165a1f6e57fa487b6fd6ebe17961aa8 100644
--- a/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java
+++ b/src/main/java/teetime/util/concurrent/hashmap/ConcurrentHashMapWithDefault.java
@@ -17,7 +17,7 @@ package teetime.util.concurrent.hashmap;
 
 import java.util.concurrent.ConcurrentHashMap;
 
-public class ConcurrentHashMapWithDefault<K, V> extends ConcurrentHashMap<K, V> {
+public final class ConcurrentHashMapWithDefault<K, V> extends ConcurrentHashMap<K, V> {
 
 	private static final long serialVersionUID = 199185976241037967L;
 
diff --git a/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java b/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java
index e1c407c7c0f43bfbdb0e853ce3f3df7f054f91b6..0d394c943bdc1de9f13c5f4d2d04b1f258e4d832 100644
--- a/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java
+++ b/src/main/java/teetime/util/concurrent/hashmap/ValueFactory.java
@@ -17,14 +17,14 @@ package teetime.util.concurrent.hashmap;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public interface ValueFactory<T> {
 
 	/**
 	 * Create a new instance of the type <code>T</code>.
-	 * 
+	 *
 	 * @since 1.10
 	 */
 	public T create();
diff --git a/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java
index 285db51f49a1d655a8147e928a4bb6739e1845e8..78b1ed4783ef6fdce6c28888bfdf40f11e7d1c54 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/CircularWorkStealingDeque.java
@@ -22,14 +22,14 @@ import teetime.util.concurrent.workstealing.exception.DequeIsEmptyException;
 import teetime.util.concurrent.workstealing.exception.OperationAbortedException;
 
 /**
- * 
+ *
  * @author Christian Wulf
- * 
+ *
  * @see "Dynamic Circular WorkStealing Deque"
- * 
+ *
  * @since 1.10
  */
-public class CircularWorkStealingDeque<T> {
+public final class CircularWorkStealingDeque<T> {
 
 	public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException();
 
@@ -46,7 +46,7 @@ public class CircularWorkStealingDeque<T> {
 	}
 
 	/**
-	 * 
+	 *
 	 * @param o
 	 *            a non-<code>null</code> element
 	 */
@@ -66,7 +66,7 @@ public class CircularWorkStealingDeque<T> {
 	}
 
 	/**
-	 * 
+	 *
 	 * @param elements
 	 *            a non-<code>null</code> list
 	 */
@@ -91,7 +91,7 @@ public class CircularWorkStealingDeque<T> {
 
 	/**
 	 * Returns and removes the latest element from this deque.
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>null</code> if the deque contains no elements,
@@ -123,9 +123,9 @@ public class CircularWorkStealingDeque<T> {
 
 	/**
 	 * Returns and removes the latest element from this deque.
-	 * 
+	 *
 	 * @return <i>the latest element</i>, otherwise it throws a <code>DequeIsEmptyException</code>
-	 * 
+	 *
 	 * @throws DequeIsEmptyException
 	 */
 	public T popBottomEx() {
@@ -169,7 +169,7 @@ public class CircularWorkStealingDeque<T> {
 
 	/**
 	 * Tries to steal (return & remove) the oldest element from this deque.
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>null</code> if the deque contains no elements,
@@ -202,9 +202,9 @@ public class CircularWorkStealingDeque<T> {
 
 	/**
 	 * Tries to steal (return & remove) the oldest element from this deque.
-	 * 
+	 *
 	 * @return <i>the oldest element</i>, otherwise it throws a <code>DequeIsEmptyException</code> or a <code>OperationAbortedException</code>
-	 * 
+	 *
 	 * @throws DequeIsEmptyException
 	 * @throws OperationAbortedException
 	 */
@@ -254,7 +254,7 @@ public class CircularWorkStealingDeque<T> {
 	/**
 	 * Returns but does not remove the latest element from this deque.<br>
 	 * <i>For debugging purposes</i>
-	 * 
+	 *
 	 * @return <ul>
 	 *         <li><code>null</code> if the deque contains no elements,
 	 *         <li><i>the latest element</i> otherwise
@@ -286,7 +286,7 @@ public class CircularWorkStealingDeque<T> {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return the number of elements this deque contains
 	 */
 	public long size(final Object sourceStage) {
diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java
index 9ed956de3a98c388754f8ce6a7f04d3520312c01..91554954bb79f78c2fa8eda3359d70a31fd4b030 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithSentinel.java
@@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong;
 import teetime.util.concurrent.workstealing.CircularArray;
 
 /**
- * 
+ *
  * @author Christian Wulf
- * 
+ *
  * @see "Dynamic Circular WorkStealing Deque"
- * 
+ *
  * @since 1.10
  */
-public class CircularWorkStealingDequeWithSentinel<T> {
+public final class CircularWorkStealingDequeWithSentinel<T> {
 
 	public static enum State {
 		REGULAR, EMPTY, ABORT
@@ -84,7 +84,7 @@ public class CircularWorkStealingDequeWithSentinel<T> {
 	}
 
 	/**
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>empty()</code> if the deque contains no elements,
@@ -132,7 +132,7 @@ public class CircularWorkStealingDequeWithSentinel<T> {
 
 	/**
 	 * Tries to steal (return & remove) the oldest element from this deque.
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>empty()</code> if the deque contains no elements,
@@ -165,7 +165,7 @@ public class CircularWorkStealingDequeWithSentinel<T> {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return but does not remove the bottom element from this deque
 	 */
 	public T readBottom() {
@@ -188,7 +188,7 @@ public class CircularWorkStealingDequeWithSentinel<T> {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return the number of elements this deque contains
 	 */
 	public long size(final Object sourceStage) {
diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java
index 41c06cd1fc1b84e2a446ae7bc03da7e7b63d4ae8..88004d4525caf2a9b76dbfa57505cb5727c43f90 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/CircularWorkStealingDequeWithThreadLocalSentinel.java
@@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong;
 import teetime.util.concurrent.workstealing.CircularArray;
 
 /**
- * 
+ *
  * @author Christian Wulf
- * 
+ *
  * @see "Dynamic Circular WorkStealing Deque"
- * 
+ *
  * @since 1.10
  */
-public class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
+public final class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
 
 	public static enum State {
 		REGULAR, EMPTY, ABORT
@@ -96,7 +96,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
 	}
 
 	/**
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>empty()</code> if the deque contains no elements,
@@ -144,7 +144,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
 
 	/**
 	 * Tries to steal (return & remove) the oldest element from this deque.
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>empty()</code> if the deque contains no elements,
@@ -189,7 +189,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return but does not remove the bottom element from this deque
 	 */
 	public T readBottom() {
@@ -212,7 +212,7 @@ public class CircularWorkStealingDequeWithThreadLocalSentinel<T> {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return the number of elements this deque contains
 	 */
 	public long size(final Object sourceStage) {
diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java
index 8cea8f0351fc92c0f415a9f011ea2da326f72717..934473cb6ad618de2bb21b0da3a60a204a358c00 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/ExceptionalCircularWorkStealingDeque.java
@@ -29,7 +29,7 @@ import teetime.util.concurrent.workstealing.exception.OperationAbortedException;
  *
  * @since 1.10
  */
-public class ExceptionalCircularWorkStealingDeque<T> {
+public final class ExceptionalCircularWorkStealingDeque<T> {
 
 	public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException();
 
diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java
index 654c5f3ca655d2b1ff20eb18c09fc235c0e83916..35aeb0b0a44a39b8bea846c4a7d68e1ebbb89438 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedCircularWorkStealingDeque.java
@@ -20,14 +20,14 @@ import java.util.concurrent.atomic.AtomicLong;
 import teetime.util.concurrent.workstealing.CircularArray;
 
 /**
- * 
+ *
  * @author Christian Wulf
- * 
+ *
  * @see "Dynamic Circular WorkStealing Deque"
- * 
+ *
  * @since 1.10
  */
-public class UntypedCircularWorkStealingDeque {
+public final class UntypedCircularWorkStealingDeque {
 	public static final Object EMPTY = new Object();
 	public static final Object ABORT = new Object();
 
@@ -64,7 +64,7 @@ public class UntypedCircularWorkStealingDeque {
 	}
 
 	/**
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>EMPTY</code> if the deque contains no elements,
@@ -112,7 +112,7 @@ public class UntypedCircularWorkStealingDeque {
 
 	/**
 	 * Tries to steal (return & remove) the oldest element from this deque.
-	 * 
+	 *
 	 * @return
 	 *         <ul>
 	 *         <li><code>EMPTY</code> if the deque contains no elements,
@@ -145,7 +145,7 @@ public class UntypedCircularWorkStealingDeque {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return but does not remove the bottom element from this deque
 	 */
 	public Object readBottom() {
@@ -168,7 +168,7 @@ public class UntypedCircularWorkStealingDeque {
 
 	/**
 	 * For debugging purposes
-	 * 
+	 *
 	 * @return the number of elements this deque contains
 	 */
 	public long size(final Object sourceStage) {
diff --git a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java
index d1441fc5d3a009c8c5e5a1bf7b30b4e3d3e46ff9..54b5fddba22705e51bd149a5027140d65a635229 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/alternative/UntypedExceptionalCircularWorkStealingDeque.java
@@ -30,7 +30,7 @@ import teetime.util.concurrent.workstealing.exception.OperationAbortedException;
  *
  * @since 1.10
  */
-public class UntypedExceptionalCircularWorkStealingDeque {
+public final class UntypedExceptionalCircularWorkStealingDeque {
 
 	public static final DequeIsEmptyException DEQUE_IS_EMPTY_EXCEPTION = new DequeIsEmptyException();
 
diff --git a/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java b/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java
index f8ba9e517b090e6a66738a6fa32935bf1631810e..a86e479fa83af8dab3b4d32c518b98dc9347e50d 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/exception/DequeIsEmptyException.java
@@ -15,6 +15,6 @@
  */
 package teetime.util.concurrent.workstealing.exception;
 
-public class DequeIsEmptyException extends DequePopException {
+public final class DequeIsEmptyException extends DequePopException {
 	private static final long serialVersionUID = -6685406255103741724L;
-}
\ No newline at end of file
+}
diff --git a/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java b/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java
index 803c7f90e19689fa9f8be2d2a6a4704a76508d37..6a640dea0a10df5ded3411d4b767ba33d8ca41d8 100644
--- a/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java
+++ b/src/main/java/teetime/util/concurrent/workstealing/exception/OperationAbortedException.java
@@ -15,6 +15,6 @@
  */
 package teetime.util.concurrent.workstealing.exception;
 
-public class OperationAbortedException extends DequePopException {
+public final class OperationAbortedException extends DequePopException {
 	private static final long serialVersionUID = 2983001853326344073L;
-}
\ No newline at end of file
+}
diff --git a/src/main/java/teetime/util/list/ArrayPool.java b/src/main/java/teetime/util/list/ArrayPool.java
index de749079874db33dc5359f1e150d50d6c6fe5027..8b66e68dba91c3b94515bb15c4b567291ff1ecac 100644
--- a/src/main/java/teetime/util/list/ArrayPool.java
+++ b/src/main/java/teetime/util/list/ArrayPool.java
@@ -18,7 +18,7 @@ package teetime.util.list;
 import java.util.HashMap;
 import java.util.Map;
 
-public class ArrayPool<T> {
+public final class ArrayPool<T> {
 
 	// BETTER use a map with int as key due to performance
 	private final Map<Integer, T[]> cache = new HashMap<Integer, T[]>();
diff --git a/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java b/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java
index f66af3d8c1d1c3c4147c4d407155e23becacbe6e..32c8a6f562c08de532b20fa50ebd820aad1046cd 100644
--- a/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java
+++ b/src/main/java/teetime/util/list/CommittableResizableArrayQueue.java
@@ -15,7 +15,7 @@
  */
 package teetime.util.list;
 
-public class CommittableResizableArrayQueue<T> implements CommittableQueue<T> {
+public final class CommittableResizableArrayQueue<T> implements CommittableQueue<T> {
 
 	// private final int MIN_CAPACITY;
 
diff --git a/src/main/java/teetime/util/list/ListContainer.java b/src/main/java/teetime/util/list/ListContainer.java
index 8237ddd423b1db45858a7022f95b185502764138..623a8b035d1a5e92322a54e41a7408e597db7e3f 100644
--- a/src/main/java/teetime/util/list/ListContainer.java
+++ b/src/main/java/teetime/util/list/ListContainer.java
@@ -15,7 +15,7 @@
  */
 package teetime.util.list;
 
-public class ListContainer<T> {
+public final class ListContainer<T> {
 
 	public T value;
 	public ListContainer<T> previous;
diff --git a/src/main/java/teetime/util/list/ListContainerPool.java b/src/main/java/teetime/util/list/ListContainerPool.java
index 33e5435d410f1b63e5e7f3c89da29f2dd61e55ba..a71a767fec3c05c90b820db38d0d7aacfb93e315 100644
--- a/src/main/java/teetime/util/list/ListContainerPool.java
+++ b/src/main/java/teetime/util/list/ListContainerPool.java
@@ -18,7 +18,7 @@ package teetime.util.list;
 import java.util.ArrayList;
 import java.util.List;
 
-public class ListContainerPool<T> implements ObjectPool<ListContainer<T>> {
+public final class ListContainerPool<T> implements ObjectPool<ListContainer<T>> {
 
 	private final List<ListContainer<T>> pool = new ArrayList<ListContainer<T>>();
 
diff --git a/src/main/java/teetime/util/list/ObjectPooledLinkedList.java b/src/main/java/teetime/util/list/ObjectPooledLinkedList.java
index 587d5e18422a7347a4a8167c4138679f9cba30d1..5b77af4a0627cd94207603bfeb97070eef5d0fd1 100644
--- a/src/main/java/teetime/util/list/ObjectPooledLinkedList.java
+++ b/src/main/java/teetime/util/list/ObjectPooledLinkedList.java
@@ -15,7 +15,7 @@
  */
 package teetime.util.list;
 
-public class ObjectPooledLinkedList<T> {
+public final class ObjectPooledLinkedList<T> {
 
 	private final ObjectPool<ListContainer<T>> objectPool = new ListContainerPool<T>(10);
 
@@ -31,7 +31,7 @@ public class ObjectPooledLinkedList<T> {
 	}
 
 	/**
-	 * 
+	 *
 	 * @return <code>null</code> if the list is empty.
 	 */
 	public T pop() {