diff --git a/src/main/java/teetime/framework/pipe/CommittablePipe.java b/src/main/java/teetime/framework/pipe/CommittablePipe.java
index 098e4254c195bb06212f29fb94b95a7039d96ef6..09ba2627d0fefbc6ca912277d839b88066b0d6bb 100644
--- a/src/main/java/teetime/framework/pipe/CommittablePipe.java
+++ b/src/main/java/teetime/framework/pipe/CommittablePipe.java
@@ -20,7 +20,7 @@ import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.util.list.CommittableResizableArrayQueue;
 
-public final class CommittablePipe extends AbstractIntraThreadPipe {
+final class CommittablePipe extends AbstractIntraThreadPipe {
 
 	private final CommittableResizableArrayQueue<Object> elements = new CommittableResizableArrayQueue<Object>(null, 4);
 
diff --git a/src/main/java/teetime/framework/pipe/ConcurrentBlockingIntraThreadPipe.java b/src/main/java/teetime/framework/pipe/ConcurrentBlockingIntraThreadPipe.java
index 3def592fa156eaed7920501c8e6cdee08bba89a6..5df2677f36d574caf2e54ebbb5ce267a3c972b81 100644
--- a/src/main/java/teetime/framework/pipe/ConcurrentBlockingIntraThreadPipe.java
+++ b/src/main/java/teetime/framework/pipe/ConcurrentBlockingIntraThreadPipe.java
@@ -21,7 +21,7 @@ import teetime.framework.AbstractIntraThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 
-public final class ConcurrentBlockingIntraThreadPipe<T> extends AbstractIntraThreadPipe {
+final class ConcurrentBlockingIntraThreadPipe<T> extends AbstractIntraThreadPipe {
 
 	private final ConcurrentLinkedQueue<Object> queue;
 
diff --git a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java
index 9d67274111d7f94ea1086a9cf696eee103cde86c..db2c09c2304154f21afb9bd578d2d9dc7c44084f 100644
--- a/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java
+++ b/src/main/java/teetime/framework/pipe/OrderedGrowableArrayPipe.java
@@ -20,7 +20,7 @@ import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 import teetime.util.concurrent.workstealing.CircularArray;
 
-public final class OrderedGrowableArrayPipe extends AbstractIntraThreadPipe {
+final class OrderedGrowableArrayPipe extends AbstractIntraThreadPipe {
 
 	private final CircularArray<Object> elements;
 	private int head;
diff --git a/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java b/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java
index 3930e58e8ee62052524798a022d75594856bc3eb..c51d67ec6fd6a363bc90cf7559307f8fb4bcf65d 100644
--- a/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java
+++ b/src/main/java/teetime/framework/pipe/OrderedGrowablePipe.java
@@ -21,7 +21,7 @@ import teetime.framework.AbstractIntraThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 
-public class OrderedGrowablePipe extends AbstractIntraThreadPipe {
+class OrderedGrowablePipe extends AbstractIntraThreadPipe {
 
 	private final LinkedList<Object> elements;
 
diff --git a/src/main/java/teetime/framework/pipe/RelayTestPipe.java b/src/main/java/teetime/framework/pipe/RelayTestPipe.java
index 95e8ab49ce8678b84dda02edc498e3ab56948924..85936250f9cd95b075a9c7639797f0c30652571b 100644
--- a/src/main/java/teetime/framework/pipe/RelayTestPipe.java
+++ b/src/main/java/teetime/framework/pipe/RelayTestPipe.java
@@ -18,7 +18,7 @@ package teetime.framework.pipe;
 import teetime.framework.AbstractInterThreadPipe;
 import teetime.util.ConstructorClosure;
 
-public final class RelayTestPipe<T> extends AbstractInterThreadPipe {
+final class RelayTestPipe<T> extends AbstractInterThreadPipe {
 
 	private int numInputObjects;
 	private final ConstructorClosure<T> inputObjectCreator;
diff --git a/src/main/java/teetime/framework/pipe/SingleElementPipe.java b/src/main/java/teetime/framework/pipe/SingleElementPipe.java
index 18c3423c7b703b84501b7c076e6dac85ba95c237..268ef03e7d1d5f3a81b8994ab26095d849481ceb 100644
--- a/src/main/java/teetime/framework/pipe/SingleElementPipe.java
+++ b/src/main/java/teetime/framework/pipe/SingleElementPipe.java
@@ -19,7 +19,7 @@ import teetime.framework.AbstractIntraThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 
-public final class SingleElementPipe extends AbstractIntraThreadPipe {
+final class SingleElementPipe extends AbstractIntraThreadPipe {
 
 	private Object element;
 
diff --git a/src/main/java/teetime/framework/pipe/SpScIntraThreadPipe.java b/src/main/java/teetime/framework/pipe/SpScIntraThreadPipe.java
index 19f7e461bc34ae4f474fcbdf7d0090e557d04a66..bae82ce7c34448d5592c68dcdbbd71e1597fb3fa 100644
--- a/src/main/java/teetime/framework/pipe/SpScIntraThreadPipe.java
+++ b/src/main/java/teetime/framework/pipe/SpScIntraThreadPipe.java
@@ -31,7 +31,7 @@ import teetime.framework.OutputPort;
  *
  * @param <T>
  */
-public final class SpScIntraThreadPipe<T> extends AbstractIntraThreadPipe {
+final class SpScIntraThreadPipe<T> extends AbstractIntraThreadPipe {
 
 	private final Queue<Object> queue;
 
diff --git a/src/main/java/teetime/framework/pipe/SpScPipe.java b/src/main/java/teetime/framework/pipe/SpScPipe.java
index bf28520d020e10bba4df712d9a895efa6e5726d2..ab91207d92b9ea4de137d57b13384e07026a7350 100644
--- a/src/main/java/teetime/framework/pipe/SpScPipe.java
+++ b/src/main/java/teetime/framework/pipe/SpScPipe.java
@@ -21,7 +21,7 @@ import teetime.framework.OutputPort;
 import teetime.framework.StageState;
 import teetime.util.concurrent.queue.ObservableSpScArrayQueue;
 
-public final class SpScPipe extends AbstractInterThreadPipe implements IMonitorablePipe {
+final class SpScPipe extends AbstractInterThreadPipe implements IMonitorablePipe {
 
 	// private static final Logger LOGGER = LoggerFactory.getLogger(SpScPipe.class);
 
diff --git a/src/main/java/teetime/framework/pipe/UnboundedSpScPipe.java b/src/main/java/teetime/framework/pipe/UnboundedSpScPipe.java
index 6f0525d781a4a1e58589818d4b4d14fe2f880109..c4e925fd45919b6820306094ade4f2638d890d99 100644
--- a/src/main/java/teetime/framework/pipe/UnboundedSpScPipe.java
+++ b/src/main/java/teetime/framework/pipe/UnboundedSpScPipe.java
@@ -26,7 +26,7 @@ import teetime.framework.AbstractInterThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 
-public final class UnboundedSpScPipe extends AbstractInterThreadPipe {
+final class UnboundedSpScPipe extends AbstractInterThreadPipe {
 
 	private final Queue<Object> queue;
 
diff --git a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java
index 5331b3faa7416c4275cf47cd0957c7dcf767e2bb..9baa545f3a0788ac384df2cd4ae5768cced97d55 100644
--- a/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java
+++ b/src/main/java/teetime/framework/pipe/UnorderedGrowablePipe.java
@@ -19,7 +19,7 @@ import teetime.framework.AbstractIntraThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
 
-public final class UnorderedGrowablePipe extends AbstractIntraThreadPipe {
+final class UnorderedGrowablePipe extends AbstractIntraThreadPipe {
 
 	private Object[] elements;
 	// private final ArrayWrapper2<T> elements = new ArrayWrapper2<T>(2);
diff --git a/src/test/java/teetime/framework/pipe/SpScPipeTest.java b/src/test/java/teetime/framework/pipe/SpScPipeTest.java
index cfb3e4f8d27381a0faf668b38115eaa087303856..dee9b9b37516d6b53cf694ba376522af026f11af 100644
--- a/src/test/java/teetime/framework/pipe/SpScPipeTest.java
+++ b/src/test/java/teetime/framework/pipe/SpScPipeTest.java
@@ -15,9 +15,13 @@
  */
 package teetime.framework.pipe;
 
+import static org.junit.Assert.assertFalse;
+
 import java.util.ArrayList;
 import java.util.List;
 
+import org.junit.Test;
+
 import teetime.framework.AbstractInterThreadPipe;
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
@@ -61,4 +65,10 @@ public class SpScPipeTest {
 		}
 		// Assert.assertEquals(list, secondList);
 	}
+
+	@Test(expected = NullPointerException.class)
+	public void testAdd() throws Exception {
+		SpScPipe pipe = new SpScPipe(null, null, 4);
+		assertFalse(pipe.add(null));
+	}
 }