diff --git a/src/main/java/teetime/framework/pipe/IPipeFactory.java b/src/main/java/teetime/framework/pipe/IPipeFactory.java
index 26fed2b532ce7fb950507d3da1f4550bcc995ccb..b19a4fa64b372f0e95cb3bab182adb00f121b8e2 100644
--- a/src/main/java/teetime/framework/pipe/IPipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/IPipeFactory.java
@@ -17,8 +17,6 @@ package teetime.framework.pipe;
 
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
-import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
 
 /**
  * Represents the interface, which is must be defined in every PipeFactory
@@ -54,16 +52,6 @@ public interface IPipeFactory {
 	 */
 	<T> IPipe create(OutputPort<? extends T> sourcePort, InputPort<T> targetPort, int capacity);
 
-	/**
-	 * @return Type of ThreadCommunication, which is used by the created pipes.
-	 */
-	ThreadCommunication getThreadCommunication();
-
-	/**
-	 * @return Ordering type, which is used by the created pipes.
-	 */
-	PipeOrdering getOrdering();
-
 	/**
 	 * @return Whether or not the created pipes are growable
 	 */
diff --git a/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java b/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java
deleted file mode 100644
index bfd041890d8bc8ed7054374700054cd00bcbaf9c..0000000000000000000000000000000000000000
--- a/src/main/java/teetime/framework/pipe/PipeFactoryLoader.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package teetime.framework.pipe;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import teetime.util.classpath.FileSearcher;
-
-final class PipeFactoryLoader {
-
-	private static final Logger LOGGER = LoggerFactory.getLogger(PipeFactoryLoader.class);
-
-	private PipeFactoryLoader() {
-		// utility class
-	}
-
-	public static List<IPipeFactory> loadFromStream(final InputStream stream) throws IOException {
-		final List<IPipeFactory> pipeFactories = new LinkedList<IPipeFactory>();
-
-		final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
-		try {
-			String line;
-			while (null != (line = bufferedReader.readLine())) {
-				try {
-					line = line.trim();
-					if (!line.isEmpty()) {
-						final Class<?> clazz = Class.forName(line);
-						final Class<? extends IPipeFactory> pipeFactoryClass = clazz.asSubclass(IPipeFactory.class);
-						final IPipeFactory pipeFactory = pipeFactoryClass.newInstance();
-						pipeFactories.add(pipeFactory);
-					}
-				} catch (ClassNotFoundException e) {
-					if (LOGGER.isWarnEnabled()) {
-						LOGGER.warn("Could not find class: " + line, e);
-					}
-				} catch (InstantiationException e) {
-					LOGGER.warn("Could not instantiate pipe factory", e);
-				} catch (IllegalAccessException e) {
-					LOGGER.warn("Could not instantiate pipe factory", e);
-				}
-			}
-		} finally {
-			bufferedReader.close();
-		}
-
-		return pipeFactories;
-	}
-
-	public static List<IPipeFactory> loadPipeFactoriesFromClasspath(final String configFileName) {
-		List<URL> files = null;
-
-		try {
-			files = FileSearcher.loadResources(configFileName);
-		} catch (IOException e) {
-			throw new IllegalStateException(e);
-		}
-		return mergeFiles(files);
-	}
-
-	public static List<IPipeFactory> mergeFiles(final List<URL> files) {
-		final List<IPipeFactory> mergedPipeFactories = new ArrayList<IPipeFactory>();
-		for (URL url : files) {
-			try {
-				final InputStream is = url.openStream();
-				mergedPipeFactories.addAll(loadFromStream(is));
-				is.close();
-			} catch (IOException e) {
-				throw new IllegalStateException(e);
-			}
-
-		}
-		return mergedPipeFactories;
-	}
-}
diff --git a/src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java b/src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java
deleted file mode 100644
index bd121f52ae94d56e4f2aade716905acafa6ee944..0000000000000000000000000000000000000000
--- a/src/main/java/teetime/framework/pipe/PipeFactoryRegistry.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package teetime.framework.pipe;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Represents a Registry which provides PipeFactories that are used to create pipes.
- * The instance of this singleton class is saved in {@link PipeFactoryRegistry#INSTANCE}.
- * <p>
- * To get a PipeFactory instance, call {@link #getPipeFactory(ThreadCommunication, PipeOrdering, boolean)}.
- *
- * @deprecated since 1.2
- */
-@Deprecated
-public final class PipeFactoryRegistry {
-
-	private static final Logger LOGGER = LoggerFactory.getLogger(PipeFactoryRegistry.class);
-
-	/**
-	 * Represent a communication type between two connected stages
-	 */
-	public enum ThreadCommunication {
-		INTER, INTRA
-	}
-
-	/**
-	 * Represents the ordering behavior of a pipe
-	 */
-	public enum PipeOrdering {
-		/**
-		 * FIFO
-		 */
-		QUEUE_BASED,
-		/**
-		 * LIFO
-		 */
-		STACK_BASED,
-		ARBITRARY
-	}
-
-	private final Map<String, IPipeFactory> pipeFactories = new HashMap<String, IPipeFactory>();
-
-	/**
-	 * The singleton instance of PipeFactoryRegistry
-	 */
-	public static final PipeFactoryRegistry INSTANCE = new PipeFactoryRegistry("pipe-factories.conf");
-
-	private PipeFactoryRegistry(final String configFileName) {
-		final List<IPipeFactory> pipeFactories = PipeFactoryLoader.loadPipeFactoriesFromClasspath(configFileName);
-		for (IPipeFactory pipeFactory : pipeFactories) {
-			this.register(pipeFactory);
-		}
-	}
-
-	/**
-	 * Returns a PipeFactory Instance.
-	 *
-	 * @param tc
-	 *            Communication type between two connected stages. These are defined in PipeFactoryRegistry.ThreadCommunication
-	 * @param ordering
-	 *            Specifies the ordering behavior of the pipe. See PipeFactoryRegistry.PipeOrdering
-	 * @param growable
-	 *            Whether the queue size is fixed or not.
-	 * @return
-	 *         A PipeFactory, which provides suitable pipes.
-	 */
-	public IPipeFactory getPipeFactory(final ThreadCommunication tc, final PipeOrdering ordering, final boolean growable) {
-		final String key = this.buildKey(tc, ordering, growable);
-		final IPipeFactory pipeFactory = this.pipeFactories.get(key);
-		if (null == pipeFactory) {
-			throw new CouldNotFindPipeImplException(key);
-		}
-		return pipeFactory;
-	}
-
-	/**
-	 * Adds a new PipeFactory to the registry.
-	 * The new PipeFactory will be automatically selected by the Registry, if it is the most suitable Factory
-	 * corresponding to the requirements.
-	 *
-	 * @param pipeFactory
-	 *            A PipeFactory which will be added to the registry
-	 */
-	public void register(final IPipeFactory pipeFactory) {
-		final String key = this.buildKey(pipeFactory.getThreadCommunication(), pipeFactory.getOrdering(), pipeFactory.isGrowable());
-		this.pipeFactories.put(key, pipeFactory);
-		if (LOGGER.isInfoEnabled()) {
-			LOGGER.info("Registered pipe factory: " + pipeFactory.getClass().getCanonicalName());
-		}
-	}
-
-	private String buildKey(final ThreadCommunication tc, final PipeOrdering ordering, final boolean growable) {
-		return tc.toString() + ordering.toString() + growable;
-	}
-}
diff --git a/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java b/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java
index ca83ae503c8c3e4625b457b7fed56b7159868ea1..09dd75a3c434df371311c09c7edee1a3093a8ea9 100644
--- a/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/SingleElementPipeFactory.java
@@ -17,8 +17,6 @@ package teetime.framework.pipe;
 
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
-import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
 
 public final class SingleElementPipeFactory implements IPipeFactory {
 
@@ -37,16 +35,6 @@ public final class SingleElementPipeFactory implements IPipeFactory {
 		return new SingleElementPipe(sourcePort, targetPort);
 	}
 
-	@Override
-	public ThreadCommunication getThreadCommunication() {
-		return ThreadCommunication.INTRA;
-	}
-
-	@Override
-	public PipeOrdering getOrdering() {
-		return PipeOrdering.ARBITRARY;
-	}
-
 	@Override
 	public boolean isGrowable() {
 		return false;
diff --git a/src/main/java/teetime/framework/pipe/SpScPipeFactory.java b/src/main/java/teetime/framework/pipe/SpScPipeFactory.java
index 942c6ef50038f3b77fb6731352fbe9fb07a7bba0..a85e0477f101a78e975d775d4fd379201a55b3cd 100644
--- a/src/main/java/teetime/framework/pipe/SpScPipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/SpScPipeFactory.java
@@ -17,8 +17,6 @@ package teetime.framework.pipe;
 
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
-import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
 
 public final class SpScPipeFactory implements IPipeFactory {
 
@@ -32,16 +30,6 @@ public final class SpScPipeFactory implements IPipeFactory {
 		return new SpScPipe(sourcePort, targetPort, capacity);
 	}
 
-	@Override
-	public ThreadCommunication getThreadCommunication() {
-		return ThreadCommunication.INTER;
-	}
-
-	@Override
-	public PipeOrdering getOrdering() {
-		return PipeOrdering.QUEUE_BASED;
-	}
-
 	@Override
 	public boolean isGrowable() {
 		return false;
diff --git a/src/main/java/teetime/framework/pipe/UnboundedSpScPipeFactory.java b/src/main/java/teetime/framework/pipe/UnboundedSpScPipeFactory.java
index 164c566360c2414e172fdbbc3cc2e77e0610d986..21ff1833de2cde01578afcd20db42295b59b2db7 100644
--- a/src/main/java/teetime/framework/pipe/UnboundedSpScPipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/UnboundedSpScPipeFactory.java
@@ -17,8 +17,6 @@ package teetime.framework.pipe;
 
 import teetime.framework.InputPort;
 import teetime.framework.OutputPort;
-import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
-import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
 
 public class UnboundedSpScPipeFactory implements IPipeFactory {
 
@@ -37,16 +35,6 @@ public class UnboundedSpScPipeFactory implements IPipeFactory {
 		return new UnboundedSpScPipe(sourcePort, targetPort);
 	}
 
-	@Override
-	public ThreadCommunication getThreadCommunication() {
-		return ThreadCommunication.INTER;
-	}
-
-	@Override
-	public PipeOrdering getOrdering() {
-		return PipeOrdering.QUEUE_BASED;
-	}
-
 	@Override
 	public boolean isGrowable() {
 		return true;
diff --git a/src/main/java/teetime/framework/pipe/package-info.java b/src/main/java/teetime/framework/pipe/package-info.java
index 2c010a07f2fde563445479c12d597c21f89a941b..3326eb0e3eabd4d047812b26b00141382a02a11b 100644
--- a/src/main/java/teetime/framework/pipe/package-info.java
+++ b/src/main/java/teetime/framework/pipe/package-info.java
@@ -13,6 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 /**
  * Contains all pipes related classes, such as factories and pre-defined pipes.
  */
diff --git a/src/test/java/teetime/framework/pipe/DummyFactory.java b/src/test/java/teetime/framework/pipe/DummyFactory.java
deleted file mode 100644
index 58559bde53093033311772a50c9c7734628442c4..0000000000000000000000000000000000000000
--- a/src/test/java/teetime/framework/pipe/DummyFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package teetime.framework.pipe;
-
-import teetime.framework.InputPort;
-import teetime.framework.OutputPort;
-import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
-import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
-
-public final class DummyFactory implements IPipeFactory {
-
-	@Override
-	public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) {
-		return this.create(sourcePort, targetPort, 4);
-	}
-
-	@Override
-	public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort, final int capacity) {
-		return new SpScPipe(sourcePort, targetPort, capacity);
-	}
-
-	@Override
-	public ThreadCommunication getThreadCommunication() {
-		return ThreadCommunication.INTER;
-	}
-
-	@Override
-	public PipeOrdering getOrdering() {
-		return PipeOrdering.QUEUE_BASED;
-	}
-
-	@Override
-	public boolean isGrowable() {
-		return false;
-	}
-
-}
diff --git a/src/test/java/teetime/framework/pipe/PipeFactoryLoaderTest.java b/src/test/java/teetime/framework/pipe/PipeFactoryLoaderTest.java
deleted file mode 100644
index 6ca257a8995f333386703af90d5313bb2dab7602..0000000000000000000000000000000000000000
--- a/src/test/java/teetime/framework/pipe/PipeFactoryLoaderTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/**
- * Copyright (C) 2015 Christian Wulf, Nelson Tavares de Sousa (http://teetime.sourceforge.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *         http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package teetime.framework.pipe;
-
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Assert;
-import org.junit.Test;
-
-import teetime.util.classpath.ClassForNameResolver;
-
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-
-public class PipeFactoryLoaderTest {
-
-	public PipeFactoryLoaderTest() {}
-
-	@Test
-	public void emptyConfig() throws IOException {
-		final List<IPipeFactory> pipeFactories = PipeFactoryLoader.loadPipeFactoriesFromClasspath("data/empty-test.conf");
-		Assert.assertEquals(true, pipeFactories.isEmpty());
-	}
-
-	@Test
-	public void singleConfig() throws IOException {
-		final List<IPipeFactory> pipeFactories = PipeFactoryLoader.loadPipeFactoriesFromClasspath("pipe-factories.conf");
-		final int lines = Files.readLines(new File("target/classes/pipe-factories.conf"), Charsets.UTF_8).size();
-		Assert.assertEquals(lines, pipeFactories.size());
-	}
-
-	@Test
-	public void multipleConfigs() throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
-		final List<URL> files = new ArrayList<URL>();
-		final File pipeConfig = new File("target/classes/pipe-factories.conf");
-		final File testConfig = new File("target/test-classes/data/normal-test.conf");
-		files.add(testConfig.toURI().toURL());
-		files.add(pipeConfig.toURI().toURL());
-		final List<IPipeFactory> pipeFactories = PipeFactoryLoader.mergeFiles(files);
-
-		final List<String> contents = Files.readLines(pipeConfig, Charsets.UTF_8);
-		contents.addAll(Files.readLines(testConfig, Charsets.UTF_8));
-
-		// Check if all read factories are contained in one of the files
-		for (IPipeFactory iPipeFactory : pipeFactories) {
-			Assert.assertTrue(contents.indexOf(iPipeFactory.getClass().getCanonicalName()) != -1);
-		}
-
-		// Second part of the test: PipeFactoryRegistry
-		final PipeFactoryRegistry pipeRegistry = PipeFactoryRegistry.INSTANCE;
-		final ClassForNameResolver<IPipeFactory> classResolver = new ClassForNameResolver<IPipeFactory>(IPipeFactory.class);
-
-		// Look for the "normal" pipes
-		for (String className : Files.readLines(pipeConfig, Charsets.UTF_8)) {
-			final IPipeFactory pipeFactory = classResolver.classForName(className).newInstance();
-			final IPipeFactory returnedFactory = pipeRegistry.getPipeFactory(pipeFactory.getThreadCommunication(), pipeFactory.getOrdering(),
-					pipeFactory.isGrowable());
-			Assert.assertEquals(pipeFactory.getClass().getCanonicalName(), returnedFactory.getClass().getCanonicalName());
-		}
-		// Second "and a half" part
-		for (String className : Files.readLines(testConfig, Charsets.UTF_8)) {
-			final IPipeFactory pipeFactory = classResolver.classForName(className).newInstance();
-			// Still old factory
-			IPipeFactory returnedFactory = pipeRegistry.getPipeFactory(pipeFactory.getThreadCommunication(), pipeFactory.getOrdering(), pipeFactory.isGrowable());
-			Assert.assertNotEquals(pipeFactory.getClass().getCanonicalName(), returnedFactory.getClass().getCanonicalName());
-			// Overload factory and check for the new one
-			pipeRegistry.register(pipeFactory);
-			returnedFactory = pipeRegistry.getPipeFactory(pipeFactory.getThreadCommunication(), pipeFactory.getOrdering(), pipeFactory.isGrowable());
-			Assert.assertEquals(pipeFactory.getClass().getCanonicalName(), returnedFactory.getClass().getCanonicalName());
-		}
-	}
-
-}