diff --git a/README.md b/README.md
index 11a92ba..15b719c 100644
--- a/README.md
+++ b/README.md
@@ -135,10 +135,6 @@
 This app will try to find appropriate values for the question marks (`?`) in the load profile estimator templates to fit the gathered execution data and ready-made configuration entries for the load profile estimators.
 You can then copy them into your configuration.
 
-## Examples
-
-For some executable examples, have a look at [this repository](https://github.com/sekruse/rheem-examples).
-
 ### WordCount
 
 The "Hello World!" of data processing systems is the wordcount.
diff --git a/benchmark/.gitignore b/benchmark/.gitignore
deleted file mode 100644
index 364cfa2..0000000
--- a/benchmark/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-# Maven
-target/
-
-# IntelliJ
-*.iml
-../.idea/
diff --git a/pom.xml b/pom.xml
index 5bad3e0..37ba3ec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1083,18 +1083,15 @@
                         <exclude>**/*.iml</exclude>
 
                         <exclude>**/*.yaml</exclude>
+                        <exclude>**/*.json</exclude>
 
                         <exclude>**/*.log</exclude>
-                        <exclude>**/0-to-10000.sequence_file</exclude>
+                        <exclude>**/*.input</exclude>
 
                         <exclude>**/*.svg</exclude>
                         <exclude>**/Gemfile.lock</exclude>
                         <exclude>**/.jekyll-cache/**</exclude>
                         <exclude>**/README.md</exclude>
-                        <!-- TODO: I am pretty sure we need to remove this and replace it with a different text -->
-                        <exclude>**/src/test/resources/ulysses.txt</exclude>
-                        <exclude>**/src/test/resources/test.edgelist</exclude>
-                        <exclude>**/src/test/resources/*.txt</exclude>
                     </excludes>
                 </configuration>
             </plugin>
@@ -1305,5 +1302,6 @@
         <module>wayang-profiler</module>
         <module>wayang-plugins</module>
         <module>wayang-resources</module>
+      <module>wayang-benchmark</module>
     </modules>
 </project>
diff --git a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/TextFileSourceTest.java b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/TextFileSourceTest.java
index 9b2e305..909169c 100644
--- a/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/TextFileSourceTest.java
+++ b/wayang-commons/wayang-basic/src/test/java/org/apache/wayang/basic/operators/TextFileSourceTest.java
@@ -60,7 +60,7 @@
         when(optimizationContext.getJob()).thenReturn(job);
         when(job.getStopWatch()).thenReturn(new StopWatch(new Experiment("mock", new Subject("mock", "mock"))));
         when(optimizationContext.getConfiguration()).thenReturn(new Configuration());
-        final URL testFile = this.getClass().getResource("/ulysses.txt");
+        final URL testFile = this.getClass().getResource("/ulysses.input");
         final TextFileSource textFileSource = new TextFileSource(testFile.toString());
 
         final BufferedReader bufferedReader = new BufferedReader(
diff --git a/wayang-commons/wayang-basic/src/test/resources/ulysses.txt b/wayang-commons/wayang-basic/src/test/resources/ulysses.input
similarity index 100%
rename from wayang-commons/wayang-basic/src/test/resources/ulysses.txt
rename to wayang-commons/wayang-basic/src/test/resources/ulysses.input
diff --git a/wayang-platforms/wayang-giraph/src/test/java/org/apache/wayang/giraph/operators/GiraphPagaRankOperatorTest.java b/wayang-platforms/wayang-giraph/src/test/java/org/apache/wayang/giraph/operators/GiraphPagaRankOperatorTest.java
index cfe177e..436c711 100644
--- a/wayang-platforms/wayang-giraph/src/test/java/org/apache/wayang/giraph/operators/GiraphPagaRankOperatorTest.java
+++ b/wayang-platforms/wayang-giraph/src/test/java/org/apache/wayang/giraph/operators/GiraphPagaRankOperatorTest.java
@@ -68,7 +68,7 @@
         FileChannel.Instance inputChannelInstance =
                 (FileChannel.Instance) new FileChannel(FileChannel.HDFS_TSV_DESCRIPTOR)
                         .createInstance(giraphExecutor, null, -1);
-        inputChannelInstance.addPath(this.getClass().getResource("/test.edgelist").toString());
+        inputChannelInstance.addPath(this.getClass().getResource("/test.edgelist.input").toString());
         inputChannelInstance.getLineage().collectAndMark();
 
         final ExecutionOperator inputOperator = mock(ExecutionOperator.class);
diff --git a/wayang-platforms/wayang-giraph/src/test/resources/test.edgelist b/wayang-platforms/wayang-giraph/src/test/resources/test.edgelist.input
similarity index 100%
rename from wayang-platforms/wayang-giraph/src/test/resources/test.edgelist
rename to wayang-platforms/wayang-giraph/src/test/resources/test.edgelist.input
diff --git a/wayang-platforms/wayang-graphchi/src/test/java/org/apache/wayang/graphchi/operators/GraphChiPageRankOperatorTest.java b/wayang-platforms/wayang-graphchi/src/test/java/org/apache/wayang/graphchi/operators/GraphChiPageRankOperatorTest.java
index 2cf9f3a..c3d11da 100644
--- a/wayang-platforms/wayang-graphchi/src/test/java/org/apache/wayang/graphchi/operators/GraphChiPageRankOperatorTest.java
+++ b/wayang-platforms/wayang-graphchi/src/test/java/org/apache/wayang/graphchi/operators/GraphChiPageRankOperatorTest.java
@@ -69,7 +69,7 @@
         FileChannel.Instance inputChannelInstance =
                 (FileChannel.Instance) new FileChannel(FileChannel.HDFS_TSV_DESCRIPTOR)
                         .createInstance(graphChiExecutor, null, -1);
-        inputChannelInstance.addPath(this.getClass().getResource("/test.edgelist").toString());
+        inputChannelInstance.addPath(this.getClass().getResource("/test.edgelist.input").toString());
         inputChannelInstance.getLineage().collectAndMark();
 
         final ExecutionOperator inputOperator = mock(ExecutionOperator.class);
diff --git a/wayang-platforms/wayang-graphchi/src/test/resources/test.edgelist b/wayang-platforms/wayang-graphchi/src/test/resources/test.edgelist.input
similarity index 100%
rename from wayang-platforms/wayang-graphchi/src/test/resources/test.edgelist
rename to wayang-platforms/wayang-graphchi/src/test/resources/test.edgelist.input
diff --git a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSourceTest.java b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSourceTest.java
index 0a3d9d6..d5fdd55 100644
--- a/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSourceTest.java
+++ b/wayang-platforms/wayang-java/src/test/java/org/apache/wayang/java/operators/JavaObjectFileSourceTest.java
@@ -43,7 +43,7 @@
         JavaExecutor javaExecutor = null;
         try {
             // Prepare the source.
-            final URL inputUrl = this.getClass().getResource("/0-to-10000.sequence_file");
+            final URL inputUrl = this.getClass().getResource("/0-to-10000.input");
             JavaObjectFileSource<Integer> source = new JavaObjectFileSource<>(
                     inputUrl.toString(), DataSetType.createDefault(Integer.class));
 
diff --git a/wayang-platforms/wayang-java/src/test/resources/0-to-10000.sequence_file b/wayang-platforms/wayang-java/src/test/resources/0-to-10000.input
similarity index 100%
rename from wayang-platforms/wayang-java/src/test/resources/0-to-10000.sequence_file
rename to wayang-platforms/wayang-java/src/test/resources/0-to-10000.input
Binary files differ
diff --git a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSourceTest.java b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSourceTest.java
index 30d1282..20b7dba 100644
--- a/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSourceTest.java
+++ b/wayang-platforms/wayang-spark/src/test/java/org/apache/wayang/spark/operators/SparkObjectFileSourceTest.java
@@ -44,7 +44,7 @@
         try {
 
             // Prepare the source.
-            final URL inputUrl = this.getClass().getResource("/0-to-10000.sequence_file");
+            final URL inputUrl = this.getClass().getResource("/0-to-10000.input");
             SparkObjectFileSource<Integer> source = new SparkObjectFileSource<>(
                     inputUrl.toString(), DataSetType.createDefault(Integer.class));
 
diff --git a/wayang-platforms/wayang-spark/src/test/resources/0-to-10000.sequence_file b/wayang-platforms/wayang-spark/src/test/resources/0-to-10000.input
similarity index 100%
rename from wayang-platforms/wayang-spark/src/test/resources/0-to-10000.sequence_file
rename to wayang-platforms/wayang-spark/src/test/resources/0-to-10000.input
Binary files differ
diff --git a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlans.java b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlans.java
index 88ef6d7..c4a7567 100644
--- a/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlans.java
+++ b/wayang-tests-integration/src/test/java/org/apache/wayang/tests/WayangPlans.java
@@ -77,15 +77,15 @@
  */
 public class WayangPlans {
 
-    public static final URI FILE_SOME_LINES_TXT = createUri("/some-lines.txt");
+    public static final URI FILE_SOME_LINES_TXT = createUri("/some-lines.input");
 
-    public static final URI FILE_OTHER_LINES_TXT = createUri("/other-lines.txt");
+    public static final URI FILE_OTHER_LINES_TXT = createUri("/other-lines.input");
 
-    public static final URI ULYSSES_TXT = createUri("/ulysses.txt");
+    public static final URI ULYSSES_TXT = createUri("/ulysses.input");
 
-    public static final URI FILE_WITH_KEY_1 = createUri("/lines-with-key1.txt");
+    public static final URI FILE_WITH_KEY_1 = createUri("/lines-with-key1.input");
 
-    public static final URI FILE_WITH_KEY_2 = createUri("/lines-with-key2.txt");
+    public static final URI FILE_WITH_KEY_2 = createUri("/lines-with-key2.input");
 
     public static URI createUri(String resourcePath) {
         try {
diff --git a/wayang-tests-integration/src/test/resources/lines-with-key1.txt b/wayang-tests-integration/src/test/resources/lines-with-key1.input
similarity index 100%
rename from wayang-tests-integration/src/test/resources/lines-with-key1.txt
rename to wayang-tests-integration/src/test/resources/lines-with-key1.input
diff --git a/wayang-tests-integration/src/test/resources/lines-with-key2.txt b/wayang-tests-integration/src/test/resources/lines-with-key2.input
similarity index 100%
rename from wayang-tests-integration/src/test/resources/lines-with-key2.txt
rename to wayang-tests-integration/src/test/resources/lines-with-key2.input
diff --git a/wayang-tests-integration/src/test/resources/other-lines.txt b/wayang-tests-integration/src/test/resources/other-lines.input
similarity index 100%
rename from wayang-tests-integration/src/test/resources/other-lines.txt
rename to wayang-tests-integration/src/test/resources/other-lines.input
diff --git a/wayang-tests-integration/src/test/resources/some-lines.txt b/wayang-tests-integration/src/test/resources/some-lines.input
similarity index 100%
rename from wayang-tests-integration/src/test/resources/some-lines.txt
rename to wayang-tests-integration/src/test/resources/some-lines.input
diff --git a/wayang-tests-integration/src/test/resources/ulysses.txt b/wayang-tests-integration/src/test/resources/ulysses.input
similarity index 100%
rename from wayang-tests-integration/src/test/resources/ulysses.txt
rename to wayang-tests-integration/src/test/resources/ulysses.input
