diff --git a/src/main/java/teetime/stage/basic/AbstractTransformation.java b/src/main/java/teetime/stage/basic/AbstractTransformation.java
index 39cc348154866c1e7467c3dff9bd4d1bec804f53..35fc4e81c97ede9bd784926da69f15e6b74bd5e2 100644
--- a/src/main/java/teetime/stage/basic/AbstractTransformation.java
+++ b/src/main/java/teetime/stage/basic/AbstractTransformation.java
@@ -18,7 +18,7 @@ package teetime.stage.basic;
 import teetime.framework.AbstractConsumerStage;
 import teetime.framework.OutputPort;
 
-public abstract class AbstractTransformation<I, O> extends AbstractConsumerStage<I> {
+public abstract class AbstractTransformation<I, O> extends AbstractConsumerStage<I> implements ITransformation<I, O> {
 
 	private final OutputPort<O> outputPort = createOutputPort();
 
@@ -26,6 +26,7 @@ public abstract class AbstractTransformation<I, O> extends AbstractConsumerStage
 		super();
 	}
 
+	@Override
 	public OutputPort<O> getOutputPort() {
 		return outputPort;
 	}
diff --git a/src/main/java/teetime/stage/basic/ITransformation.java b/src/main/java/teetime/stage/basic/ITransformation.java
new file mode 100644
index 0000000000000000000000000000000000000000..7efae2a0363cfed129b6f99b83e7c7e5abe1524f
--- /dev/null
+++ b/src/main/java/teetime/stage/basic/ITransformation.java
@@ -0,0 +1,12 @@
+package teetime.stage.basic;
+
+import teetime.framework.InputPort;
+import teetime.framework.OutputPort;
+
+public interface ITransformation<I, O> {
+
+	public abstract InputPort<I> getInputPort();
+
+	public abstract OutputPort<O> getOutputPort();
+
+}